File: //usr/lib/python3/dist-packages/twisted/test/__pycache__/test_fdesc.cpython-38.pyc
U
��W[� � @ s� d Z ddlZddlZddlZzddlZW n ek
r@ dZY nX ddlmZ ddl m
Z
ddlmZ G dd� dej
�ZG d d
� d
ej
�ZG dd� dej
�ZdS )
z&
Tests for L{twisted.internet.fdesc}.
� Nznot supported on this platform)�fdesc)�untilConcludes)�unittestc @ s e Zd ZdZdd� Zdd� ZdS )�NonBlockingTestszE
Tests for L{fdesc.setNonBlocking} and L{fdesc.setBlocking}.
c C sj t �� \}}| �t j|� | �t j|� | �t�|tj�t j@ � t� |� | �
t�|tj�t j@ � dS )zR
L{fdesc.setNonBlocking} sets a file description to non-blocking.
N)�os�pipe�
addCleanup�close�assertFalse�fcntl�F_GETFL�
O_NONBLOCKr �setNonBlocking�
assertTrue��self�r�w� r �9/usr/lib/python3/dist-packages/twisted/test/test_fdesc.py�test_setNonBlocking s
z$NonBlockingTests.test_setNonBlockingc C sZ t �� \}}| �t j|� | �t j|� t�|� t�|� | �t�|tj �t j
@ � dS )zK
L{fdesc.setBlocking} sets a file description to blocking.
N)r r r r r r ZsetBlockingr
r r r
r r r r �test_setBlocking( s
z!NonBlockingTests.test_setBlockingN)�__name__�
__module__�__qualname__�__doc__r r r r r r r s r c @ sp e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� ZdS )�ReadWriteTestsz<
Tests for L{fdesc.readFromFD}, L{fdesc.writeToFD}.
c C s, t �� \| _| _t�| j� t�| j� dS )zG
Create a non-blocking pipe that can be used in tests.
N)r r r r r r �r r r r �setUp: s zReadWriteTests.setUpc C sP zt �| j� W n tk
r$ Y nX zt �| j� W n tk
rJ Y nX dS )z
Close pipes.
N)r r r �OSErrorr r r r r �tearDownC s zReadWriteTests.tearDownc C s t �| j|�S )z)
Write data to the pipe.
)r Z writeToFDr )r �dr r r �writeQ s zReadWriteTests.writec C s6 g }t �| j|j�}|dkr.|r(|d S dS n|S dS )z*
Read data from the pipe.
Nr � )r �
readFromFDr �append)r �l�resr r r �readX s zReadWriteTests.readc C sH | � d�}| �|dk� | �� }| �t|�|� | �dd|� |� dS )z�
Test that the number of bytes L{fdesc.writeToFD} reports as written
with its return value are seen by L{fdesc.readFromFD}.
s hellor N)r"