
    )c                         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mZ d dl	m
Z
mZ d Z G d dej                        Zy)	    N)mkdtemp)mock)Image)commasmainc                       t        ddddd      )Nzutf-8s   0x80r      zinvalid start byte)UnicodeDecodeError     :/usr/lib/python3/dist-packages/qrcode/tests/test_script.pybad_readr      s    
Wgq!5I
JJr   c                   v   e Zd Zd Zd Z ej                  dd        ej                  d      d               Z ej                  dd        ej                  d       ej                  e
 d	      d
                      Z ej                  dd        ej                  d       ej                  d      d                      Z ej                  dd        ej                  d      d               Z ej                  dd        ej                  d      d               Z ej                  d      d        Z ej                  d      d        Zej                  j#                  eddj'                                ej                  e
 d	      d               Z ej                  e
 d	      d        Z ej                  dej.                         ej                  e
 d	      d               Z ej                  dej.                        d        Z ej                  dej.                        d        Zd Zy)
ScriptTestc                 "    t               | _        y N)r   tmpdirselfs    r   setUpzScriptTest.setUp   s    ir   c                 B    t        j                  | j                         y r   )osrmdirr   r   s    r   tearDownzScriptTest.tearDown   s    
r   z	os.isattyc                       yNTr   argss    r   <lambda>zScriptTest.<lambda>       r   zqrcode.main.QRCode.print_asciic                 @    t        dg       |j                  d       y NtesttextTtty)r   assert_called_withr   mock_print_asciis     r   test_isattyzScriptTest.test_isatty   s     	j\+++5r   c                       y)NFr   r   s    r   r   zScriptTest.<lambda>   r    r   z
sys.stdoutzRequires PILc                     t        dg       y )Nr#   r   r   mock_stdouts     r   
test_pipedzScriptTest.test_piped   s     	j\r   c                       yr   r   r   s    r   r   zScriptTest.<lambda>#   r    r   	sys.stdinc                     d|j                   j                  _        t        g        | j	                  |j                   j                  j
                         |j                  d       y r"   )bufferreadreturn_valuer   
assertTruecalledr&   )r   
mock_stdinr(   s      r   
test_stdinzScriptTest.test_stdin#   sN     /9
+R
))..556+++5r   c                       yr   r   r   s    r   r   zScriptTest.<lambda>,   r    r   c                    t        j                  t        j                        }d|j                  j
                  _        t        |j
                  _        t        j                  d|      5  | j                  t        t        j                  j
                         t        g        d d d        |j                  d       y # 1 sw Y   xY w)Nr#   r1   Tr$   )r   Mocksysstdinr3   r4   r5   r   side_effectpatchassertRaisesr
   r   r&   )r   r(   r8   s      r   !test_stdin_py3_unicodedecodeerrorz,ScriptTest.test_stdin_py3_unicodedecodeerror,   s     YYsyy)
.8
+&.
#ZZZ0 	0#))..AH		
 	+++5	 	s   *:B??Cc                       yr   r   r   s    r   r   zScriptTest.<lambda>9   r    r   c                 6    t        dj                                y )Nztesttext --optimize 0r   splitr'   s     r   test_optimizezScriptTest.test_optimize9   s     	$**,-r   c                 6    t        dj                                y )Nztesttext --factory svgrE   r-   s     r   test_factoryzScriptTest.test_factory>   s    %++-.r   z
sys.stderrc                 V    | j                  t        t        dj                                y )Nztesttext --factory fish)rA   
SystemExitr   rF   r   mock_stderrs     r   test_bad_factoryzScriptTest.test_bad_factoryB   s    *d,E,K,K,MNr   argvzqr testtext outputc                     t                y r   r,   r   s    r   test_sys_argvzScriptTest.test_sys_argvF   s	     	r   c                     t         j                  j                  | j                  d      }t	        dd|g       t        j
                  |       y )Nztest.pngr#   z--output)r   pathjoinr   r   remove)r   tmpfiles     r   test_outputzScriptTest.test_outputK   s5    '',,t{{J7j*g./
		'r   )new_callablec                     | j                  t              5  t        dj                                d d d        | j	                  d|j                                y # 1 sw Y   *xY w)Nz,testtext --factory pil --factory-drawer nopez*The selected factory has no drawer aliasesrA   rK   r   rF   assertIngetvaluerL   s     r   test_factory_drawer_nonez#ScriptTest.test_factory_drawer_noneQ   sW     z* 	I?EEGH	I8+:N:N:P	
	I 	I   AA"c                     | j                  t              5  t        dj                                d d d        | j	                  d|j                                y # 1 sw Y   *xY w)Nz-testtext --factory svg --factory-drawer sobadzsobad factory drawer not foundrZ   rL   s     r   test_factory_drawer_badz"ScriptTest.test_factory_drawer_badZ   sS    z* 	J@FFHI	J68L8L8NO	J 	Jr^   c                 6    t        dj                                y )Nz.testtext --factory svg --factory-drawer circlerE   rL   s     r   test_factory_drawerzScriptTest.test_factory_drawer`   s    =CCEFr   c                    | j                  t        g       d       | j                  t        dg      d       | j                  t        d      d       | j                  t        d      d       | j                  t        dd      d	       y )
N AABzA or BABCz	A, B or Cand)joinerz
A, B and C)assertEqualr   r   s    r   test_commaszScriptTest.test_commasd   sk    R(,x04e4lCr   N)__name__
__module____qualname__r   r   r   r@   r)   unittestskipIfr   r/   r9   rB   rG   rI   rN   objectr=   rF   rQ   rW   ioStringIOr]   r`   rb   rk   r   r   r   r   r      s     TZZ/0TZZ016 2 16 TZZ01TZZX__Y/ 0  2 TZZ/0TZZ01TZZ6  2 16 TZZ/0TZZ01	6 2 1	6 TZZ/0TZZ01. 2 1. TZZ/ / TZZO O 
ZZsF$8$>$>$@AX__Y/ 0 B X__Y/ 0
 TZZ2;;7X__Y/
 0 8
 TZZ2;;7P 8P
 TZZ2;;7G 8GDr   r   )rr   r   r=   ro   tempfiler   r   qrcode.compat.pilr   qrcode.console_scriptsr   r   r   TestCaser   r   r   r   <module>rx      s9    	 	 
    # /KYD"" YDr   