o
    ÓèFhß  ã                   @   sr   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d„ ZG dd	„ d	ejƒZdS )
é    N)Úmkdtemp)Úmock)ÚImage)ÚcommasÚmainc                   C   s   t dddddƒ‚)Nzutf-8s   0x80r   é   zinvalid start byte)ÚUnicodeDecodeError© r	   r	   úQ/var/www/html/loop/nvenv/lib/python3.10/site-packages/qrcode/tests/test_script.pyÚbad_read   ó   r   c                   @   s   e Zd Zdd„ Zdd„ Ze ddd„ ¡e d¡d	d
„ ƒƒZe ddd„ ¡e d¡e 	e
 d¡dd„ ƒƒƒZe ddd„ ¡e d¡e d¡dd„ ƒƒƒZe ddd„ ¡e d¡dd„ ƒƒZe ddd„ ¡e d¡dd„ ƒƒZe d¡dd„ ƒZe d¡dd„ ƒZej edd  ¡ ¡e 	e
 d¡d!d"„ ƒƒZe 	e
 d¡d#d$„ ƒZejdejd%�e 	e
 d¡d&d'„ ƒƒZejdejd%�d(d)„ ƒZejdejd%�d*d+„ ƒZd,d-„ Zd.S )/Ú
ScriptTestc                 C   s   t ƒ | _d S ©N)r   Útmpdir©Úselfr	   r	   r
   ÚsetUp   s   zScriptTest.setUpc                 C   s   t  | j¡ d S r   )ÚosÚrmdirr   r   r	   r	   r
   ÚtearDown   r   zScriptTest.tearDownz	os.isattyc                  G   ó   dS ©NTr	   ©Úargsr	   r	   r
   Ú<lambda>   ó    zScriptTest.<lambda>zqrcode.main.QRCode.print_asciic                 C   s   t dgƒ |jdd� d S ©NÚtesttextT©Útty)r   Úassert_called_with©r   Úmock_print_asciir	   r	   r
   Útest_isatty   s   
zScriptTest.test_isattyc                  G   r   )NFr	   r   r	   r	   r
   r      r   z
sys.stdoutzRequires PILc                 C   s   t dgƒ d S )Nr   ©r   ©r   Úmock_stdoutr	   r	   r
   Ú
test_piped   s   zScriptTest.test_pipedc                  G   r   r   r	   r   r	   r	   r
   r   #   r   ú	sys.stdinc                 C   s2   d|j j_tg ƒ |  |j jj¡ |jdd� d S r   )ÚbufferÚreadÚreturn_valuer   Ú
assertTrueÚcalledr    )r   Ú
mock_stdinr"   r	   r	   r
   Ú
test_stdin#   s   
zScriptTest.test_stdinc                  G   r   r   r	   r   r	   r	   r
   r   ,   r   c                 C   sr   t  tj¡}d|jj_t|j_t  	d|¡� |  
ttjj¡ tg ƒ W d   ƒ n1 s,w   Y  |jdd� d S )Nr   r(   Tr   )r   ÚMockÚsysÚstdinr)   r*   r+   r   Úside_effectÚpatchÚassertRaisesr   r   r    )r   r"   r.   r	   r	   r
   Ú!test_stdin_py3_unicodedecodeerror,   s   

üz,ScriptTest.test_stdin_py3_unicodedecodeerrorc                  G   r   r   r	   r   r	   r	   r
   r   9   r   c                 C   ó   t d ¡ ƒ d S )Nztesttext --optimize 0©r   Úsplitr!   r	   r	   r
   Útest_optimize9   s   zScriptTest.test_optimizec                 C   r7   )Nztesttext --factory svgr8   r%   r	   r	   r
   Útest_factory>   ó   zScriptTest.test_factoryz
sys.stderrc                 C   s   |   ttd ¡ ¡ d S )Nztesttext --factory fish)r5   Ú
SystemExitr   r9   ©r   Úmock_stderrr	   r	   r
   Útest_bad_factoryB   s   zScriptTest.test_bad_factoryÚargvzqr testtext outputc                 C   s
   t ƒ  d S r   r$   r   r	   r	   r
   Útest_sys_argvF   s   
zScriptTest.test_sys_argvc                 C   s,   t j | jd¡}tdd|gƒ t  |¡ d S )Nztest.pngr   z--output)r   ÚpathÚjoinr   r   Úremove)r   Útmpfiler	   r	   r
   Útest_outputK   s   zScriptTest.test_output)Únew_callablec                 C   óJ   |   t¡� td ¡ ƒ W d   ƒ n1 sw   Y  |  d| ¡ ¡ d S )Nz,testtext --factory pil --factory-drawer nopez*The selected factory has no drawer aliases©r5   r=   r   r9   ÚassertInÚgetvaluer>   r	   r	   r
   Útest_factory_drawer_noneQ   s   ÿÿz#ScriptTest.test_factory_drawer_nonec                 C   rI   )Nz-testtext --factory svg --factory-drawer sobadzsobad factory drawer not foundrJ   r>   r	   r	   r
   Útest_factory_drawer_badZ   s   ÿz"ScriptTest.test_factory_drawer_badc                 C   r7   )Nz.testtext --factory svg --factory-drawer circler8   r>   r	   r	   r
   Útest_factory_drawer`   r<   zScriptTest.test_factory_drawerc                 C   sZ   |   tg ƒd¡ |   tdgƒd¡ |   tdƒd¡ |   tdƒd¡ |   tddd�d	¡ d S )
NÚ ÚAÚABzA or BÚABCz	A, B or CÚand)Újoinerz
A, B and C)ÚassertEqualr   r   r	   r	   r
   Útest_commasd   s
   zScriptTest.test_commasN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r4   r#   ÚunittestÚskipIfr   r'   r/   r6   r:   r;   r@   Úobjectr1   r9   rB   rG   ÚioÚStringIOrM   rN   rO   rW   r	   r	   r	   r
   r      sJ    




r   )r^   r   r1   r[   Útempfiler   r   Úqrcode.compat.pilr   Úqrcode.console_scriptsr   r   r   ÚTestCaser   r	   r	   r	   r
   Ú<module>   s    