| Server IP : 43.129.54.214 / Your IP : 216.73.217.113 Web Server : nginx/1.24.0 System : Linux VM-4-108-ubuntu 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/local/qcloud/python/lib/python3.7/test/__pycache__/ |
Upload File : |
B
��f�: � @ s� d dl Z d dlmZmZmZ d dlZd dlmZ d dlZd dl m
Z
dd� ZG dd� dej�Z
G d d
� d
ej�ZG dd� de
ej�Zed
kr�e�� dS )� N)�asynccontextmanager�AbstractAsyncContextManager�AsyncExitStack)�support)�TestBaseExitStackc s t �� �� fdd��}|S )z5Decorator to turn an async function into a test case.c s@ � | |�}t �� }t �|� z
|�|�S |�� t �d � X d S )N)�asyncio�new_event_loop�set_event_loopZrun_until_complete�close)�args�kwargs�coro�loop)�func� �D/usr/local/qcloud/python/lib/python3.7/test/test_contextlib_async.py�wrapper s
z_async_test.<locals>.wrapper)� functools�wraps)r r r )r r �_async_test
s
r c @ s4 e Zd Zedd� �Zedd� �Zdd� Zdd� Zd S )
�TestAbstractAsyncContextManagerc
� sZ G dd� dt �}|� }| �|�� I d H |� |4 I d H �}| �||� W d Q I d H R X d S )Nc s e Zd Z� fdd�Z� ZS )z@TestAbstractAsyncContextManager.test_enter.<locals>.DefaultEnterc � s t � j|� I d H d S )N)�super� __aexit__)�selfr )� __class__r r r s zJTestAbstractAsyncContextManager.test_enter.<locals>.DefaultEnter.__aexit__)�__name__�
__module__�__qualname__r �
__classcell__r r )r r �DefaultEnter s r )r �assertIs�
__aenter__)r r Zmanager�contextr r r �
test_enter s
z*TestAbstractAsyncContextManager.test_enterc � s� t dd� �� � fdd�}g }td�}| �t��b � � 4 I d H �B x:|� 2 y3 d H }W n
tk
spX |�|� |�qH Y W W d Q I d H R X W d Q R X | �|dg� d S )Nc S s
d V d S )Nr r r r r �ctx+ s zUTestAbstractAsyncContextManager.test_async_gen_propagates_generator_exit.<locals>.ctxc
s* � � 4 I d H � dV W d Q I d H R X d S )N� r r )r$ r r �gen/ s zUTestAbstractAsyncContextManager.test_async_gen_propagates_generator_exit.<locals>.gen� r% )r �
ValueError�assertRaises�StopAsyncIteration�append�assertEqual)r r&