�
Ϫ�f/@ � �@ � d Z g d�ZddlZddlZddlZddlmZmZmZm Z m
Z
mZmZm
Z
ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZmZ ddlmZm Z erdd
l!m"Z" ddl!m#Z$ e$Z# G d� de&� Z'd� Z(dd�Z) G d� d� Z*de+ddfd�Z,e,Z-y# e%$ r dZ#Y �0w xY w)a�
Utilities for unit testing reactor implementations.
The main feature of this module is L{ReactorBuilder}, a base class for use when
writing interface/blackbox tests for reactor implementations. Test case classes
for reactor features should subclass L{ReactorBuilder} instead of
L{SynchronousTestCase}. All of the features of L{SynchronousTestCase} will be
available. Additionally, the tests will automatically be applied to all
available reactor implementations.
)�TestTimeoutError�ReactorBuilder�needsRunningReactor� N)�
TYPE_CHECKING�Callable�Dict�Optional�Sequence�Type�Union�cast)� Interface��log)�_fullyQualifiedName)�Failure)�namedAny)�platform)�SkipTest�SynchronousTestCase)�DEFAULT_TIMEOUT_DURATION�acquireAttribute��asyncioreactor)�processc � � e Zd ZdZy)r zm
The reactor was still running after the timeout period elapsed in
L{ReactorBuilder.runReactor}.
N)�__name__�
__module__�__qualname__�__doc__� � �E/usr/lib/python3/dist-packages/twisted/internet/test/reactormixins.pyr r / s � �r" |