�
Ϫ�f~t � �f � d Z ddlmZ ddlmZ ddlmZmZ ddlm Z m
Z
mZmZ ddl
mZmZ ddlmZ ddlmZmZ dd lmZmZmZmZ dd
lmZmZ ddlmZmZmZ ddl m!Z! dd
l"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< g d�Z= ed� Z> G d� dej~ � Z@ G d� de8j� � ZB G d� d� ZC ee0e&e)� G d� d� � ZD G d� deD� ZE G d � d!e� ZF ee'� G d"� d#� � ZG ee%� G d$� d%� � ZH ee*e.e-e/e,e+� G d&� d'� � ZI eeI� D ] ZJ eeJeI� �
G d(� d)eIe2� ZK ee.e-e/e,� G d*� d+� � ZL G d,� d-� ZMd.� ZN ee4� G d/� d0ee5 � � ZOy1)2zJ
Assorted functionality which is commonly useful when writing unit tests.
� )�annotations)�BytesIO)�AF_INET�AF_INET6)�Callable�Iterator�Sequence�overload)�
implementedBy�implementer)�verifyClass)� ParamSpec�Self)�address�error�protocol�task)�_dataMustBeBytes�
isIPv6Address)�IPv4Address�IPv6Address�UNIXAddress)�Deferred)�UnsupportedAddressFamily)�
IConnector� IConsumer�IListeningPort� IProtocol�
IPushProducer�IReactorCore�
IReactorFDSet�IReactorSocket�IReactorSSL�IReactorTCP�IReactorUNIX�
ITransport)�Clock)�ILogObserver�LogEvent�LogPublisher)�basic)�failure)�TestCase)�AccumulatingProtocol�LineSendingProtocol�FakeDatagramTransport�StringTransport� StringTransportWithDisconnection�StringIOWithoutClosing�_FakeConnector� _FakePort�
MemoryReactor�MemoryReactorClock�RaisingMemoryReactor�NonStreamingProducer�waitUntilAllDisconnected�EventLoggingObserver�_Pc �: � e Zd ZdZdxZZdZdZdZdZ d� Z
d� Zd� Zy)r. ad
L{AccumulatingProtocol} is an L{IProtocol} implementation which collects
the data delivered to it and can fire a Deferred when it is connected or
disconnected.
@ivar made: A flag indicating whether C{connectionMade} has been called.
@ivar data: Bytes giving all the data passed to C{dataReceived}.
@ivar closed: A flag indicated whether C{connectionLost} has been called.
@ivar closedReason: The value of the I{reason} parameter passed to
C{connectionLost}.
@ivar closedDeferred: If set to a L{Deferred}, this will be fired when
C{connectionLost} is called.
r N� c �� � d| _ | j �P| j j �9| j j }d | j _ |j | � y y y �N� )�made�factory�protocolConnectionMade�callback��self�ds �:/usr/lib/python3/dist-packages/twisted/internet/testing.py�connectionMadez#AccumulatingProtocol.connectionMadeX sR � ��� ��<�<�#����(K�(K�(W����3�3�A�26�D�L�L�/�
�J�J�t�� )X�#r> |