o
    Òó·iþ  ã                   @  sà   d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ eddƒZeddƒZeddƒZeddƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )z(
Tests for L{twisted.internet.default}.
é    )ÚannotationsN)ÚCallable)Údefault)Ú_getInstallFunctionÚinstall)ÚIReactorCore)Ú	NoReactor)ÚrequireModule)ÚPlatform)ÚSynchronousTestCaseÚposixÚotherZlinux2ÚntÚwin32Údarwinc                   @  s.   e Zd ZdZddd„Zddd	„Zdd
d„ZdS )ÚPollReactorTestszŽ
    Tests for the cases of L{twisted.internet.default._getInstallFunction}
    in which it picks the poll(2) or epoll(7)-based reactors.
    r   úCallable[..., object]ÚreturnÚNonec                 C  s.   t tdƒr|  |jd¡ dS |  |jd¡ dS )zz
        Assert the given function will install the poll() reactor, or select()
        if poll() is unavailable.
        Úpollztwisted.internet.pollreactorútwisted.internet.selectreactorN)ÚhasattrÚselectÚassertEqualÚ
__module__©Úselfr   © r   úhC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/internet/test/test_default.pyÚassertIsPoll!   s   
zPollReactorTests.assertIsPollc                 C  s   t tƒ}|  |¡ dS )z–
        L{_getInstallFunction} chooses the poll reactor on arbitrary Unix
        platforms, falling back to select(2) if it is unavailable.
        N)r   Úunixr   r   r   r   r   Ú	test_unix+   s   zPollReactorTests.test_unixc                 C  s4   t tƒ}tdƒdu r|  |¡ dS |  |jd¡ dS )zu
        L{_getInstallFunction} chooses the epoll reactor on Linux, or poll if
        epoll is unavailable.
        ztwisted.internet.epollreactorN)r   Úlinuxr	   r   r   r   r   r   r   r   Ú
test_linux3   s   zPollReactorTests.test_linuxN)r   r   r   r   ©r   r   )Ú__name__r   Ú__qualname__Ú__doc__r   r!   r#   r   r   r   r   r      s
    


r   c                   @  ó$   e Zd ZdZd	dd„Zd	dd„ZdS )
ÚSelectReactorTestszƒ
    Tests for the cases of L{twisted.internet.default._getInstallFunction}
    in which it picks the select(2)-based reactor.
    r   r   c                 C  ó   t tƒ}|  |jd¡ dS )zM
        L{_getInstallFunction} chooses the select reactor on macOS.
        r   N)r   Úosxr   r   r   r   r   r   Útest_osxE   ó   zSelectReactorTests.test_osxc                 C  r*   )zO
        L{_getInstallFunction} chooses the select reactor on Windows.
        r   N)r   Úwindowsr   r   r   r   r   r   Útest_windowsL   r-   zSelectReactorTests.test_windowsNr$   )r%   r   r&   r'   r,   r/   r   r   r   r   r)   ?   s    
r)   c                   @  r(   )
ÚInstallationTestsz7
    Tests for actual installation of the reactor.
    r   r   c                 C  s@   t ƒ � tƒ  |  dtj¡ W d  ƒ dS 1 sw   Y  dS )z0
        L{install} installs a reactor.
        ztwisted.internet.reactorN)r   r   ZassertInÚsysÚmodules)r   r   r   r   Útest_installY   s   "þzInstallationTests.test_installc                   sv   g ‰ d
‡ fdd„}|   td|¡ tƒ � ddlm} |  t |¡¡ |  ˆ dg¡ W d	  ƒ d	S 1 s4w   Y  d	S )zr
        Importing L{twisted.internet.reactor} installs the default reactor if
        none is installed.
        r   Úobjectc                     s   ˆ   d¡ tƒ S )NT)Úappendr   r   ©Ú	installedr   r   Ú	installerh   s   
z1InstallationTests.test_reactor.<locals>.installerr   r   )ÚreactorTN)r   r4   )	Úpatchr   r   Útwisted.internetr9   Ú
assertTruer   Z
providedByr   )r   r8   r9   r   r6   r   Útest_reactora   s   "üzInstallationTests.test_reactorNr$   )r%   r   r&   r'   r3   r=   r   r   r   r   r0   T   s    
r0   )r'   Ú
__future__r   r   r1   Útypingr   r;   r   Ztwisted.internet.defaultr   r   Ztwisted.internet.interfacesr   Ztwisted.internet.test.test_mainr   Ztwisted.python.reflectr	   Ztwisted.python.runtimer
   Ztwisted.trial.unittestr   r    r"   r.   r+   r   r)   r0   r   r   r   r   Ú<module>   s&   



$