
     hC                        d dl 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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 d dlmZ d d	lmZmZ d d
l	mZmZmZmZ dZdZdZdZ G d dej                   Z! G d dej                   Z"dS )    N)mkdtemp)mock)Image)DataOverflowError)	BaseImage)
PyPNGImage)StyledPilImage)
colormasksmoduledrawers)MODE_8BIT_BYTEMODE_ALPHA_NUMMODE_NUMBERQRDatau   αβγ)   r   r   )r   r   r   )r   r   r   c                   x   e 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 ej        e d          d             Z ej        e d          d             Z ej        e d          d             Z ej        e d          d             Z ej        e d          d             Zd Zd Zd Zd Zd Zd Z ej        e d          d             Z ej        e d          d             Z  ej        e d          d             Z! ej        e d          d             Z" ej        e d          d             Z# ej        e d          d              Z$ ej        e d          d!             Z% ej        e d          d"             Z& ej        e d          d#             Z' ej        e d          d$             Z( ej        e d          d%             Z) ej        e d          d&             Z* ej        e d          d'             Z+ ej        e d          d(             Z, ej        e d          d)             Z- ej        e d          d*             Z. ej        e d          d+             Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9S ):QRCodeTestsc                 ,    t                      | _        d S N)r   tmpdirselfs    T/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/qrcode/tests/test_qrcode.pysetUpzQRCodeTests.setUp   s    ii    c                 8    t          j        | j                   d S r   )osrmdirr   r   s    r   tearDownzQRCodeTests.tearDown   s    
r   c                     t          j        d          }|                    d           |                    d           d S N   versionaFfitqrcodeQRCodeadd_datamaker   qrs     r   
test_basiczQRCodeTests.test_basic!   s@    ]1%%%
C
Er   c                     t          j        d          }|                    d           |                    d           d S )N   r"   r$   Fr%   r'   r,   s     r   
test_largezQRCodeTests.test_large&   s@    ]2&&&
C
Er   c                 T    |                      t          t          j        d           d S )N)   r"   assertRaises
ValueErrorr(   r)   r   s    r   test_invalid_versionz QRCodeTests.test_invalid_version+   s%    *fmR@@@@@r   c                 T    |                      t          t          j        d           d S )Nborderr4   r   s    r   test_invalid_borderzQRCodeTests.test_invalid_border.   s%    *fmB?????r   c                     t          j        d          }|                    d           |                     t          |j        d           d S )Nr!   r"   abcdefghijklmnoFr%   )r(   r)   r*   r5   r   r+   r,   s     r   test_overflowzQRCodeTests.test_overflow1   sK    ]1%%%
%&&&+RW%@@@@@r   c                     t          j        d          }t          d          }|                    |           |                    d           d S r    )r(   r)   r   r*   r+   )r   r-   datas      r   test_add_qrdatazQRCodeTests.test_add_qrdata6   sK    ]1%%%c{{
D
Er   c                 <   t          j                    }|                    d           |                                 |                     |j        d           |                    d           |                                 |                     |j        d           d S )Nr$   r!   bcdefghijklmno   r(   r)   r*   r+   assertEqualr#   r,   s     r   test_fitzQRCodeTests.test_fit<   s    ]__
C
			Q'''
$%%%
			Q'''''r   c                    t          j                    }|                    dd           |                                 |                     |j        d           |                     |j        d         j        t                     d S )N"1234567890123456789012345678901234r   optimizer!   )	r(   r)   r*   r+   rG   r#   	data_listmoder   r,   s     r   test_mode_numberzQRCodeTests.test_mode_numberE   sn    ]__
81EEE
			Q'''a-{;;;;;r   c                    t          j                    }|                    dd           |                                 |                     |j        d           |                     |j        d         j        t                     d S )NABCDEFGHIJ1234567890r   rK   r!   )	r(   r)   r*   r+   rG   r#   rM   rN   r   r,   s     r   test_mode_alphazQRCodeTests.test_mode_alphaL   sn    ]__
*Q777
			Q'''a-~>>>>>r   c                     t          j                    }|                    dd           |                                 |                     |j        d         j        t                     d S )N,r   rK   r(   r)   r*   r+   rG   rM   rN   r   r,   s     r   test_regression_mode_commaz&QRCodeTests.test_regression_mode_commaS   sU    ]__
C!$$$
			a-~>>>>>r   c                    t          j                    }|                    dt          z   d           |                                 |                     |j        d           |                     |j        d         j        t                     d S )NabcABCr   rK   r!   )
r(   r)   r*   UNICODE_TEXTr+   rG   r#   rM   rN   r   r,   s     r   test_mode_8bitzQRCodeTests.test_mode_8bitY   sr    ]__
H|+a888
			Q'''a-~>>>>>r   c                     t          j                    }|                    dd           |                                 |                     |j        d         j        t                     d S )NzABCDEFGHIJ1234567890
r   rK   rU   r,   s     r   test_mode_8bit_newlinez"QRCodeTests.test_mode_8bit_newline`   sV    ]__
,q999
			a-~>>>>>r   Requires PILc                 8   t          j                    }|                    t                     |                                }|                    t          j                               |                     |	                                t          j                   d S r   )r(   r)   r*   rY   
make_imagesaveioBytesIOassertIsInstance	get_image	pil_Imager   r   r-   imgs      r   test_render_pilzQRCodeTests.test_render_pilf   sj    ]__
L!!!mmoocmmooy?????r   c                     t          j                    }|                    t                     |                    d          }|                    t          j                               d S )NTransParent
back_colorr(   r)   r*   rY   r_   r`   ra   rb   rf   s      r   +test_render_pil_with_transparent_backgroundz7QRCodeTests.test_render_pil_with_transparent_backgroundn   sP    ]__
L!!!mm}m55r   c                     t          j                    }|                    t                     |                    d          }|                    t          j                               d S )Nredrk   rm   rf   s      r   #test_render_pil_with_red_backgroundz/QRCodeTests.test_render_pil_with_red_backgroundu   sP    ]__
L!!!mmum--r   c                     t          j                    }|                    t                     |                    dd          }|                    t          j                               d S )N)r         )7   _   #   )rl   
fill_colorrm   rf   s      r   %test_render_pil_with_rgb_color_tuplesz1QRCodeTests.test_render_pil_with_rgb_color_tuples|   sR    ]__
L!!!mm<mPPr   c                     t          j        d          }|                    t                     |                                }|                    t          j                               d S )N   mask_patternrm   rf   s      r   test_render_with_patternz$QRCodeTests.test_render_with_pattern   sQ    ]***
L!!!mmoor   c                    |                      t                    5  t          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nstring patternr|   r9   *   )r5   	TypeErrorr(   r)   r6   r   s    r   "test_make_image_with_wrong_patternz.QRCodeTests.test_make_image_with_wrong_pattern   s   y)) 	9 	9M'78888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 z** 	+ 	+Mr****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ z** 	+ 	+Mr****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s3   =AA"BBB)CCCc                    t          j                    }|                     t                    5  d|_        d d d            n# 1 swxY w Y   |                     t
                    5  d|_        d d d            n# 1 swxY w Y   |                     t
                    5  d|_        d d d            d S # 1 swxY w Y   d S )Nr   r9      )r(   r)   r5   r   r}   r6   r,   s     r   test_mask_pattern_setterz$QRCodeTests.test_mask_pattern_setter   sp   ]__y)) 	/ 	/.BO	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ z** 	! 	! BO	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! z** 	  	 BO	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s5   AA	A'A;;A?A? B55B9<B9c                 .   |                      t                    5  t          j        d           d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
                     d d d            d S # 1 swxY w Y   d S )Nnot_BaseImageimage_factory)r5   r   r(   r)   AssertionErrordictr   s    r   test_qrcode_bad_factoryz#QRCodeTests.test_qrcode_bad_factory   s   y)) 	9 	9M8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 ~.. 	. 	.M----	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s!   =AA"B

BBc                 .    G d dt                     }t          j        |          }|                    t                     |                                 |                     |j        j                   |                     |j	        j                   d S )Nc                   J    e Zd Z ej                    Z ej                    ZdS )4QRCodeTests.test_qrcode_factory.<locals>.MockFactoryN)__name__
__module____qualname__r   Mockdrawrect	new_image r   r   MockFactoryr      s(         ty{{H!	IIIr   r   r   )
r   r(   r)   r*   rY   r_   
assertTruer   calledr   )r   r   r-   s      r   test_qrcode_factoryzQRCodeTests.test_qrcode_factory   s    	$ 	$ 	$ 	$ 	$) 	$ 	$ 	$ ]555
L!!!
-4555,344444r   c                    t          j                    }|                    t                     |                    t
                    }|                     |                                t          j	                   t          |j        |j        |j                   |                    t          j                               d S )Nr   )r(   r)   r*   rY   r_   r   rc   rd   pngWriterprintwidthbox_sizer;   r`   ra   rb   rf   s      r   test_render_pypngzQRCodeTests.test_render_pypng   s    ]__
L!!!mm*m55cmmoosz:::cisz222r   c                    t          j                    }|                    t                     |                    t
                    }|                     |                                t          j	                   t          j                    }t          j        d|d          5  |                    d           d d d            n# 1 swxY w Y   |                    dd            |dd          j                                         d S )Nr   zqrcode.image.pure.openT)createztest_file.pngwb)r(   r)   r*   rY   r_   r   rc   rd   r   r   r   	mock_openpatchr`   assert_called_once_withwriteassert_called)r   r-   rg   r   s       r   test_render_pypng_to_strz$QRCodeTests.test_render_pypng_to_str   s   ]__
L!!!mm*m55cmmoosz:::N$$	Z0)DIII 	& 	&HH_%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&))/4@@@	/4((.<<>>>>>s   %CCCc                     t          j        t           j                  }|                    t                     |                    t                    }|                    t          j	                               d S )Nerror_correctionr   )
r(   r)   ERROR_CORRECT_Lr*   rY   r_   r	   r`   ra   rb   rf   s      r   test_render_styled_Imagez$QRCodeTests.test_render_styled_Image   sZ    ]F,BCCC
L!!!mm.m99r   c                 *   t          j        ddd          }t          j        t          j                  }|                    t                     |                    t          |          }|	                    t          j                               d S )NRGB
   r   rp   colorr   )r   embeded_image)re   newr(   r)   r   r*   rY   r_   r	   r`   ra   rb   )r   embeded_imgr-   rg   s       r   %test_render_styled_with_embeded_imagez1QRCodeTests.test_render_styled_with_embeded_image   sr    mE85AAA]F,BCCC
L!!!mm.mTTr   c                    t           j                            | j        d          }t	          j        ddd          }|                    |           t          j        t          j	                  }|
                    t                     |                    t          |          }|                    t          j                               t          j        |           d S )Nztest.pngr   r   rp   r   r   )r   embeded_image_path)r   pathjoinr   re   r   r`   r(   r)   r   r*   rY   r_   r	   ra   rb   remove)r   tmpfiler   r-   rg   s        r   *test_render_styled_with_embeded_image_pathz6QRCodeTests.test_render_styled_with_embeded_image_path   s    ',,t{J77mE85AAA!!!]F,BCCC
L!!!mm.WmUU
	'r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S Nr   )r   module_drawer)r(   r)   r   r*   rY   r_   r	   r   SquareModuleDrawerr`   ra   rb   rf   s      r   ,test_render_styled_with_square_module_drawerz8QRCodeTests.test_render_styled_with_square_module_drawer   p    ]F,BCCC
L!!!mm(':<<  
 
 	r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S r   )r(   r)   r   r*   rY   r_   r	   r   GappedSquareModuleDrawerr`   ra   rb   rf   s      r   ,test_render_styled_with_gapped_module_drawerz8QRCodeTests.test_render_styled_with_gapped_module_drawer   sp    ]F,BCCC
L!!!mm('@BB  
 
 	r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S r   )r(   r)   r   r*   rY   r_   r	   r   CircleModuleDrawerr`   ra   rb   rf   s      r   ,test_render_styled_with_circle_module_drawerz8QRCodeTests.test_render_styled_with_circle_module_drawer   r   r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S r   )r(   r)   r   r*   rY   r_   r	   r   RoundedModuleDrawerr`   ra   rb   rf   s      r   -test_render_styled_with_rounded_module_drawerz9QRCodeTests.test_render_styled_with_rounded_module_drawer   sp    ]F,BCCC
L!!!mm(';==  
 
 	r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S r   )r(   r)   r   r*   rY   r_   r	   r   VerticalBarsDrawerr`   ra   rb   rf   s      r   3test_render_styled_with_vertical_bars_module_drawerz?QRCodeTests.test_render_styled_with_vertical_bars_module_drawer	  r   r   c                    t          j        t           j                  }|                    t                     |                    t          t          j                              }|	                    t          j                               d S r   )r(   r)   r   r*   rY   r_   r	   r   HorizontalBarsDrawerr`   ra   rb   rf   s      r   5test_render_styled_with_horizontal_bars_module_drawerzAQRCodeTests.test_render_styled_with_horizontal_bars_module_drawer  sp    ]F,BCCC
L!!!mm('<>>  
 
 	r   c                 "   t          j        t           j                  }|                    t                     t          j                    }|                    t          |          }|	                    t          j                               d S )Nr   r   
color_mask)r(   r)   r   r*   rY   r
   SolidFillColorMaskr_   r	   r`   ra   rb   r   r-   maskrg   s       r   0test_render_styled_with_default_solid_color_maskz<QRCodeTests.test_render_styled_with_default_solid_color_mask  sj    ]F,BCCC
L!!!,..mm.TmJJr   c                 <   t          j        t           j                  }|                    t                     t          j        t          t                    }|	                    t          |          }|                    t          j                               d S )Nr   rl   front_colorr   )r(   r)   r   r*   rY   r
   r   WHITEREDr_   r	   r`   ra   rb   r   s       r   (test_render_styled_with_solid_color_maskz4QRCodeTests.test_render_styled_with_solid_color_mask%  sq    ]F,BCCC
L!!!,3OOOmm.TmJJr   c                 L   t          j        t           j                  }|                    t                     t          j        dt                    }|                    t          |          }|
                    t          j                               |j        dk    sJ d S )Nr   )r   r   r   r   r   r   RGBA)r(   r)   r   r*   rY   r
   r   r   r_   r	   r`   ra   rb   rN   r   s       r   4test_render_styled_with_color_mask_with_transparencyz@QRCodeTests.test_render_styled_with_color_mask_with_transparency-  s    ]F,BCCC
L!!!,)s
 
 
 mm.TmJJx6!!!!!!r   c                 H   t          j        t           j                  }|                    t                     t          j        t          t          t                    }|
                    t          |          }|                    t          j                               d S Nr   )rl   center_color
edge_colorr   )r(   r)   r   r*   rY   r
   RadialGradiantColorMaskr   BLACKr   r_   r	   r`   ra   rb   r   s       r   2test_render_styled_with_radial_gradient_color_maskz>QRCodeTests.test_render_styled_with_radial_gradient_color_mask8  |    ]F,BCCC
L!!!15S
 
 
 mm.TmJJr   c                 H   t          j        t           j                  }|                    t                     t          j        t          t          t                    }|
                    t          |          }|                    t          j                               d S r   )r(   r)   r   r*   rY   r
   SquareGradiantColorMaskr   r   r   r_   r	   r`   ra   rb   r   s       r   2test_render_styled_with_square_gradient_color_maskz>QRCodeTests.test_render_styled_with_square_gradient_color_maskB  r   r   c                 H   t          j        t           j                  }|                    t                     t          j        t          t          t                    }|
                    t          |          }|                    t          j                               d S )Nr   )rl   
left_colorright_colorr   )r(   r)   r   r*   rY   r
   HorizontalGradiantColorMaskr   r   r   r_   r	   r`   ra   rb   r   s       r   6test_render_styled_with_horizontal_gradient_color_maskzBQRCodeTests.test_render_styled_with_horizontal_gradient_color_maskL  s|    ]F,BCCC
L!!!5%
 
 
 mm.TmJJr   c                 H   t          j        t           j                  }|                    t                     t          j        t          t          t                    }|
                    t          |          }|                    t          j                               d S )Nr   )rl   	top_colorbottom_colorr   )r(   r)   r   r*   rY   r
   VerticalGradiantColorMaskr   r   r   r_   r	   r`   ra   rb   r   s       r   4test_render_styled_with_vertical_gradient_color_maskz@QRCodeTests.test_render_styled_with_vertical_gradient_color_maskV  s|    ]F,BCCC
L!!!3%
 
 
 mm.TmJJr   c                 `   t          j        ddd          }t          j        t          j                  }|                    t                     t          j        t          |          }|
                    t          |          }|                    t          j                               d S )Nr   r   rp   r   r   )rl   color_mask_imager   )re   r   r(   r)   r   r*   rY   r
   ImageColorMaskr   r_   r	   r`   ra   rb   )r   img_maskr-   r   rg   s        r   (test_render_styled_with_image_color_maskz4QRCodeTests.test_render_styled_with_image_color_mask`  s    =>>>]F,BCCC
L!!!(EHUUUmm.TmJJr   c                 B   t          j                    }d}|                    |d           |                                 |                     d |j        D             t          t          t          t          t          g           |                     |j	        d           d S )NA1abc12345def1HELLOa   rK   c                     g | ]	}|j         
S r   rN   .0ds     r   
<listcomp>z-QRCodeTests.test_optimize.<locals>.<listcomp>o      ***QV***r   rE   )
r(   r)   r*   r+   rG   rM   r   r   r   r#   r   r-   texts      r   test_optimizezQRCodeTests.test_optimizei  s    ]__%
D1%%%
			**R\***		
 		
 		
 	Q'''''r   c                 z   t          j                    }d}|                    |d           |                                 |                     t          |j                  d           |                     d |j        D             t          t          t          g           |                     |j	        d           d S )NA1abc1234567def1HELLOa   rK   r{   c                     g | ]	}|j         
S r   r  r  s     r   r	  z3QRCodeTests.test_optimize_short.<locals>.<listcomp>  r
  r   rE   )
r(   r)   r*   r+   rG   lenrM   r   r   r#   r  s      r   test_optimize_shortzQRCodeTests.test_optimize_shortz  s    ]__'
D1%%%
			R\**A...**R\***[.9	
 	
 	
 	Q'''''r   c                    t          j                    }d}|                    |d           |                     t	          |j                  d           |                     |j        d         j        t                     d S )NABCDEFGHIJK   rK   r!   r   )r(   r)   r*   rG   r  rM   rN   r   r  s      r   test_optimize_longer_than_dataz*QRCodeTests.test_optimize_longer_than_data  sm    ]__
D2&&&R\**A...a-~>>>>>r   c                 j   d}t          j                    }|                    |           |                                 |                     |j        d           t          j                    }|                    |d           |                                 |                     |j        d           d S )NA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOaA1abc12345123451234512345def1HELLOHELLOHELLOHELLOar   r   rK      rF   )r   r  r-   s      r   test_optimize_sizezQRCodeTests.test_optimize_size  s    G]__
D
			R(((]__
D1%%%
			R(((((r   c                     d}t           j                            |          }|                     t	          |          t	          |                     d S )Ns   hello)r(   utilr   rG   repr)r   rA   data_objs      r   test_qrdata_reprzQRCodeTests.test_qrdata_repr  sD    ;%%d++hd44444r   c                     t          j                    }t          j        d          5 }d |j        _        |                     t          |j        d           | 	                    |j        j
                   d d d            d S # 1 swxY w Y   d S )N
sys.stdoutT)tty)r(   r)   r   r   isattyreturn_valuer5   OSErrorprint_asciir   r   r   r-   fake_stdouts      r   test_print_ascii_stdoutz#QRCodeTests.test_print_ascii_stdout  s    ]__Z%% 	7.2K+gr~4@@@OOK.5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   ABB
Bc                 :   t          j        d          }t          j                    }|                    |           |                                }|                                 d}|                     |d t          |                   |           t          j                    }d |_	        |                    |d           |                                }|                                 d}|                     |d t          |                   |           d S )	Nr   r:   outu   █▀▀▀▀▀█c                      dS NTr   r   r   r   <lambda>z.QRCodeTests.test_print_ascii.<locals>.<lambda>      4 r   T)r-  r#  u)   [48;5;232m[38;5;255m ▄▄▄▄▄ )
r(   r)   ra   StringIOr'  getvaluecloserG   r  r$  )r   r-   fprintedexpecteds        r   test_print_asciizQRCodeTests.test_print_ascii  s    ]!$$$KMM
1**,,				?3x==18<<<KMM<
1$'''**,,				U 	 	3x==18<<<<<r   c                    t          j                    }t          j        d          5 }d |j        _        |                     t          |j                   | 	                    |j        j
                   d d d            d S # 1 swxY w Y   d S )Nr"  )r(   r)   r   r   r$  r%  r5   r&  	print_ttyr   r   r(  s      r   test_print_tty_stdoutz!QRCodeTests.test_print_tty_stdout  s    ]__Z%% 	7.2K+gr|444OOK.5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   ABBBc                 r   t          j                    }t          j                    }d |_        |                    |           |                                }|                                 d}d}|dz   |z   }d}|dz   |z   |z   dz   |z   }|                     |d t          |                   |           d S )	Nc                      dS r/  r   r   r   r   r0  z,QRCodeTests.test_print_tty.<locals>.<lambda>  r1  r   r,  z[1;47mz[40mz  z[0m
z.                                              z              )
r(   r)   ra   r2  r$  r:  r3  r4  rG   r  )	r   r-   r5  r6  BOLD_WHITE_BGBLACK_BGWHITE_BLOCKEOLr7  s	            r   test_print_ttyzQRCodeTests.test_print_tty  s    ]__KMM<
**,,				$#d*X5I%+k9HD{R 	 	3x==18<<<<<r   c                     t          j        d          }|                    d           |                     |                                |j                   d S )Nr   r:   1)r(   r)   r*   rG   
get_matrixmodulesr,   s     r   test_get_matrixzQRCodeTests.test_get_matrix  sL    ]!$$$
C"*55555r   c                     t          j        d          }|                    d           d |                                dd         D             }|                     ||j                   d S )Nr!   r:   rD  c                 "    g | ]}|d d         S )r!   r9   r   )r  rows     r   r	  z6QRCodeTests.test_get_matrix_border.<locals>.<listcomp>  s     ===#ad)===r   r9   )r(   r)   r*   rE  rG   rF  )r   r-   matrixs      r   test_get_matrix_borderz"QRCodeTests.test_get_matrix_border  sh    ]!$$$
C==r}}qt'<===,,,,,r   c                 T    |                      t          t          j        d           d S )Nr9   )r   r4   r   s    r   "test_negative_size_at_constructionz.QRCodeTests.test_negative_size_at_construction  s%    *fmbAAAAAr   c                 z    t          j                    }d|_        |                     t          |j                   d S )Nr9   )r(   r)   r   r5   r6   r_   r,   s     r   test_negative_size_at_usagez'QRCodeTests.test_negative_size_at_usage  s2    ]__*bm44444r   N)=r   r   r   r   r   r.   r1   r7   r<   r?   rB   rH   rO   rR   rV   rZ   r\   unittestskipIfre   rh   rn   rq   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r*  r8  r;  rB  rG  rL  rN  rP  r   r   r   r   r      s                
  
A A A@ @ @A A A
  ( ( (< < <? ? ?? ? ?? ? ?? ? ? X_]N33@ @ 43@ X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43+ + +
  
  
 . . .	5 	5 	5  
? 
? 
? X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33" " 43" X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43 X_]N33  43( ( ("
( 
( 
(? ? ?) ) )5 5 5
7 7 7= = =&7 7 7= = = 6 6 6
- - -B B B5 5 5 5 5r   r   c                   D    e Zd Z ej        e d          d             ZdS )ShortcutTestr]   c                 .    t          j        d           d S )Nimage)r(   r+   r   s    r   runTestzShortcutTest.runTest  s    Gr   N)r   r   r   rQ  rR  re   rW  r   r   r   rT  rT    s>        X_]N33  43  r   rT  )#ra   r   rQ  warningstempfiler   r   r   r(   qrcode.utilqrcode.compat.pilr   re   qrcode.exceptionsr   qrcode.image.baser   qrcode.image.purer   qrcode.image.styledpilr	   qrcode.image.stylesr
   r   r   r   r   r   rY   r   r   r   TestCaser   rT  r   r   r   <module>rb     s   				 				               



      0 0 0 0 0 0 / / / / / / ' ' ' ' ' ' ( ( ( ( ( ( 1 1 1 1 1 1 9 9 9 9 9 9 9 9 K K K K K K K K K K K K#G5 G5 G5 G5 G5(# G5 G5 G5T    8$     r   