File: //usr/lib/python3/dist-packages/twisted/internet/test/__pycache__/modulehelpers.cpython-38.pyc
U
W[� � @ s\ d Z ddlmZmZ ddgZddlZddlZddlm Z G dd� de �Z
G dd� de
�ZdS ) z/
Testing helpers related to the module system.
� )�division�absolute_import� NoReactor�AlternateReactorN)�SetAsideModulec @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) r zc
Context manager that uninstalls the reactor, if any, and then restores it
afterwards.
c C s t �| d� d S �Nztwisted.internet.reactor)r �__init__��self� r �E/usr/lib/python3/dist-packages/twisted/internet/test/modulehelpers.pyr s zNoReactor.__init__c C s t �| � d| jkrtj`d S r )r � __enter__�modules�twisted�internet�reactorr r r r r
s
zNoReactor.__enter__c C sT t �| |||� | j�dd �}|d k r0|tj_n z
tj`W n tk
rN Y nX d S r )r �__exit__r �getr r r �AttributeError)r
ZexcTypeZexcValue� tracebackr r r r r # s
zNoReactor.__exit__N)�__name__�
__module__�__qualname__�__doc__r r
r r r r r r s c @ s e Zd ZdZdd� Zdd� ZdS )r zd
A context manager which temporarily installs a different object as the
global reactor.
c C s t �| � || _dS )zN
@param reactor: Any object to install as the global reactor.
N)r r � alternate)r
r r r r r 8 s
zAlternateReactor.__init__c C s$ t �| � | jtj_| jtjd<