
    Yf                        d Z ddlmZ ddlZddlmZ ddlmZ 	 ddlm	Z	m
Z
 dZn# e$ r dZY nw xY wddZddZ G d de          ZdS )z.
Tests for L{twisted.internet.kqueuereactor}.
    )annotationsN)implementer)TestCase)KQueueReactor_IKQueuezKQueue not available.argsobjectkwargsreturnNonec                     dS )z
    Do nothing.
    N )r   r
   s     Z/var/www/html/env/lib/python3.11/site-packages/twisted/internet/test/test_kqueuereactor.py_fakeKEventr      s          
testKQueue
testKEventr   c                n     t          t                     G  fdd                      } |            S )a  
    Create a fake that implements L{_IKQueue}.

    @param testKQueue: Something that acts like L{select.kqueue}.
    @param testKEvent: Something that acts like L{select.kevent}.
    @return: An implementation of L{_IKQueue} that includes C{testKQueue} and
        C{testKEvent}.
    c                      e Zd ZZ ZdS )"makeFakeKQueue.<locals>.FakeKQueueN)__name__
__module____qualname__kqueuekevent)r   r   s   r   
FakeKQueuer   '   s        r   r   )r   r   )r   r   r   s   `` r   makeFakeKQueuer      s^                :<<r   c                      e Zd ZdZeZddZdS )KQueueTestsz
    These are tests for L{KQueueReactor}'s implementation, not its real world
    behaviour. For that, look at
    L{twisted.internet.test.reactormixins.ReactorBuilder}.
    r   r   c                     G d d          }t          t          |t                              }|                    d           dS )zV
        L{KQueueReactor} handles L{errno.EINTR} in C{doKEvent} by returning.
        c                      e Zd ZdZd	dZdS )
*KQueueTests.test_EINTR.<locals>.FakeKQueuez
            A fake KQueue that raises L{errno.EINTR} when C{control} is called,
            like a real KQueue would if it was interrupted.
            r   r	   r
   r   r   c                6    t          t          j        d          )NInterrupted)OSErrorerrnoEINTR)selfr   r
   s      r   controlz2KQueueTests.test_EINTR.<locals>.FakeKQueue.controlC   s    ek=999r   Nr   r	   r
   r	   r   r   )r   r   r   __doc__r)   r   r   r   r   r"   =   s2         
: : : : : :r   r   r   N)r   r   r   doKEvent)r(   r   reactors      r   
test_EINTRzKQueueTests.test_EINTR8   s_    
	: 	: 	: 	: 	: 	: 	: 	:  z; G GHH 	r   N)r   r   )r   r   r   r+   
kqueueSkipskipr.   r   r   r   r   r   /   s9          D     r   r   r*   )r   r	   r   r	   r   r   )r+   
__future__r   r&   zope.interfacer   twisted.trial.unittestr   twisted.internet.kqreactorr   r   r/   ImportErrorr   r   r   r   r   r   <module>r6      s     # " " " " "  & & & & & & + + + + + +)BBBBBBBBJJ ) ) )(JJJ)      $    (     s   
% //