File: //usr/lib/python3/dist-packages/twisted/internet/test/__pycache__/test_epollreactor.cpython-38.pyc
U
W[� � @ s� d Z ddlmZmZ ddlmZ zddlmZ W n ek
rH dZY nX ddl m
Z
ddlmZ G dd � d e
�ZG d
d� de�ZdS )z-
Tests for L{twisted.internet.epollreactor}.
� )�division�absolute_import)�TestCase)�_ContinuousPollingN)�Clock��ConnectionDonec @ s8 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� ZdS )
�
DescriptorzF
Records reads and writes, as if it were a C{FileDescriptor}.
c C s
g | _ d S �N)�events��self� r �I/usr/lib/python3/dist-packages/twisted/internet/test/test_epollreactor.py�__init__ s zDescriptor.__init__c C s dS )N� r r r r r �fileno s zDescriptor.filenoc C s | j �d� d S )N�read�r �appendr r r r �doRead! s zDescriptor.doReadc C s | j �d� d S )N�writer r r r r �doWrite% s zDescriptor.doWritec C s |� t� | j�d� d S )N�lost)Ztrapr r r )r
�reasonr r r �connectionLost) s
zDescriptor.connectionLostN) �__name__�
__module__�__qualname__�__doc__r r r r r r r r r r s r c @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zedkr�dZdS )�ContinuousPollingTestsza
L{_ContinuousPolling} can be used to read and write from C{FileDescriptor}
objects.
c C sv t t� �}| �|j� t� }| �|�|�� |�|� | �|j� | � |jj
� | �|jj|j
� | � |�|�� dS )zi
Adding a reader when there was previously no reader starts up a
C{LoopingCall}.
N)r r �assertIsNone�_loop�object�assertFalse� isReading� addReader�assertIsNotNone�
assertTrue�running�assertIs�clock�_reactor�r
�poller�readerr r r �test_addReader5 s
z%ContinuousPollingTests.test_addReaderc C sv t t� �}| �|j� t� }| �|�|�� |�|� | �|j� | � |jj
� | �|jj|j
� | � |�|�� dS )zi
Adding a writer when there was previously no writer starts up a
C{LoopingCall}.
N)r r r! r"