a
    xd                     @   s  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 ej	dd Z
dd Zdd	 Zd
d ZejejfejejfejejfgZejdedd ZejejfejejfejefeejfgZejdedd Zejdejejfejejfgejdg ddd Zdd Zdd Zejdddgdd Zdd Zejddd gd!d" Zd#d$ Zd%d& Zd'd( Zd)d* ZG d+d, d,ZG d-d. d.Z d/d0 Z!d1d2 Z"d3d4 Z#d5d6 Z$ejd7ejj%ejj&gd8d9 Z'd:d; Z(d<d= Z)d>d? Z*d@dA Z+dBdC Z,dS )D    N)AsyncAutoWrapperType)AsyncIOWrapperc                 C   s   t | d}t|S )Ntest)strjointrioPath)tmpdirp r   L/var/www/html/Ranjet/env/lib/python3.9/site-packages/trio/tests/test_path.pypath   s    r   c                 C   s(   t | } t| }t| |t||fS N)pathlibr   r   getattr)r   method_nameZ
async_pathr   r   r   method_pair   s    

r   c              	      s`   |  dI d H 4 I d H $}t|ts(J W d   I d H  qR1 I d H sH0    Y  |js\J d S Nw)open
isinstancer   closedr   fr   r   r   "test_open_is_async_context_manager   s    8r   c                     s.   t d} t| dksJ t| dks*J d S )Nr   s   test)r   r   r   bytesr   r   r   r   
test_magic   s    
r   zcls_a,cls_bc                    sp   | d|d }}||ksJ ||kr*J | d|d }}||k sHJ ||ksTJ |d kr`J |d krlJ d S )N abr   )cls_acls_br   r    r   r   r   test_cmp_magic,   s    r#   c                    sH   | d|d }}|| }t |tjs*J t|tjddksDJ d S )Nr   r    )r   r   r   r   osr   r   )r!   r"   r   r    resultr   r   r   test_div_magicG   s    r&   )foozfoo/bar/bazz./fooc                    s*   | ||| }}t |t |ks&J d S r   )hash)r!   r"   r   r   r    r   r   r   test_hash_magicP   s    r)   c                    s"   dt | v sJ | jdksJ d S )Nnamer   )dirr*   r   r   r   r   test_forwarded_propertiesY   s    r,   c                    s4   | j jdksJ | j jdks J d| j jv s0J d S )NresolvezPath.resolvezpathlib.Path.resolve)r-   __name____qualname____doc__r   r   r   r   test_async_method_signature`   s    r1   r   is_diris_filec                    s0   t d| \}}| }| I d H }||ks,J d S N.)r   r   methodZasync_methodr%   Zasync_resultr   r   r   test_compare_async_stat_methodsi   s    r8   c                    s8   t t t| d W d    n1 s*0    Y  d S )NZinvalid_fake_attr)pytestraisesAttributeErrorr   r   r   r   r   test_invalid_name_not_wrappedt   s    r<   absoluter-   c                    sH   t d| \}}| }| I d H }t|tjs0J t|t|ksDJ d S r4   )r   r   r   r   r   r6   r   r   r   test_async_methods_rewrapy   s
    r>   c                    s\   |  d}| d}t|tjs$J ||dks6J t|tjsFJ ||dksXJ d S )Nr'   z.pyztest.py)	with_namewith_suffixr   r   r   r   )r   r	   r?   r@   r   r   r   test_forward_methods_rewrap   s    

rA   c                    s   t | jtjsJ d S r   )r   parentr   r   r   r   r   r   test_forward_properties_rewrap   s    rC   c                    s&   | j  I d H } |  ds"J d S )Nzfile:///)rB   r-   as_uri
startswith)r   r	   r   r   r   #test_forward_methods_without_rewrap   s    rF   c                     s   t d} t| dksJ d S )Nr5   ztrio.Path('.'))r   r   reprr   r   r   r   	test_repr   s    
rH   c                   @   s   e Zd ZdZdZdS )MockWrappedunsupportedprivateN)r.   
__module__r/   rJ   _privater   r   r   r   rI      s   rI   c                   @   s   e Zd ZeZeZdS )MockWrapperN)r.   rL   r/   rI   Z	_forwardsZ_wrapsr   r   r   r   rN      s   rN   c                      s:   t t tti  W d    n1 s,0    Y  d S r   )r9   r:   	TypeErrorTypegenerate_forwardsrN   r   r   r   r   test_type_forwards_unsupported   s    rR   c                      s:   t t tti  W d    n1 s,0    Y  d S r   )r9   r:   rO   rP   generate_wrapsrN   r   r   r   r   test_type_wraps_unsupported   s    rT   c                      s"   t tdd i ttdrJ d S NrJ   rM   )rP   rQ   rN   hasattrr   r   r   r   test_type_forwards_private   s    rW   c                      s"   t tdd i ttdrJ d S rU   )rP   rS   rN   rV   r   r   r   r   test_type_wraps_private   s    rX   methc                    s4   |   I d H }|| |}|d u r$| }||ks0J d S r   )r=   )r   rY   wrappedr%   r   r   r   test_path_wraps_path   s
    
r[   c                      s8   t t td W d    n1 s*0    Y  d S )N   )r9   r:   rO   r   r   r   r   r   r   test_path_nonpath   s    r]   c              	      s^   t | dI d H 4 I d H *}|jt| ks0J W d   I d H  qZ1 I d H sP0    Y  d S r   )r   	open_filer*   r$   fspathr   r   r   r   test_open_file_can_open_path   s    r`   c                    s  |   I d H  | d   I d H  | d d dI d H  | d dI d H  | d dI d H  dhddhd D ]L\}}t }| |I d H D ] }t|tjsJ ||j	 q||kstJ qtt }| 
dI d H D ] }t|tjsJ ||j	 q|ddhksJ d S )Nr'   z_bar.txt    bar.txtzbar.dat)*.txtz**/*.txtrc   )mkdirwrite_bytesitemssetglobr   r   r   addr*   rglob)r   Z_patternZ_resultsentriesentryr   r   r   test_globmethods   s$    rm   c                    s~   |   I d H  | d   I d H  | d dI d H  t }|  I d H D ] }t|tjs\J ||j qH|ddhkszJ d S )Nr'   rb   ra   )	rd   re   rg   iterdirr   r   r   ri   r*   )r   rk   rl   r   r   r   test_iterdir   s    ro   c                      sr   t tj I d H tjsJ ttj I d H tjdks@J ttj I d H t	 ks`J tjjj
snJ d S )N~)r   r   r   homer   r$   r   
expandusercwdgetcwdr0   r   r   r   r   test_classmethods   s    $ ru   )-r$   r   r9   r   Z
trio._pathr   rP   Ztrio._file_ior   Zfixturer   r   r   r   r   Z	cls_pairsmarkZparametrizer#   r   r&   r)   r,   r1   r8   r<   r>   rA   rC   rF   rH   rI   rN   rR   rT   rW   rX   __init__joinpathr[   r]   r`   rm   ro   ru   r   r   r   r   <module>   sh   







	




	