
    afb                     `    d dl Z d dlmZ d dlZd dlmZ d dlmZ  G d dej	                  Z
dS )    N)Mock)unittest)choosereactorc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	ChooseReactorTestsc                     t          t          j                  r#|                     t          j        |           dS fd}t	          t          j        |           dS )zh
        Patch ``name`` so that Twisted will grab a fake reactor instead of
        a real one.
        c                  <    t          t          j                    d S N)delattrtwistedinternet)names   ]/var/www/html/env/lib/python3.11/site-packages/autobahn/twisted/test/test_tx_choosereactor.py_cleanupz2ChooseReactorTests.patch_reactor.<locals>._cleanup.   s    ($/////    N)hasattrr   r   patchsetattr)selfr   new_reactorr   s    `  r   patch_reactorz ChooseReactorTests.patch_reactor&   sm    
 7#T** 	9JJw'{;;;;;0 0 0 0 0G$dK88888r   c                     t          t          j                  t          t          j                  }|d= fd}|                     |           |t          _        dS )zg
        Patch ``sys.modules`` so that Twisted believes there is no
        installed reactor.
        ztwisted.internet.reactorc                        t           _        d S r
   )sysmodules)old_moduless   r   r   z2ChooseReactorTests.patch_modules.<locals>._cleanup<   s    %CKKKr   N)dictr   r   
addCleanup)r   new_modulesr   r   s      @r   patch_modulesz ChooseReactorTests.patch_modules2   sd    
 3;''3;''23	& 	& 	& 	& 	& 	!!!!r   c                    t                      }|                     d|           |                     t          dd           |                                  t          j                     |j                                         dS )z
        ``install_optimal_reactor`` will use the default reactor if it is
        unable to detect the platform it is running on.
        selectreactorplatformunknownN	r   r   r   r   r    r   install_optimal_reactorinstallassert_called_once_withr   reactor_mocks     r   test_unknownzChooseReactorTests.test_unknownB   sw    
 vv?L999

3
I... 	-///4466666r   c                    t                      }|                     d|           |                     t          dd           |                                  t          j                     |j                                         dS )zb
        ``install_optimal_reactor`` will install KQueueReactor on
        Darwin (OS X).
        	kqreactorr#   darwinNr%   r)   s     r   test_maczChooseReactorTests.test_macQ   sw    
 vv;555

3
H--- 	-///4466666r   c                 N   t           j        dk    rt          j        d          t	                      }|                     d|           |                     t           dd           |                                  t          j	                     |j
                                         dS )zR
        ``install_optimal_reactor`` will install IOCPReactor on Windows.
        win32zunit test requires Windowsiocpreactorr#   N)r   r#   r   SkipTestr   r   r   r    r   r&   r'   r(   r)   s     r   test_winzChooseReactorTests.test_win`   s     <7""#$@AAAvv=,777

3
G,,, 	-///4466666r   c                    t                      }|                     d|           |                     t          dd           |                                  t          j                     |j                                         dS )zP
        ``install_optimal_reactor`` will install KQueueReactor on BSD.
        r-   r#   	freebsd11Nr%   r)   s     r   test_bsdzChooseReactorTests.test_bsdq   sw     vv;555

3
K000 	-///4466666r   c                    t                      }|                     d|           |                     t          dd           |                                  t          j                     |j                                         dS )zQ
        ``install_optimal_reactor`` will install EPollReactor on Linux.
        epollreactorr#   linuxNr%   r)   s     r   
test_linuxzChooseReactorTests.test_linux   sw     vv><888

3
G,,, 	-///4466666r   N)
__name__
__module____qualname__r   r    r+   r/   r4   r7   r;    r   r   r   r   $   s}        
9 
9 
9" " " 7 7 77 7 77 7 7"7 7 77 7 7 7 7r   r   )r   unittest.mockr   twisted.internetr   twisted.trialr   autobahn.twistedr   TestCaser   r?   r   r   <module>rE      s   6 


           " " " " " " * * * * * *g7 g7 g7 g7 g7* g7 g7 g7 g7 g7r   