ó
    ×›‘hh  ã                   óô   • S r SSKrSSKJrJr  SSKJrJr  SSKJ	r	J
r
Jr  S r " S S5      r " S	 S
\R                  5      r " S S5      r " S S\\R                  5      r " S S\\R$                  5      rg)zG
Test the interaction between trial and errors logged during test run.
é    N)ÚreactorÚtask)ÚfailureÚlog)Ú	_synctestÚreporterÚunittestc                  ó^   •  SS-    W $ ! [          a    [        R                  " 5       n  U $ f = f)z"
Return a new, realistic failure.
é   r   )ÚZeroDivisionErrorr   ÚFailure)Úfs    Ú_C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/trial/test/test_log.pyÚmakeFailurer      s7   € ðØ	ˆAŠð €Høô ó Ü�OŠOÓ‰Ø€Hðús   ‚	 ‰,«,c                   ó„   • \ rS rSrSr " S S5      r " S S\\R                  5      r " S S\\R                  5      r
S	rg
)ÚMaské   z7
Hide C{MockTest}s from Trial's automatic test finder.
c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚMask.FailureLoggingMixiné   c                 ó   • g)z
Don't log any errors.
N© ©Úselfs    r   Útest_silentÚ$Mask.FailureLoggingMixin.test_silent    s   � ó    c                 ó@   • [         R                  " [        5       5        g)z
Log a single error.
N©r   Úerrr   r   s    r   Útest_singleÚ$Mask.FailureLoggingMixin.test_single%   s   € ô �GŠG”K“MÕ"r   c                 ó|   • [         R                  " [        5       5        [         R                  " [        5       5        g)z
Log two errors.
Nr   r   s    r   Útest_doubleÚ$Mask.FailureLoggingMixin.test_double+   s    € ô �GŠG”K“MÔ"Ü�GŠG”K“MÕ"r   c                 óJ   • [         R                  " [        5       5        SS-     g)z 
Log a single error, then fail.
r   Nr   r   s    r   Útest_singleThenFailÚ,Mask.FailureLoggingMixin.test_singleThenFail2   s   € ô �GŠG”K“MÔ"Ø�‹Hr   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r!   r$   r'   Ú__static_attributes__r   r   r   ÚFailureLoggingMixinr      s   † ò	ò
	#ò	#õ	r   r.   c                   ó   • \ rS rSrSrg)ÚMask.SynchronousFailureLoggingé9   r   N)r)   r*   r+   r,   r-   r   r   r   ÚSynchronousFailureLoggingr0   9   s   † Úr   r2   c                   ó   • \ rS rSrS rSrg)ÚMask.AsynchronousFailureLoggingé<   c                 ó<   • [         R                  " [        SS 5      $ )z+
Log an error in an asynchronous callback.
r   c                  ó>   • [         R                  " [        5       5      $ ©Nr   r   r   r   Ú<lambda>ÚAMask.AsynchronousFailureLogging.test_inCallback.<locals>.<lambda>A   s   € ´s·w²w¼{»}Ô7Mr   )r   Ú
deferLaterr   r   s    r   Útest_inCallbackÚ/Mask.AsynchronousFailureLogging.test_inCallback=   s   € ô —?’?¤7¨AÑ/MÓNÐNr   r   N)r)   r*   r+   r,   r<   r-   r   r   r   ÚAsynchronousFailureLoggingr4   <   s   † õ	Or   r>   r   N)r)   r*   r+   r,   Ú__doc__r.   r	   ÚSynchronousTestCaser2   ÚTestCaser>   r-   r   r   r   r   r      s=   † ñ÷ñ ô4Ð$7¸×9UÑ9Uô ôOÐ%8¸(×:KÑ:K÷ Or   r   c                   óH   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)ÚObserverTestséD   zs
Tests for L{_synctest._LogObserver}, a helper for the implementation of
L{SynchronousTestCase.flushLoggedErrors}.
c                 ól   • [         R                  " 5       U l        [        R                  " 5       U l        g r8   )r   Ú
TestResultÚresultr   Ú_LogObserverÚobserverr   s    r   ÚsetUpÚObserverTests.setUpJ   s"   € Ü×)Ò)Ó+ˆŒÜ!×.Ò.Ó0ˆ�r   c                 ó¾   • U R                   R                  S[        R                  " 5       SSS.5        U R                  U R                   R	                  5       / 5        g)zG
Test that a standard log message doesn't go anywhere near the result.
)zsome messager   Ú-)ÚmessageÚtimeÚisErrorÚsystemN)rI   ÚgotEventrO   ÚassertEqualÚ	getErrorsr   s    r   Útest_msgÚObserverTests.test_msgN   sL   € ð 	�‰×Ñà,ÜŸ	š	›ØØñ	ô	
ð 	×Ñ˜Ÿ™×0Ñ0Ó2°BÕ7r   c           	      óØ   • [        5       nU R                  R                  S[        R                  " 5       SSUSS.5        U R	                  U R                  R                  5       U/5        g)z6
Test that an observed error gets added to the result
r   r   rM   N©rN   rO   rP   rQ   r   Úwhy)r   rI   rR   rO   rS   rT   ©r   r   s     r   Ú
test_errorÚObserverTests.test_error\   s[   € ô ‹MˆØ�‰×ÑàÜŸ	š	›ØØØØñô		
ð 	×Ñ˜Ÿ™×0Ñ0Ó2°Q°CÕ8r   c                 ó0  • U R                  5         U R                  R                  5       nU R                  U R                  R	                  5       / 5        U R                  [        U5      S5        U R                  US   R                  [        5      5        g)zC
Check that flushing the observer with no args removes all errors.
r   r   N)	r[   rI   ÚflushErrorsrS   rT   ÚlenÚ
assertTrueÚcheckr   )r   Úflusheds     r   Ú
test_flushÚObserverTests.test_flushm   sm   € ð 	�‰ÔØ—-‘-×+Ñ+Ó-ˆØ×Ñ˜Ÿ™×0Ñ0Ó2°BÔ7Ø×Ñœ˜W› qÔ)Ø�‰˜ ™
×(Ñ(Ô):Ó;Õ<r   c                 ó@   • [         R                  " [        S5      5      $ )Nz
test error)r   r   ÚRuntimeErrorr   s    r   Ú_makeRuntimeFailureÚ!ObserverTests._makeRuntimeFailurew   s   € Ü�Šœ|¨LÓ9Ó:Ð:r   c                 óÐ  • U R                  5         U R                  5       nU R                  R                  [	        S[
        R
                  " 5       SSUSS95        U R                  R                  [        5      nU R                  U R                  R                  5       U/5        U R                  [        U5      S5        U R                  US   R                  [        5      5        g)zI
Check that flushing the observer remove all failures of the given type.
r   r   rM   NrX   r   )r[   rg   rI   rR   ÚdictrO   r^   r   rS   rT   r_   r`   ra   )r   r   rb   s      r   Útest_flushByTypeÚObserverTests.test_flushByTypez   s°   € ð 	�‰ÔØ×$Ñ$Ó&ˆØ�‰×ÑÜØ¤§¢£°aÀÈQÐTXñô	
ð
 —-‘-×+Ñ+Ô,=Ó>ˆØ×Ñ˜Ÿ™×0Ñ0Ó2°Q°CÔ8Ø×Ñœ˜W› qÔ)Ø�‰˜ ™
×(Ñ(Ô):Ó;Õ<r   c           	      ó  • U R                   R                  [        5        [        5       nU R                   R	                  S[
        R
                  " 5       SSUSS.5        U R                  U R                   R                  5       / 5        g)zC
Check that C{_ignoreErrors} actually causes errors to be ignored.
r   r   rM   NrX   )rI   Ú_ignoreErrorsr   r   rR   rO   rS   rT   rZ   s     r   Útest_ignoreErrorsÚObserverTests.test_ignoreErrorsŠ   sl   € ð 	�‰×#Ñ#Ô$5Ô6Ü‹MˆØ�‰×ÑàÜŸ	š	›ØØØØñô		
ð 	×Ñ˜Ÿ™×0Ñ0Ó2°BÕ7r   c           	      óJ  • U R                   R                  [        5        U R                   R                  5         [	        5       nU R                   R                  S[        R                  " 5       SSUSS.5        U R                  U R                   R                  5       U/5        g)zR
Check that C{_clearIgnores} ensures that previously ignored errors
get captured.
r   r   rM   NrX   )	rI   rn   r   Ú_clearIgnoresr   rR   rO   rS   rT   rZ   s     r   Útest_clearIgnoresÚObserverTests.test_clearIgnoresœ   s~   € ð
 	�‰×#Ñ#Ô$5Ô6Ø�‰×#Ñ#Ô%Ü‹MˆØ�‰×ÑàÜŸ	š	›ØØØØñô		
ð 	×Ñ˜Ÿ™×0Ñ0Ó2°Q°CÕ8r   )rI   rG   N)r)   r*   r+   r,   r?   rJ   rU   r[   rc   rg   rk   ro   rs   r-   r   r   r   rC   rC   D   s/   † ñò
1ò8ò9ò"=ò;ò=ò 8õ$9r   rC   c                   óB   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)ÚLogErrorsMixiné±   zV
High-level tests demonstrating the expected behaviour of logged errors
during tests.
c                 ó8   • [         R                  " 5       U l        g r8   )r   rF   rG   r   s    r   rJ   ÚLogErrorsMixin.setUp·   s   € Ü×)Ò)Ó+ˆ�r   c                 ó.   • U R                  [        5        g r8   )ÚflushLoggedErrorsr   r   s    r   ÚtearDownÚLogErrorsMixin.tearDownº   s   € Ø×ÑÔ0Õ1r   c                 ó¦  • U R                  S5      nU" U R                  5        U R                  [        U R                  R                  5      S5        U R                  U R                  R                  S   S   R                  [        5      U R                  R                  S   S   5        U R                  SU R                  R                  5        g)z9
Test that a logged error gets reported as a test error.
r!   r   r   N)	ÚMockTestrG   rS   r_   Úerrorsr`   ra   r   Ú	successes©r   Útests     r   Útest_singleErrorÚLogErrorsMixin.test_singleError½   s    € ð �}‰}˜]Ó+ˆÙˆT�[‰[ÔØ×Ñœ˜TŸ[™[×/Ñ/Ó0°!Ô4Ø�‰Ø�K‰K×Ñ˜qÑ! !Ñ$×*Ñ*Ô+<Ó=¸t¿{¹{×?QÑ?QÐRSÑ?TÐUVÑ?Wô	
ð 	×Ñ˜˜DŸK™K×1Ñ1Õ2r   c                 óô   • U R                  S5      nU" U R                  5        U R                  [        U R                  R                  5      S5        U R                  SU R                  R
                  5        g)zN
Test that when two errors get logged, they both get reported as test
errors.
r$   é   r   N©r   rG   rS   r_   r€   r�   r‚   s     r   Útest_twoErrorsÚLogErrorsMixin.test_twoErrorsÉ   sW   € ð
 �}‰}˜]Ó+ˆÙˆT�[‰[ÔØ×Ñœ˜TŸ[™[×/Ñ/Ó0°!Ô4Ø×Ñ˜˜DŸK™K×1Ñ1Õ2r   c                 ó’  • U R                  S5      nU R                  S5      nU" U R                  5        U" U R                  5        U R                  [        U R                  R                  5      S5        U R                  U R                  R                  S   S   U5        U R                  SU R                  R
                  5        g)zD
Check that an error logged in one test doesn't fail the next test.
r!   r   r   r   Nrˆ   ©r   Út1Út2s      r   Útest_errorsIsolatedÚ"LogErrorsMixin.test_errorsIsolatedÓ   s“   € ð �]‰]˜=Ó)ˆØ�]‰]˜=Ó)ˆÙ
ˆ4�;‰;ŒÙ
ˆ4�;‰;ŒØ×Ñœ˜TŸ[™[×/Ñ/Ó0°!Ô4Ø×Ñ˜Ÿ™×+Ñ+¨AÑ.¨qÑ1°2Ô6Ø×Ñ˜˜DŸK™K×1Ñ1Õ2r   c                 ó¦  • U R                  S5      nU R                  S5      nU" U R                  5        U" U R                  5        U R                  [        U R                  R                  5      S5        U R                  U R                  R                  S   S   U5        U R                  R                  S   S   R                  [        5        U R                  U R                  R                  S   S   U5        U R                  R                  S   S   R                  [        5        U R                  SU R                  R                  5        g)z>
An error logged in a failed test doesn't fail the next test.
r'   r   r‡   r   r   N)	r   rG   rS   r_   r€   ÚtrapÚ	TypeErrorr   r�   rŒ   s      r   Ú test_errorsIsolatedWhenTestFailsÚ/LogErrorsMixin.test_errorsIsolatedWhenTestFailsß   sý   € ð �]‰]Ð0Ó1ˆØ�]‰]˜=Ó)ˆÙ
ˆ4�;‰;ŒÙ
ˆ4�;‰;Œà×Ñœ˜TŸ[™[×/Ñ/Ó0°!Ô4Ø×Ñ˜Ÿ™×+Ñ+¨AÑ.¨qÑ1°2Ô6Ø�‰×Ñ˜1Ñ˜aÑ ×%Ñ%¤iÔ0à×Ñ˜Ÿ™×+Ñ+¨AÑ.¨qÑ1°2Ô6Ø�‰×Ñ˜1Ñ˜aÑ ×%Ñ%Ô&7Ô8à×Ñ˜˜DŸK™K×1Ñ1Õ2r   c                 ó.  • [         R                  " 5       nU R                  [         SU5        [        R                  R
                  SS nU R                  5       nU" U R                  5        U R                  U[        R                  R
                  5        g)z5
There are no extra log observers after a test runs.
Ú_logObserverN)	r   rH   Úpatchr   ÚtheLogPublisherÚ	observersr   rG   rS   )r   rI   rš   rƒ   s       r   Útest_boundedObserversÚ$LogErrorsMixin.test_boundedObserversñ   sk   € ô
 ×)Ò)Ó+ˆØ�
‰
”9˜n¨hÔ7Ü×'Ñ'×1Ñ1±!Ð4ˆ	Ø�}‰}‹ˆÙˆT�[‰[ÔØ×Ñ˜¤C×$7Ñ$7×$AÑ$AÕBr   )rG   N)r)   r*   r+   r,   r?   rJ   r|   r„   r‰   r�   r”   r›   r-   r   r   r   rv   rv   ±   s+   † ñò
,ò2ò
3ò3ò
3ò3õ$
Cr   rv   c                   ó,   • \ rS rSr\R
                  rSrg)ÚSynchronousLogErrorsTestséþ   r   N)r)   r*   r+   r,   r   r2   r   r-   r   r   r   rž   rž   þ   s   † Ø×-Ñ-ƒHr   rž   c                   ó2   • \ rS rSr\R
                  rS rSrg)ÚAsynchronousLogErrorsTestsi  c                 óZ  • U R                  S5      nU" U R                  5        U R                  [        U R                  R                  5      S5        U R                  U R                  R                  S   S   R                  [        5      U R                  R                  S   S   5        g)zC
Test that errors logged in callbacks get reported as test errors.
r<   r   r   N)r   rG   rS   r_   r€   r`   ra   r   r‚   s     r   r<   Ú*AsynchronousLogErrorsTests.test_inCallback  s…   € ð �}‰}Ð.Ó/ˆÙˆT�[‰[ÔØ×Ñœ˜TŸ[™[×/Ñ/Ó0°!Ô4Ø�‰Ø�K‰K×Ñ˜qÑ! !Ñ$×*Ñ*Ô+<Ó=¸t¿{¹{×?QÑ?QÐRSÑ?TÐUVÑ?Wõ	
r   r   N)	r)   r*   r+   r,   r   r>   r   r<   r-   r   r   r   r¡   r¡     s   † Ø×.Ñ.€Hõ	
r   r¡   )r?   rO   Útwisted.internetr   r   Útwisted.pythonr   r   Útwisted.trialr   r   r	   r   r   r@   rC   rv   rž   rA   r¡   r   r   r   Ú<module>r§      sy   ðñó ç *ß 'ß 7Ñ 7ò÷'Oñ 'OôTj9�H×0Ñ0ô j9÷ZJCñ JCôZ. °×0LÑ0Lô .ô
 °×1BÑ1Bõ 
r   