Ë
    ojþ  ã                  ó  — 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e«      Z G d„ de«      Z G d„ de«      Zy)z(
Tests for L{twisted.internet.default}.
é    )ÚannotationsN)ÚCallable)Údefault)Ú_getInstallFunctionÚinstall)ÚIReactorCore)Ú	NoReactor)ÚrequireModule)ÚPlatform)ÚSynchronousTestCaseÚposixÚotherÚlinux2ÚntÚwin32Údarwinc                  ó(   — e Zd ZdZdd„Zdd„Zdd„Zy)ÚPollReactorTestszŽ
    Tests for the cases of L{twisted.internet.default._getInstallFunction}
    in which it picks the poll(2) or epoll(7)-based reactors.
    c                ó–   — t        t        d«      r| j                  |j                  d«       y| j                  |j                  d«       y)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   s     úD/usr/lib/python3/dist-packages/twisted/internet/test/test_default.pyÚassertIsPollzPollReactorTests.assertIsPoll!   s<   € ô
 ”6˜6Ô"Ø×Ñ˜W×/Ñ/Ð1OÕPà×Ñ˜W×/Ñ/Ð1QÕRó    c                óD   — t        t        «      }| j                  |«       y)z–
        L{_getInstallFunction} chooses the poll reactor on arbitrary Unix
        platforms, falling back to select(2) if it is unavailable.
        N)r   Úunixr   r   s     r   Ú	test_unixzPollReactorTests.test_unix+   s   € ô
 &¤dÓ+ˆØ×Ñ˜'Õ"r    c                ó”   — t        t        «      }t        d«      €| j                  |«       y| j	                  |j
                  d«       y)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   s     r   Ú
test_linuxzPollReactorTests.test_linux3   s?   € ô
 &¤eÓ,ˆÜÐ8Ó9ÐAØ×Ñ˜gÕ&à×Ñ˜W×/Ñ/Ð1PÕQr    N)r   zCallable[..., object]ÚreturnÚNone©r'   r(   )Ú__name__r   Ú__qualname__Ú__doc__r   r#   r&   © r    r   r   r      s   „ ñó
Só#ô	Rr    r   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚSelectReactorTestszƒ
    Tests for the cases of L{twisted.internet.default._getInstallFunction}
    in which it picks the select(2)-based reactor.
    c                óZ   — t        t        «      }| j                  |j                  d«       y)zM
        L{_getInstallFunction} chooses the select reactor on macOS.
        r   N)r   Úosxr   r   r   s     r   Útest_osxzSelectReactorTests.test_osxE   s%   € ô &¤cÓ*ˆØ×Ñ˜×+Ñ+Ð-MÕNr    c                óZ   — t        t        «      }| j                  |j                  d«       y)zO
        L{_getInstallFunction} chooses the select reactor on Windows.
        r   N)r   Úwindowsr   r   r   s     r   Útest_windowszSelectReactorTests.test_windowsL   s%   € ô &¤gÓ.ˆØ×Ñ˜×+Ñ+Ð-MÕNr    Nr)   )r*   r   r+   r,   r2   r5   r-   r    r   r/   r/   ?   s   „ ñó
OôOr    r/   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚInstallationTestsz7
    Tests for actual installation of the reactor.
    c                ó–   — t        «       5  t        «        | j                  dt        j                  «       ddd«       y# 1 sw Y   yxY w)z0
        L{install} installs a reactor.
        ztwisted.internet.reactorN)r	   r   ÚassertInÚsysÚmodules)r   s    r   Útest_installzInstallationTests.test_installY   s:   € ô ‹[ñ 	CÜŒIØ�M‰MÐ4´c·k±kÔB÷	C÷ 	Cñ 	Cús	   ‹+?¿Ac                óü   ‡— g Šdˆfd„}| j                  t        d|«       t        «       5  ddlm} | j                  t        j                  |«      «       | j                  ‰dg«       ddd«       y# 1 sw Y   yxY w)zr
        Importing L{twisted.internet.reactor} installs the default reactor if
        none is installed.
        c                 ó:   •— ‰ j                  d«       t        «       S )NT)Úappendr   )Ú	installeds   €r   Ú	installerz1InstallationTests.test_reactor.<locals>.installerh   s   ø€ Ø×Ñ˜TÔ"Ü“9Ðr    r   r   )ÚreactorTN)r'   Úobject)	Úpatchr   r	   Útwisted.internetrB   Ú
assertTruer   Ú
providedByr   )r   rA   rB   r@   s      @r   Útest_reactorzInstallationTests.test_reactora   sg   ø€ ð
 !#ˆ	õ	ð 	�
‰
”7˜I yÔ1ä‹[ñ 	0Ý0à�O‰OœL×3Ñ3°GÓ<Ô=Ø×Ñ˜Y¨¨Ô/÷		0÷ 	0ñ 	0ús   «>A2Á2A;Nr)   )r*   r   r+   r,   r<   rH   r-   r    r   r7   r7   T   s   „ ñóCô0r    r7   )r,   Ú
__future__r   r   r:   Útypingr   rE   r   Útwisted.internet.defaultr   r   Útwisted.internet.interfacesr   Útwisted.internet.test.test_mainr	   Útwisted.python.reflectr
   Útwisted.python.runtimer   Útwisted.trial.unittestr   r"   r%   r4   r1   r   r/   r7   r-   r    r   ú<module>rQ      s‰   ðñõ #ã Û 
Ý å $ß AÝ 4Ý 5Ý 0Ý +Ý 6á�˜Ó!€Ù�˜(Ó#€Ù
�4˜Ó
!€Ùˆw˜Ó!€ô!RÐ*ô !RôHOÐ,ô Oô*0Ð+õ 0r    