ó
    ×›‘h
  ã                   óÎ   • S r SSKrSSKrSSKJr   SSKrSrSSKJ	r	  SSK
JrJr   " S S	5      r\	R                  " \5         " S
 S\5      r " S S\5      rg! \ a    Sr NKf = f)z)
Tests for L{twisted.python.threadable}.
é    N)ÚskipIfFT)Ú
threadable)ÚFailTestÚSynchronousTestCasec                   ó(   • \ rS rSrS/rSrSrS rSrg)Ú
TestObjecté   ÚaMethodéÿÿÿÿé   c                 óô   • [        S5       Hi  nU R                  U R                  sU l        U l        U R                  U R                  -   U l        U R                  S:X  a  MV   SU R                  4-  5       e   g )Né
   r   zz == %d, not 0 as expected)ÚrangeÚyÚxÚz)ÚselfÚis     Ú`C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/test/test_threadable.pyr
   ÚTestObject.aMethod   s[   € Ü�r–ˆAØ!ŸV™V T§V¡VˆNˆDŒF�D”FØ—V‘V˜dŸf™f‘_ˆDŒFØ—6‘6˜Q•;ÐHÐ <ÀÇÁ¸yÑ HÓH�;ò ó    )r   r   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úsynchronizedr   r   r
   Ú__static_attributes__© r   r   r   r      s   † Ø�;€Là
€AØ	€AõIr   r   c                   ób   • \ rS rSrS rS r\" \S5      S 5       r\" \S5      S 5       r	S r
Srg	)
ÚSynchronizationTestsé(   c                 ó–   • U R                  [        R                  [        R                  " 5       5        [        R                  " S5        g)zÌ
Reduce the CPython check interval so that thread switches happen much
more often, hopefully exercising more possible race conditions.  Also,
delay actual test startup until the reactor has been started.
gH¯¼šò×z>N)Ú
addCleanupÚsysÚsetswitchintervalÚgetswitchinterval©r   s    r   ÚsetUpÚSynchronizationTests.setUp)   s/   € ð 	�‰œ×-Ñ-¬s×/DÒ/DÓ/FÔGÜ×Ò˜iÕ(r   c                 óX   • U R                  S[        R                  R                  5        g)zS
The name of a synchronized method is inaffected by the synchronization
decorator.
r
   N)ÚassertEqualr   r
   r   r'   s    r   Útest_synchronizedNameÚ*SynchronizationTests.test_synchronizedName2   s    € ð
 	×Ñ˜¤J×$6Ñ$6×$?Ñ$?Õ@r   ú!Platform does not support threadsc                 ó  ^• [         R                  " 5         / m[        R                  " U4S jS9nUR	                  5         UR                  5         U R                  TS   S5        U R                  [         R                  " 5       S5        g)z€
L{threadable.isInIOThread} returns C{True} if and only if it is called
in the same thread as L{threadable.registerAsIOThread}.
c                  óL   >• T R                  [        R                  " 5       5      $ ©N)Úappendr   ÚisInIOThread)ÚforeignResults   €r   Ú<lambda>Ú8SynchronizationTests.test_isInIOThread.<locals>.<lambda>B   s   ø€ ˜=×/Ñ/´
×0GÒ0GÓ0IÔJr   ©Útargetr   z#Non-IO thread reported as IO threadz#IO thread reported as not IO threadN)	r   ÚregisterAsIOThreadÚ	threadingÚThreadÚstartÚjoinÚassertFalseÚ
assertTruer3   )r   Útr4   s     @r   Útest_isInIOThreadÚ&SynchronizationTests.test_isInIOThread9   sn   ø€ ô 	×%Ò%Ô'ØˆÜ×ÒÜJñ
ˆð 	
�‰Œ	Ø	�‰ŒØ×Ñ˜ qÑ)Ð+PÔQØ�‰Ü×#Ò#Ó%Ð'Lõ	
r   c                 ó  ^^• [        5       m/ mUU4S jn/ n[        S5       H8  n[        R                  " US9nUR	                  U5        UR                  5         M:     U H  nUR                  5         M     T(       a  [        T5      eg )Nc                  ó®   >•  [        S5       H  n TR                  5         M     g ! [         a$  nTR                  [	        U5      5         S nAg S nAff = f©Niè  )r   r
   ÚAssertionErrorr2   Ústr)r   ÚeÚerrorsÚos     €€r   ÚcallMethodLotsÚHSynchronizationTests.testThreadedSynchronization.<locals>.callMethodLotsQ   sB   ø€ ð&Ü˜tž�AØ—I‘I–Kò %øä!ó &Ø—‘œc !›f×%Ñ%ûð&ús   ƒ"& ¦
A°AÁAé   r7   )r   r   r:   r;   r2   r<   r=   r   )r   rK   Úthreadsr   r@   rI   rJ   s        @@r   ÚtestThreadedSynchronizationÚ0SynchronizationTests.testThreadedSynchronizationK   sx   ù€ ä‹Lˆàˆö	&ð ˆÜ�q–ˆAÜ× Ò ¨Ñ7ˆAØ�N‰N˜1ÔØ�G‰GŽIñ ó
 ˆAØ�F‰FŽHñ ö Ü˜6Ó"Ð"ð r   c                 ó\   • [        5       n[        S5       H  nUR                  5         M     g rE   )r   r   r
   )r   rJ   r   s      r   ÚtestUnthreadedSynchronizationÚ2SynchronizationTests.testUnthreadedSynchronizationd   s    € Ü‹LˆÜ�t–ˆAØ�I‰IŽKò r   r   N)r   r   r   r   r(   r,   r   ÚthreadingSkiprA   rO   rR   r   r   r   r   r    r    (   sL   † ò)òAñ ˆMÐ>Ó?ñ
ó @ð
ñ" ˆMÐ>Ó?ñ#ó @ð#õ0r   r    c                   ó8   • \ rS rSr\" \S5      S 5       rS rSrg)ÚSerializationTestséj   r.   c                 ó¾   • [         R                  " 5       n[        U5      n[        R                  " U5      n[        R
                  " U5      nU R                  XB5        g r1   )r   ÚXLockÚtypeÚpickleÚdumpsÚloadsÚassertIsInstance)r   ÚlockÚlockTypeÚ
lockPickleÚnewLocks        r   ÚtestPicklingÚSerializationTests.testPicklingk   sC   € ä×ÒÓ!ˆÜ˜“:ˆÜ—\’\ $Ó'ˆ
Ü—,’,˜zÓ*ˆØ×Ñ˜gÕ0r   c                 óŽ   • Sn[         R                  " U5      n[         R                  " US5      n[         R                  " U5        g )Ns6   ctwisted.python.threadable
unpickle_lock
p0
(tp1
Rp2
.é   )r[   r]   r\   )r   ra   r_   Ú	newPickles       r   ÚtestUnpicklingÚ!SerializationTests.testUnpicklings   s1   € ØSˆ
Ü�|Š|˜JÓ'ˆÜ—L’L  qÓ)ˆ	Ü�Š�YÕr   r   N)	r   r   r   r   r   rT   rc   rh   r   r   r   r   rV   rV   j   s"   † ÙˆMÐ>Ó?ñ1ó @ð1õ r   rV   )Ú__doc__r[   r$   Úunittestr   r:   rT   ÚImportErrorÚtwisted.pythonr   Útwisted.trial.unittestr   r   r   Úsynchronizer    rV   r   r   r   Ú<module>rp      sx   ðñó
 Û 
Ý ðÛð €Må %ß @÷
Iñ 
Ið × Ò �zÔ "ô?Ð.ô ?ôD Ð,õ  øðw ó Ø‚Mðús   ’A ÁA$Á#A$