o
    US`c                     @   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| w  t jgks.J d S )Nc                    s     |  d S N)append)signum_record ?/usr/local/lib/python3.10/dist-packages/trio/tests/test_util.pyhandler      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 sw   Y  W d    n1 s,w   Y  ttj,}    W d    n1 sHw   Y  W d    n1 sWw   Y  W d    n1 sfw   Y  dt|jv stJ  fdd}ttj0}t 4 I d H }|	| |	| W d   I d H  n1 I d H sw   Y  W d    n1 sw   Y  dt|jv sJ d S )Nul1ul2okc                      s8     t  I d H  W d    d S 1 sw   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&   s8   

(r)   c                  C   s  dd l } dd l} | jjdksJ | jjdksJ | jjjdks!J | jjjdks*J | j	j
jdks3J | jjjjdks=J | jjjjdksGJ | jjdksOJ | jjdksWJ | jjjjdksaJ | jjjjdkskJ | jjd	kssJ | jjjd
ks|J | jjjd
ksJ 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    r5   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   r   z,test_is_main_thread.<locals>.not_main_thread)r   r*   r4   r-   )r6   r   r   r   test_is_main_threadW   s   
r7   z(ignore:.*@coroutine.*:DeprecationWarningc               	      s  G dd d t  H dd } tt}t|   W d    n1 s%w   Y  dt|jv s3J dd ltj	dk rhj
fdd	}tt}t|  W d    n1 sZw   Y  d
t|jv shJ tt}tt  W d    n1 s}w   Y  d
t|jv sJ tt}tt W d    n1 sw   Y  d
t|jv sJ tt}t   W d    n1 sw   Y  dt|jv sJ tt}t fdd W d    n1 sw   Y  dt|jv sJ tt}ttg dg W d    n	1 sw   Y  dt|jv sJ dd }tt}t|dg W d    n	1 s9w   Y  d}|t|jv sJJ ~W d    d S 1 sWw   Y  d S )Nc                   @   s   e Zd ZdZdS )z)test_coroutine_or_error.<locals>.DeferredzJust kiddingN)r2   r.   r3   __doc__r   r   r   r   Deferredc   s    r9   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   )r9   r   r   <lambda>   s    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)r:   r(   r@   rD   msgr   )r9   r?   r   test_coroutine_or_errora   sV   


$rK   c                  C   s   t dd } | | t   u r| ttf u sJ  J | d| t d  kr+dks.J  J | jdks5J | jdks<J | jdksCJ | jtksJJ 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%   r8   r3   r2   r.   )rM   r   r   r   test_generic_function   s   
((rP   c                  C   sR   G dd dt d} tt G dd d| }W d    d S 1 s"w   Y  d S )Nc                   @      e Zd ZdS )z(test_final_metaclass.<locals>.FinalClassNr2   r.   r3   r   r   r   r   
FinalClass       rS   	metaclassc                   @   rQ   )z&test_final_metaclass.<locals>.SubClassNrR   r   r   r   r   SubClass   rT   rW   )r   r#   r$   rE   )rS   rW   r   r   r   test_final_metaclass   s   "rX   c                  C   s   G dd dt d} tt |   W d    n1 sw   Y  tt G dd d| }W d    n1 s9w   Y  t|  | sGJ d S )Nc                   @   rQ   )z:test_no_public_constructor_metaclass.<locals>.SpecialClassNrR   r   r   r   r   SpecialClass   rT   rY   rU   c                   @   rQ   )z6test_no_public_constructor_metaclass.<locals>.SubClassNrR   r   r   r   r   rW      rT   rW   )r   r#   r$   rE   
isinstance_create)rY   rW   r   r   r   $test_no_public_constructor_metaclass   s   r\   )r   rF   r#   r*    r   Z_core.tests.tutilr   r   Z_utilr   r   r   r	   r
   r   r   r0   r   r   r)   r5   r7   markfilterwarningsrK   rP   rX   r\   r   r   r   r   <module>   s"    $	


:
