File: //usr/lib/python3/dist-packages/twisted/test/__pycache__/test_cooperator.cpython-38.pyc
U
W[�S � @ s� d Z ddlmZmZ ddlmZmZmZ ddlm Z G dd� de
�ZG dd� de
�ZG d d
� d
e j
�ZG dd� de�ZG d
d� de j
�ZG dd� de j
�ZdS )z_
This module contains tests for L{twisted.internet.task.Cooperator} and
related functionality.
� )�division�absolute_import)�reactor�defer�task)�unittestc @ s e Zd ZdZdd� Zdd� ZdS )�FakeDelayedCallzA
Fake delayed call which lets us simulate the scheduler.
c C s || _ d| _dS )z+
A function to run, later.
FN)�func� cancelled��selfr � r
�>/usr/lib/python3/dist-packages/twisted/test/test_cooperator.py�__init__ s zFakeDelayedCall.__init__c C s
d| _ dS )z.
Don't run my function later.
TN)r
�r r
r
r �cancel s zFakeDelayedCall.cancelN)�__name__�
__module__�__qualname__�__doc__r r r
r
r
r r s r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �
FakeSchedulerz/
A fake scheduler for testing against.
c C s
g | _ dS )zD
Create a fake scheduler with a list of work to do.
N)�workr r
r
r r ( s zFakeScheduler.__init__c C s t |�}| j�|� |S )z;
Schedule a unit of work to be done later.
)r r �append)r Zthunk�unitr
r
r �__call__/ s zFakeScheduler.__call__c C s* | j g }| _ |D ]}|js|�� qdS )zL
Do all of the work that is currently available to be done.
N)r r
r )r r r r
r
r �pump8 s zFakeScheduler.pumpN)r r 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� Zdd� Zdd� Zd d!� Zd"S )#�CooperatorTests�donec C s |� tj� | jS �N)�trapr ZSchedulerStopped�RESULT)r �errr
r
r �ebIterF s zCooperatorTests.ebIterc C s | � � d S r )�fail)r �ignr
r
r �cbIterK s zCooperatorTests.cbIterc s"