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mZ ddl	m
Z
mZmZmZmZmZmZ ddlmZ dd Zd	d
 Zdd Zdd Zejddd Zdd Zdd Zdd ZdS )    N   )_core)'ignore_coroutine_never_awaited_warnings!create_asyncio_future_in_new_loop)signal_raiseConflictDetectoris_main_threadcoroutine_or_errorgeneric_functionFinalNoPublicConstructorwait_all_tasks_blockedc               
      s`   g   fdd} t  t j| }ztt j W t  t j| nt  t j| 0  t jgks\J d S )Nc                    s     |  d S N)append)signum_record L/var/www/html/Ranjet/env/lib/python3.9/site-packages/trio/tests/test_util.pyhandler   s    z"test_signal_raise.<locals>.handler)signalSIGFPEr   )r   oldr   r   r   test_signal_raise   s     r   c               
      s  t d t d}  < |  td W d    n1 s80    Y  W d    n1 sV0    Y  ttjX} 4   W d    n1 s0    Y  W d    n1 s0    Y  W d    n1 s0    Y  dt|jv sJ  fdd}ttjd}t 4 I d H ,}|	| |	| W d   I d H  qT1 I d H sJ0    Y  W d    n1 sj0    Y  dt|jv sJ d S )Nul1ul2okc                      s4     t  I d H  W d    n1 s&0    Y  d S r   r   r   r   r   r   wait_with_ul14   s    z,test_ConflictDetector.<locals>.wait_with_ul1)
r   printpytestraisesr   ZBusyResourceErrorstrvalueopen_nurseryZ
start_soon)r   excinfor    Znurseryr   r   r   test_ConflictDetector&   s     DZ
Xr(   c                  C   s  dd l } dd l} | jjdks J | jjdks0J | jjjdksBJ | jjjdksTJ | j	j
jdksfJ | jjjjdkszJ | jjjjdksJ | jjdksJ | jjdksJ | jjjjdksJ | jjjjdksJ | jjd	ksJ | jjjd
ksJ | jjjd
ksJ d S )Nr   trioztrio.abcztrio.lowlevelztrio.testing	Cancelledsend_allzSendStream.send_allztrio.to_threadrun_sync)r)   Ztrio.testingr*   
__module__r&   abcZStreamZlowlevelZwait_task_rescheduledtestingZ	trio_testZ
ParkingLot__init__r+   __name____qualname__Z
SendStream	to_threadr,   )r)   r   r   r    test_module_metadata_is_fixed_up?   s     r4   c                     s(   t  s
J dd } tj| I d H  d S )Nc                   S   s   t  r
J d S r   )r   r   r   r   r   not_main_threadZ   s    z,test_is_main_thread.<locals>.not_main_thread)r   r)   r3   r,   )r5   r   r   r   test_is_main_threadW   s    
r6   z(ignore:.*@coroutine.*:DeprecationWarningc               	      s  G dd d t   dd } tt}t|   W d    n1 sJ0    Y  dt|jv sfJ dd ltj	dk rЈj
fdd	}tt}t|  W d    n1 s0    Y  d
t|jv sJ tt}tt  W d    n1 s0    Y  d
t|jv sJ tt}tt W d    n1 sB0    Y  d
t|jv s`J tt}t   W d    n1 s0    Y  dt|jv sJ tt }t fdd W d    n1 s0    Y  dt|jv sJ tt }ttg dg W d    n1 s,0    Y  dt|jv sJJ dd }tt}t|dg W d    n1 s0    Y  d}|t|jv sJ ~W d    n1 s0    Y  d S )Nc                   @   s   e Zd ZdZdS )z)test_coroutine_or_error.<locals>.DeferredzJust kiddingN)r1   r-   r2   __doc__r   r   r   r   Deferredc   s   r8   c                      s   d S r   r   r   r   r   r   fh   s    z"test_coroutine_or_error.<locals>.fzexpecting an async functionr   )      c                   3   s     dE d H  d S )N   )sleepr   )asyncior   r   generator_based_coros   s    z5test_coroutine_or_error.<locals>.generator_based_coror>   Ztwistedc                      s     S r   r   r   )r8   r   r   <lambda>       z)test_coroutine_or_error.<locals>.<lambda>)r<   r   r:   zappears to be synchronousc                 S  s
   d V  d S r   r   argr   r   r   	async_gen   s    z*test_coroutine_or_error.<locals>.async_genz5expected an async function but got an async generator)r   r"   r#   	TypeErrorr	   r$   r%   r>   sysversion_info	coroutiner   len)r9   r'   r?   rD   msgr   )r8   r>   r   test_coroutine_or_errora   sD    
(
(((*00,rK   c                  C   s   t dd } | | t   u r,| ttf u s2n J | d| t d  krRdksXn J | jdksfJ | jdkstJ | jdksJ | jtksJ d S )Nc                 S   s   | S )Look, a docstring!r   rB   r   r   r   	test_func   s    z(test_generic_function.<locals>.test_func*   rL   rM   )r
   intr$   r7   r2   r1   r-   )rM   r   r   r   test_generic_function   s    
&&rP   c                  C   sP   G dd dt d} tt  G dd d| }W d    n1 sB0    Y  d S )Nc                   @   s   e Zd ZdS )z(test_final_metaclass.<locals>.FinalClassNr1   r-   r2   r   r   r   r   
FinalClass   s   rR   	metaclassc                   @   s   e Zd ZdS )z&test_final_metaclass.<locals>.SubClassNrQ   r   r   r   r   SubClass   s   rU   )r   r"   r#   rE   )rR   rU   r   r   r   test_final_metaclass   s    rV   c                  C   s   G dd dt d} tt |   W d    n1 s80    Y  tt  G dd d| }W d    n1 sr0    Y  t|  | sJ d S )Nc                   @   s   e Zd ZdS )z:test_no_public_constructor_metaclass.<locals>.SpecialClassNrQ   r   r   r   r   SpecialClass   s   rW   rS   c                   @   s   e Zd ZdS )z6test_no_public_constructor_metaclass.<locals>.SubClassNrQ   r   r   r   r   rU      s   rU   )r   r"   r#   rE   
isinstance_create)rW   rU   r   r   r   $test_no_public_constructor_metaclass   s    $.rZ   )r   rF   r"   r)    r   Z_core.tests.tutilr   r   Z_utilr   r   r   r	   r
   r   r   r/   r   r   r(   r4   r6   markfilterwarningsrK   rP   rV   rZ   r   r   r   r   <module>   s    $	


:
