
    Yf                    >   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dS )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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                    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   s     T/var/www/html/env/lib/python3.11/site-packages/twisted/internet/test/test_default.pyassertIsPollzPollReactorTests.assertIsPoll!   sW    
 66"" 	SW/1OPPPPPW/1QRRRRR    c                X    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   s     r!   	test_unixzPollReactorTests.test_unix+   s+    
 &d++'"""""r#   c                    t          t                    }t          d          |                     |           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   s     r!   
test_linuxzPollReactorTests.test_linux3   sZ    
 &e,,899Ag&&&&&W/1PQQQQQr#   N)r   r   r   r   r   r   )__name__r   __qualname____doc__r"   r&   r)    r#   r!   r   r      sd         
S S S S# # # #	R 	R 	R 	R 	R 	Rr#   r   c                  "    e Zd ZdZddZ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                d    t          t                    }|                     |j        d           dS )zM
        L{_getInstallFunction} chooses the select reactor on macOS.
        r   N)r   osxr   r   r   s     r!   test_osxzSelectReactorTests.test_osxE   s1     &c**+-MNNNNNr#   c                d    t          t                    }|                     |j        d           dS )zO
        L{_getInstallFunction} chooses the select reactor on Windows.
        r   N)r   windowsr   r   r   s     r!   test_windowszSelectReactorTests.test_windowsL   s1     &g..+-MNNNNNr#   Nr*   )r+   r   r,   r-   r3   r6   r.   r#   r!   r0   r0   ?   sP         
O O O OO O O O O Or#   r0   c                  "    e Zd ZdZddZddZdS )InstallationTestsz7
    Tests for actual installation of the reactor.
    r   r   c                    t                      5  t                       |                     dt          j                   ddd           dS # 1 swxY w Y   dS )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 	CIIIMM4ckBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   /AAAc                &   g d	fd}|                      t          d|           t                      5  ddlm} |                     t          j        |                     |                     dg           ddd           dS # 1 swxY w Y   dS )
zr
        Importing L{twisted.internet.reactor} installs the default reactor if
        none is installed.
        r   objectc                 J                          d           t                      S )NT)appendr   )	installeds   r!   	installerz1InstallationTests.test_reactor.<locals>.installerh   s!    T"""99r#   r   r   )reactorTN)r   r?   )	patchr   r	   twisted.internetrD   
assertTruer   
providedByr   )r    rC   rD   rB   s      @r!   test_reactorzInstallationTests.test_reactora   s    
 !#		 	 	 	 	 	 	

7Iy111[[ 	0 	0000000OOL3G<<===Y///		0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ABB
B
Nr*   )r+   r   r,   r-   r=   rI   r.   r#   r!   r8   r8   T   sJ         C C C C0 0 0 0 0 0r#   r8   )r-   
__future__r   r   r;   typingr   rF   r   twisted.internet.defaultr   r   twisted.internet.interfacesr   twisted.internet.test.test_mainr	   twisted.python.reflectr
   twisted.python.runtimer   twisted.trial.unittestr   r%   r(   r5   r2   r   r0   r8   r.   r#   r!   <module>rR      s    # " " " " "  



       $ $ $ $ $ $ A A A A A A A A 4 4 4 4 4 4 5 5 5 5 5 5 0 0 0 0 0 0 + + + + + + 6 6 6 6 6 6x!!(##
(4
!
!hw!!!R !R !R !R !R* !R !R !RHO O O O O, O O O*0 0 0 0 0+ 0 0 0 0 0r#   