o
    Uh"                     @   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Zdd Zdd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Z d5d6 Z!d7d8 Z"d9d: Z#d;d< Z$d=d> Z%d?d@ Z&dNdBdCZ'dDdE Z(dFdG Z)dHdI Z*G dJdK dKe+Z,G dLdM dMe+Z-dS )O    N)mockc               	   C   s   ddl m}  ddl m} |  d }t }tjt	d|! t
t |g  W d    n1 s3w   Y  W d    n1 sBw   Y  || v sOJ d S )Nr   )__doc___parse_optionsstderr)pkginfo.commandliner   r   
splitlinesioStringIOr   patchobjectsyspytestraises
SystemExitgetvalue)usager   	firstlinebuf r   r/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/pkginfo/tests/test_commandline.pytest__parse_options_empty	   s   
r   c                  C   s,   ddl m}  | dg\}}|dgksJ d S )Nr   r   foo)r   r   )r   optionsargsr   r   r   test__parse_options_nonempty   s   r   c                 C      ddl m} || S )Nr   )Base)r   r   )r   r   r   r   r   
_make_base      r   c                  C   s    t tdd} | jd u sJ d S )Nr   fields)r   _Options_fields)baser   r   r   test_base_ctor_defaults!   s   r%   c                  C   s&   t  } tt| d}|j| u sJ d S )Nr    )r   r   r"   r#   )r!   r$   r   r   r   test_base_ctor_w_fields%   s   r&   c                 O   sT   t  }tjtd| | |i | W d    | S 1 s!w   Y  | S Nstdout)r	   r
   r   r   r   r   r   )funcr   kwr   r   r   r   _capture_output*   s   
r+   c                 C   s@   t jtdt  | | W d    d S 1 sw   Y  d S r'   )r   r   r   r   simplemetar   r   r   
_no_output2   s   
"r/   c                 C   r   )Nr   )Simple)r   r0   )r   r0   r   r   r   _make_simple6   s   r1   c                  C   s   t td dd} | jsJ d S )NTr!   skip)r1   r"   _skipr-   r   r   r   test_simple___init__:   s   r6   c                  C   s$   t tddd} t }t| | d S )Nr   Fr2   r1   r"   _Metar/   r,   r   r   r   "test_simple__call___w_empty_fields>   s   r9   c                  C   s(   t tddd} td d}t| | d S )Nr   Tr2   r   r7   r,   r   r   r   3test_simple__call___w_skip_and_value_None_no_fieldsC   s   
r;   c                  C   s*   t tddd} tddd}t| | d S )Nr:   Tr2   r   Barr   barr7   r,   r   r   r   @test_simple__call___w_skip_and_value_empty_tuple_explicit_fieldsH   s   r?   c                  C   s4   t tddd} tdd}t| |}|dksJ d S )Nr:   Tr2   Fooz	foo: Foo
)r1   r"   r8   r+   )r-   r.   outputr   r   r   5test_simple__call___w_skip_but_values_explicit_fieldsM   s   

rB   c                 C   r   )Nr   )
SingleLine)r   rC   )r   rC   r   r   r   _make_single_lineS   r   rD   c                  C   s2   t td ddd} | jdksJ | jdksJ d S )NISr!   
item_delimsequence_delim)rD   r"   _item_delim_sequence_delim)singler   r   r   test_singleline__init___X   s
   rM   c                  C   s:   t tddt d} tddd}t| |}|dksJ d S )Nr   |rG   r@   r<   r=   zBar|Foo
)rD   r"   r   r8   r+   rL   r.   rA   r   r   r   (test_singleline__call__wo_fields_wo_list^   s   
rP   c                  C   s>   t tdddd} tdddgdd	}t| |}|d
ksJ d S )Nr=   rN   *rG   r@   Bar1Bar2Bazr   r>   bazzFoo|Bar1*Bar2
)rD   r"   r8   r+   rO   r   r   r   &test_singleline__call__w_fields_w_listf   s   
rW   c                 C   r   )Nr   )CSV)r   rX   )r   rX   r   r   r   	_make_csvn   r   rY   c                  C   s"   t td dd} | jdksJ d S )NrF   r!   rI   )rY   r"   rK   )csvr   r   r   test_csv__init___s   s   
r\   c                  C   s8   t ddd} ttd t d}t|| }|dksJ d S )Nr@   r<   r=   rZ   zbar,foo
Bar,Foo
)r8   rY   r"   r   r+   r.   r[   rA   r   r   r   !test_csv__call__wo_fields_wo_listx   s   
r^   c                  C   s>   t dddgdd} ttdddd	}t|| }|d
ksJ d S )Nr@   rR   rS   rT   rU   r=   rN   rQ   rG   zfoo,bar
Foo,Bar1*Bar2
)r8   rY   r"   r+   r]   r   r   r   test_csv__call__w_fields_w_list   s   
r_   c                 C   r   )Nr   )INI)r   r`   )r   r`   r   r   r   	_make_ini   r   ra   c                  C   s`   t tdd} tdddd}| jd tt | | W d    d S 1 s)w   Y  d S )Nr:   r    r   0.1r@   nameversionr   foo-0.1)ra   r"   r8   _parseradd_sectionr   r   
ValueError)inir.   r   r   r   test_ini__call___duplicate   s   
"rk   c                  C   s   t td d} tdddd}| | | j}| dgksJ t|dg dks+J |dddks5J |dd	dks?J |dddksIJ d S )
Nr    r   rb   r@   rc   rf   )r   rd   re   rd   re   ra   r"   r8   rg   sectionssortedr   getrj   r.   cpr   r   r   "test_ini__call___wo_fields_wo_list   s   rr   c                  C   s   t tdd} tdddddgdd	}| | | j}| d
gks"J t|d
ddgks/J |d
ddks9J |d
ddksCJ d S )Nr=   r    r   rb   r@   rR   rS   rT   rd   re   r   r>   rV   rf   r>   z
Bar1
	Bar2rl   rp   r   r   r    test_ini__call___w_fields_w_list   s   rt   c                 C   r   )Nr   )JSON)r   ru   )r   ru   r   r   r   
_make_json   r   rv   c                  C   s^   t tdd} tdddd}d| jd< tt | | W d    d S 1 s(w   Y  d S )N)rd   r    r   rb   r@   rc   rd   rv   r"   r8   _mappingr   r   ri   jsonr.   r   r   r   0test_json__call___duplicate_with_meta_and_fields      

"r{   c                  C   s^   t td d} tdddd}d| jd< tt | | W d    d S 1 s(w   Y  d S )Nr    r   rb   r@   rc   rd   rw   ry   r   r   r   /test_json__call___duplicate_with_meta_wo_fields   r|   r}   c                  C   sD   t td d} tdddd}| | tg d}|| jks J d S )Nr    r   rb   r@   rc   r   r@   )rd   r   )re   rb   rv   r"   r8   collectionsOrderedDictrx   rz   r.   expectedr   r   r   #test_json__call___wo_fields_wo_list   s
   r   c                  C   sT   t tdd} tdddddgdd	}| | td
dddgfg}|| jks(J d S )Nr=   r    r   rb   r@   rR   rS   rT   rs   r   r>   r   r   r   r   r   !test_json__call___w_fields_w_list   s   
r   c                  C   s\   t td d} tdddd}| | t| j}tj|tjd}tg d}||ks,J d S )Nr    r   rb   r@   rc   )object_pairs_hookr~   )	rv   r"   r8   r+   finishjson_moduleloadsr   r   )rz   r.   rA   r   r   r   r   test_json__call___output   s   
r   r-   c                    s`   ddl m} tjdgd tjjd fddd ||  W d     S 1 s)w   Y   S )	Nr   )mainr   )speczpkginfo.commandline._FORMATTERSc                     s    S Nr   )r   	formatterr   r   <lambda>   s    z_call_main.<locals>.<lambda>r5   )r   r   r   Mockr   dict)r   monkeyr   r   r   r   
_call_main   s   


r   c                  C   sh   ddl m}  td}d |_tdg}W d    n1 sw   Y  |  |j  |dd  d S )Nr   commandline pkginfo.commandline.get_metadatar   )	pkginfor   r   r   return_valuer   assert_not_calledr   assert_called_once_with)MUT_get_metadatar   r   r   r   test_main_w_missing_dist   s   
r   c                  C   s   ddl m}  td d}td}||_tg d}W d    n1 s$w   Y  || |j  |dd  |j	dks@J d S )Nr   r   download_urlr   z-dzhttp://example.com/path/to/foor   zhttp://example.com/foo
r   r   r8   r   r   r   r   r   r   r   r   r.   r   r   r   r   r    test_main_w_dist_wo_download_url      


r   c                  C   s   ddl m}  tdd}td}||_tg d}W d    n1 s$w   Y  || |j  |dd  |j	dks@J d S )Nr   r   zhttp://example.com/dist/foor   r   r   r   r   r   r   r   r   test_main_w_dist_w_download_url  r   r   c                   @   s   e Zd Zdd ZdS )r"   c                 K      |D ]	}|| | j |< qd S r   __dict__selfr*   kr   r   r   __init__     z_Options.__init__N)__name__
__module____qualname__r   r   r   r   r   r"     s    r"   c                   @   s   e Zd Zdd Zdd ZdS )r8   c                 K   r   r   r   r   r   r   r   r     r   z_Meta.__init__c                 C   s   t t| jS r   )iterrn   r   )r   r   r   r   __iter__#  s   z_Meta.__iter__N)r   r   r   r   r   r   r   r   r   r8     s    r8   r5   ).r   r	   rz   r   r   unittestr   r   r   r   r   r%   r&   r+   r/   r1   r6   r9   r;   r?   rB   rD   rM   rP   rW   rY   r\   r^   r_   ra   rk   rr   rt   rv   r{   r}   r   r   r   r   r   r   r   r   r"   r8   r   r   r   r   <module>   sV    		
