o
    >e                     @   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	   Y/var/www/html/humari/django-venv/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    