
    
g=                        d dl Z d dlmZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d  Z)d! Z*d" Z+d# Z,dS )$    N)mock)DataOverflowError)	BaseImage)UNICODE_TEXT)MODE_8BIT_BYTEMODE_ALPHA_NUMMODE_NUMBERQRDatac                      t          j        d          } |                     d           |                     d           d S N   versionaFfitqrcodeQRCodeadd_datamakeqrs    J/var/www/api/venv/lib/python3.11/site-packages/qrcode/tests/test_qrcode.py
test_basicr      s@    	q	!	!	!BKKGGG    c                      t          j        d          } |                     d           |                     d           d S )N   r   r   Fr   r   r   s    r   
test_larger      s@    	r	"	"	"BKKGGGr   c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )N*   r   pytestraises
ValueErrorr   r    r   r   test_invalid_versionr'      s    	z	"	" " "b!!!!" " " " " " " " " " " " " " " " " "   =AAc                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nborderr"   r&   r   r   test_invalid_borderr-      s    	z	"	" ! !R    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !r(   c                      t          j        d          } |                     d           t          j        t
                    5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr   r   abcdefghijklmnoFr   )r   r   r   r#   r$   r   r   r   s    r   test_overflowr0   $   s    	q	!	!	!BKK!"""	(	)	)  
E                 s   A((A,/A,c                      t          j        d          } t          d          }|                     |           |                     d           d S r   )r   r   r
   r   r   )r   datas     r   test_add_qrdatar3   +   sK    	q	!	!	!B#;;DKKGGGr   c                     t          j                    } |                     d           |                                  | j        dk    sJ |                     d           |                                  | j        dk    sJ d S )Nr   r   bcdefghijklmno   r   r   r   r   r   r   s    r   test_fitr8   2   sn    	BKKGGIII:????KK !!!GGIII:??????r   c                      t          j                    } |                     dd           |                                  | j        dk    sJ | j        d         j        t          k    sJ d S )N"1234567890123456789012345678901234r   optimizer   )r   r   r   r   r   	data_listmoder	   r   s    r   test_mode_numberr?   <   s`    	BKK4qKAAAGGIII:????<?;......r   c                      t          j                    } |                     dd           |                                  | j        dk    sJ | j        d         j        t          k    sJ d S )NABCDEFGHIJ1234567890r   r;   r   )r   r   r   r   r   r=   r>   r   r   s    r   test_mode_alpharB   D   s`    	BKK&K333GGIII:????<?>111111r   c                      t          j                    } |                     dd           |                                  | j        d         j        t          k    sJ d S )N,r   r;   r   r   r   r   r=   r>   r   r   s    r   test_regression_mode_commarF   L   sP    	BKKaK   GGIII<?>111111r   c                      t          j                    } |                     dt          z   d           |                                  | j        dk    sJ | j        d         j        t          k    sJ d S )NabcABCr   r;   r   )	r   r   r   r   r   r   r=   r>   r   r   s    r   test_mode_8bitrI   S   sd    	BKK<'!K444GGIII:????<?>111111r   c                      t          j                    } |                     dd           |                                  | j        d         j        t          k    sJ d S )NzABCDEFGHIJ1234567890
r   r;   rE   r   s    r   test_mode_8bit_newlinerK   [   sQ    	BKK(1K555GGIII<?>111111r   c                     t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t
                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t
                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nstring pattern)mask_patternr*   r!   )r#   r$   	TypeErrorr   r   r%   r&   r   r   "test_make_image_with_wrong_patternrP   b   s~   	y	!	! 5 5#344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z	"	" ' '2&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
z	"	" ' '2&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's3   <A A  BB	B&C		CCc                  ~   t          j                    } t          j        t                    5  d| _        d d d            n# 1 swxY w Y   t          j        t                    5  d| _        d d d            n# 1 swxY w Y   t          j        t                    5  d| _        d d d            d S # 1 swxY w Y   d S )NrM   r*      )r   r   r#   r$   rO   rN   r%   r   s    r   test_mask_pattern_setterrS   m   sd   	B	y	!	! + +*+ + + + + + + + + + + + + + + 
z	"	"                 
z	"	"                   s5   AAA%A99A= A=B22B69B6c                  *   t          j        t                    5  t          j        d           d d d            n# 1 swxY w Y   t          j        t
                    5  t          j        t                     d d d            d S # 1 swxY w Y   d S )Nnot_BaseImageimage_factory)r#   r$   rO   r   r   AssertionErrordictr&   r   r   test_qrcode_bad_factoryrZ   z   s   	y	!	! 5 5O44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
~	&	& * *D))))* * * * * * * * * * * * * * * * * *s!   <A A  BBBc                       G d dt                     } t          j        |           }|                    t                     |                                 | j        j        sJ | j        j        sJ d S )Nc                   J    e Zd Z ej                    Z ej                    ZdS )(test_qrcode_factory.<locals>.MockFactoryN)__name__
__module____qualname__r   Mockdrawrect	new_imager&   r   r   MockFactoryr]      s(        49;;DIKK			r   rd   rV   )	r   r   r   r   r   
make_imagerc   calledrb   )rd   r   s     r   test_qrcode_factoryrg      s             i       
[	1	1	1BKKMMOOO ''''&&&&&&r   c                  
   t          j                    } d}|                     |d           |                                  d | j        D             t
          t          t
          t          t
          gk    sJ | j        dk    sJ d S )NA1abc12345def1HELLOa   r;   c                     g | ]	}|j         
S r&   r>   .0ds     r   
<listcomp>z!test_optimize.<locals>.<listcomp>       )))qAF)))r   r6   )	r   r   r   r   r=   r   r	   r   r   r   texts     r   test_optimizert      s    	B!DKKqK!!!GGIII))BL))).     :??????r   c                  &   t          j                    } d}|                     |d           |                                  t	          | j                  dk    sJ d | j        D             t          t          t          gk    sJ | j        dk    sJ d S )NA1abc1234567def1HELLOa   r;      c                     g | ]	}|j         
S r&   rl   rm   s     r   rp   z'test_optimize_short.<locals>.<listcomp>   rq   r   r6   )	r   r   r   r   lenr=   r   r	   r   rr   s     r   test_optimize_shortr{      s    	B#DKKqK!!!GGIIIr|!!!!))BL))).    
 :??????r   c                      t          j                    } d}|                     |d           t          | j                  dk    sJ | j        d         j        t          k    sJ d S )NABCDEFGHIJK   r;   r   r   )r   r   r   rz   r=   r>   r   rr   s     r   test_optimize_longer_than_datar      sc    	BDKKrK"""r|!!!!<?>111111r   c                  2   d} t          j                    }|                    |            |                                 |j        dk    sJ t          j                    }|                    | d           |                                 |j        dk    sJ d S )NA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOa
   r   r;      r7   )rs   r   s     r   test_optimize_sizer      s    CD	BKKGGIII:	BKKqK!!!GGIII:r   c                      d} t           j                            |           }t          |          t          |           k    sJ d S )Ns   hello)r   utilr
   repr)r2   data_objs     r   test_qrdata_reprr      s?    D{!!$''H>>T$ZZ''''''r   c                  J   t          j                    } t          j        d          5 }d |j        _        t          j        t                    5  | 	                    d           d d d            n# 1 swxY w Y   |j        j
        sJ 	 d d d            d S # 1 swxY w Y   d S )N
sys.stdoutT)tty)r   r   r   patchisattyreturn_valuer#   r$   OSErrorprint_asciirf   r   fake_stdouts     r   test_print_ascii_stdoutr      s   	B	L	!	! )[*.']7## 	% 	%NNtN$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%!(((((	) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s5   &BA1%B1A5	5B8A5	9BBBc                     t          j        d          } t          j                    }|                     |           |                                }|                                 d}|d t          |                   |k    sJ t          j                    }d |_        |                     |d           |                                }|                                 d}|d t          |                   |k    sJ d S )	Nr   r+   outu   █▀▀▀▀▀█c                      dS NTr&   r&   r   r   <lambda>z"test_print_ascii.<locals>.<lambda>       t r   T)r   r   u)   [48;5;232m[38;5;255m ▄▄▄▄▄ )	r   r   ioStringIOr   getvaluecloserz   r   )r   fprintedexpecteds       r   test_print_asciir      s    	a	 	 	 B
ANNqNjjllGGGIII;H?S]]?#x////
A|AHNNqdN###jjllGGGIIIXH?S]]?#x//////r   c                      t          j                    } t          j        d          5 }d |j        _        t          j        t          | j	                   |j        j
        sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   r   r   r   r#   r$   r   	print_ttyrf   r   s     r   test_print_tty_stdoutr      s    	B	L	!	! )[*.'gr|,,,!((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   :A00A47A4c                  V   t          j                    } t          j                    }d |_        |                     |           |                                }|                                 d}d}|dz   |z   }d}|dz   |z   |z   dz   |z   }|d t          |                   |k    sJ d S )	Nc                      dS r   r&   r&   r   r   r   z test_print_tty.<locals>.<lambda>   r   r   r   z[1;47mz[40mz  z[0m
z.                                              z              )	r   r   r   r   r   r   r   r   rz   )r   r   r   BOLD_WHITE_BGBLACK_BGWHITE_BLOCKEOLr   s           r   test_print_ttyr      s    	B
A|AHLLQLjjllGGGIII MH$&1K
Cy(3.<xG+UH?S]]?#x//////r   c                      t          j        d          } |                     d           |                                 | j        k    sJ d S )Nr   r+   1r   r   r   
get_matrixmodulesr   s    r   test_get_matrixr      sG    	a	 	 	 BKK==??bj((((((r   c                      t          j        d          } |                     d           d |                                 dd         D             }|| j        k    sJ d S )Nr   r+   r   c                 "    g | ]}|d d         S )r   r*   r&   )rn   rows     r   rp   z*test_get_matrix_border.<locals>.<listcomp>  s     999Cc!B$i999r   r*   r   )r   matrixs     r   test_get_matrix_borderr      sc    	a	 	 	 BKK992==??1R4#8999FRZr   c                      t          j        t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nr*   )box_sizer"   r&   r   r   "test_negative_size_at_constructionr     s    	z	"	" # #r""""# # # # # # # # # # # # # # # # # #r(   c                      t          j                    } d| _        t          j        t
                    5  |                                  d d d            d S # 1 swxY w Y   d S )Nr*   )r   r   r   r#   r$   r%   re   r   s    r   test_negative_size_at_usager     s    	BBK	z	"	"  
                 s   AAA)-r   unittestr   r#   r   qrcode.utilqrcode.exceptionsr   qrcode.image.baser   qrcode.tests.constsr   r   r   r	   r
   r   r   r'   r-   r0   r3   r8   r?   rB   rF   rI   rK   rP   rS   rZ   rg   rt   r{   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   <module>r      sU   				             / / / / / / ' ' ' ' ' ' , , , , , , K K K K K K K K K K K K    " " "
! ! !
      / / /2 2 22 2 22 2 22 2 2' ' '
 
 
* * *	' 	' 	'    2 2 2  ( ( () ) )0 0 0$) ) )0 0 0) ) )     # # #
    r   