
    @wg=                        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,y)$    N)mock)DataOverflowError)	BaseImage)UNICODE_TEXT)MODE_8BIT_BYTEMODE_ALPHA_NUMMODE_NUMBERQRDatac                  v    t        j                  d      } | j                  d       | j                  d       y N   versionaFfitqrcodeQRCodeadd_datamakeqrs    O/var/www/horilla/myenv/lib/python3.12/site-packages/qrcode/tests/test_qrcode.py
test_basicr      s*    	q	!BKKGGG    c                  v    t        j                  d      } | j                  d       | j                  d       y )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        y # 1 sw Y   y xY w)N*   r   pytestraises
ValueErrorr   r    r   r   test_invalid_versionr'      s/    	z	" "b!" " "	   :Ac                      t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nborderr"   r&   r   r   test_invalid_borderr-      s/    	z	" !R ! ! !r(   c                      t        j                  d      } | j                  d       t        j                  t
              5  | j                  d       d d d        y # 1 sw Y   y xY w)Nr   r   abcdefghijklmnoFr   )r   r   r   r#   r$   r   r   r   s    r   test_overflowr0   $   sM    	q	!BKK!"	(	) 
E  s   AA&c                      t        j                  d      } t        d      }| j                  |       | j	                  d       y r   )r   r   r
   r   r   )r   datas     r   test_add_qrdatar3   +   s3    	q	!B#;DKKGGGr   c                      t        j                         } | j                  d       | j                          | j                  dk(  sJ | j                  d       | j                          | j                  dk(  sJ y )Nr   r   bcdefghijklmno   r   r   r   r   r   r   s    r   test_fitr8   2   sX    	BKKGGI::??KK !GGI::??r   c                      t        j                         } | j                  dd       | j                          | j                  dk(  sJ | j
                  d   j                  t        k(  sJ y )N"1234567890123456789012345678901234r   optimizer   )r   r   r   r   r   	data_listmoder	   r   s    r   test_mode_numberr?   <   sS    	BKK4qKAGGI::??<<?;...r   c                      t        j                         } | j                  dd       | j                          | j                  dk(  sJ | j
                  d   j                  t        k(  sJ y )NABCDEFGHIJ1234567890r   r;   r   )r   r   r   r   r   r=   r>   r   r   s    r   test_mode_alpharB   D   sS    	BKK&K3GGI::??<<?>111r   c                      t        j                         } | j                  dd       | j                          | j                  d   j
                  t        k(  sJ y )N,r   r;   r   r   r   r   r=   r>   r   r   s    r   test_regression_mode_commarF   L   sB    	BKKaK GGI<<?>111r   c                      t        j                         } | j                  dt        z   d       | j	                          | j
                  dk(  sJ | j                  d   j                  t        k(  sJ y )NabcABCr   r;   r   )	r   r   r   r   r   r   r=   r>   r   r   s    r   test_mode_8bitrI   S   sW    	BKK<'!K4GGI::??<<?>111r   c                      t        j                         } | j                  dd       | j                          | j                  d   j
                  t        k(  sJ y )NzABCDEFGHIJ1234567890
r   r;   rE   r   s    r   test_mode_8bit_newlinerK   [   sC    	BKK(1K5GGI<<?>111r   c                     t        j                  t              5  t        j                  d       d d d        t        j                  t
              5  t        j                  d       d d d        t        j                  t
              5  t        j                  d       d d d        y # 1 sw Y   zxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nstring pattern)mask_patternr*   r!   )r#   r$   	TypeErrorr   r   r%   r&   r   r   "test_make_image_with_wrong_patternrP   b   s    	y	! 5#345 
z	" '2&' 
z	" '2&' '5 5' '' 's#   B*B6
C*B36B?Cc                  j   t        j                         } t        j                  t              5  d| _        d d d        t        j                  t              5  d| _        d d d        t        j                  t              5  d| _        d d d        y # 1 sw Y   \xY w# 1 sw Y   ?xY w# 1 sw Y   y xY w)NrM   r*      )r   r   r#   r$   rO   rN   r%   r   s    r   test_mask_pattern_setterrS   m   s    	B	y	! +*+ 
z	"  
z	"  + +  s#   BB B)BB&)B2c                     t        j                  t              5  t        j                  d       d d d        t        j                  t
              5  t        j                  t               d d d        y # 1 sw Y   FxY w# 1 sw Y   y xY w)Nnot_BaseImageimage_factory)r#   r$   rO   r   r   AssertionErrordictr&   r   r   test_qrcode_bad_factoryrZ   z   sc    	y	! 5O45 
~	& *D)* *5 5* *s   A6B6A?Bc                       G d dt               } t        j                  |       }|j                  t               |j                          | j                  j                  sJ | j                  j                  sJ y )Nc                   P    e Zd Z ej                         Z ej                         Zy)(test_qrcode_factory.<locals>.MockFactoryN)__name__
__module____qualname__r   Mockdrawrect	new_imager&   r   r   MockFactoryr]      s    499;DIIK	r   rd   rV   )	r   r   r   r   r   
make_imagerc   calledrb   )rd   r   s     r   test_qrcode_factoryrg      s]     i   
[	1BKKMMO  ''''&&&&r   c                  &   t        j                         } d}| j                  |d       | j                          | j                  D cg c]  }|j
                   c}t        t        t        t        t        gk(  sJ | j                  dk(  sJ y c c}w )NA1abc12345def1HELLOa   r;   r6   )
r   r   r   r   r=   r>   r   r	   r   r   r   textds      r   test_optimizern      s{    	B!DKKqK!GGILL)qAFF).    ::?? *s   Bc                  F   t        j                         } d}| j                  |d       | j                          t	        | j
                        dk(  sJ | j
                  D cg c]  }|j                   c}t        t        t        gk(  sJ | j                  dk(  sJ y c c}w )NA1abc1234567def1HELLOa   r;      r6   )
r   r   r   r   lenr=   r>   r   r	   r   rk   s      r   test_optimize_shortrt      s    	B#DKKqK!GGIr||!!!LL)qAFF).   
 ::?? *s   "Bc                      t        j                         } d}| j                  |d       t        | j                        dk(  sJ | j                  d   j
                  t        k(  sJ y )NABCDEFGHIJK   r;   r   r   )r   r   r   rs   r=   r>   r   )r   rl   s     r   test_optimize_longer_than_datarx      sU    	BDKKrK"r||!!!<<?>111r   c                  $   d} t        j                         }|j                  |        |j                          |j                  dk(  sJ t        j                         }|j                  | d       |j                          |j                  dk(  sJ y )NA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOa
   r   r;      r7   )rl   r   s     r   test_optimize_sizer}      so    CD	BKKGGI::	BKKqK!GGI::r   c                  x    d} t         j                  j                  |       }t        |      t        |       k(  sJ y )Ns   hello)r   utilr
   repr)r2   data_objs     r   test_qrdata_reprr      s1    D{{!!$'H>T$Z'''r   c                  T   t        j                         } t        j                  d      5 }d |j                  _        t        j                  t              5  | j                  d       d d d        |j                  j                  sJ 	 d d d        y # 1 sw Y   +xY w# 1 sw Y   y xY w)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$	%!!((((	) )	% 	%) )s#   +BB( BB	BB'c                     t        j                  d      } t        j                         }| j	                  |       |j                         }|j                          d}|d t        |       |k(  sJ t        j                         }d |_        | j	                  |d       |j                         }|j                          d}|d t        |       |k(  sJ y )	Nr   r+   outu   █▀▀▀▀▀█c                       yNTr&   r&   r   r   <lambda>z"test_print_ascii.<locals>.<lambda>       r   T)r   r   u)   [48;5;232m[38;5;255m ▄▄▄▄▄ )	r   r   ioStringIOr   getvalueclosers   r   )r   fprintedexpecteds       r   test_print_asciir      s    	a	 B
ANNqNjjlGGGI;H?S]#x///
AAHNNqdN#jjlGGGIXH?S]#x///r   c                     t        j                         } t        j                  d      5 }d |j                  _        t        j                  t        | j                         |j                  j                  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   )r   r   r   r   r   r   r#   r$   r   	print_ttyrf   r   s     r   test_print_tty_stdoutr      se    	B	L	! )[*.'gr||,!!(((() ) )s   ABBc                  ,   t        j                         } t        j                         }d |_        | j                  |       |j                         }|j                          d}d}|dz   |z   }d}|dz   |z   |z   dz   |z   }|d t        |       |k(  sJ y )	Nc                       y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   rs   )r   r   r   BOLD_WHITE_BGBLACK_BGWHITE_BLOCKEOLr   s           r   test_print_ttyr      s    	B
AAHLLQLjjlGGGI MH$&1K
Cy(3.<xG+UH?S]#x///r   c                      t        j                  d      } | j                  d       | j                         | j                  k(  sJ y )Nr   r+   1r   r   r   
get_matrixmodulesr   s    r   test_get_matrixr      s4    	a	 BKK==?bjj(((r   c                      t        j                  d      } | j                  d       | j                         dd D cg c]  }|dd 	 }}|| j                  k(  sJ y c c}w )Nr   r+   r   r*   r   )r   rowmatrixs      r   test_get_matrix_borderr      sY    	a	 BKK#%==?1R#89Cc!Bi9F9RZZ :s   Ac                      t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nr*   )box_sizer"   r&   r   r   "test_negative_size_at_constructionr     s/    	z	" #r"# # #r(   c                      t        j                         } d| _        t        j                  t
              5  | j                          d d d        y # 1 sw Y   y xY w)Nr*   )r   r   r   r#   r$   r%   re   r   s    r   test_negative_size_at_usager     s>    	BBK	z	" 
  s   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   rn   rt   rx   r}   r   r   r   r   r   r   r   r   r   r&   r   r   <module>r      s    	     / ' , K K"
!
/2222'
*	'2()0$)0) #
r   