§
    Ètºfƒ  ã                  ó²   — d dl mZ d dlZd dlZd dlZd dlm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mZ  G d	„ d
e¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚskipIf)Úimplementer)ÚFailure)Ú	IReporterÚ	ITestCase)Úpyunitcases)ÚPyUnitResultAdapterÚSynchronousTestCasec                  ó   — e Zd Zdd„Zdd„ZdS )ÚPyUnitTestTestsÚreturnÚNonec                ój   — t          j        d¦  «        | _        t          | j        ¦  «        | _        d S )NÚ	test_pass)r	   Ú
PyUnitTestÚoriginalr   Útest©Úselfs    úc/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/trial/test/test_pyunitcompat.pyÚsetUpzPyUnitTestTests.setUp   s)   € Ý#Ô.¨{Ñ;Ô;ˆŒÝ˜dœmÑ,Ô,ˆŒ	ˆ	ˆ	ó    c                óf   — |                       t          | j        ¦  «        | j        ›d�¦  «         dS )zW
        Tests must be callable in order to be used with Python's unittest.py.
        z is not callable.N)Ú
assertTrueÚcallabler   r   s    r   Útest_callablezPyUnitTestTests.test_callable   s3   € ð 	�Š� ¤Ñ+Ô+°´	Ð-NÐ-NÐ-NÑOÔOÐOÐOÐOr   N©r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      sB   € € € € € ð-ð -ð -ð -ðPð Pð Pð Pð Pð Pr   r   c                  ó~   — e Zd ZdZ G d„ de¦  «        Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚPyUnitResultTestsz¹
    Tests to show that PyUnitResultAdapter wraps TestResult objects from the
    standard library 'unittest' module in such a way as to make them usable and
    useful from Trial.
    c                  ó   — e Zd ZdZdZdd„ZdS )úPyUnitResultTests.ErrorTestz™
        A test case which has a L{test_foo} which will raise an error.

        @ivar ran: boolean indicating whether L{test_foo} has been run.
        Fr   r   c                ó   — d| _         ddz   dS )zR
            Set C{self.ran} to True and raise a C{ZeroDivisionError}
            Té   r   N©Úranr   s    r   Útest_fooz$PyUnitResultTests.ErrorTest.test_foo0   s   € ð ˆDŒHØ�‰EˆEˆEˆEr   Nr   )r   r    r!   Ú__doc__r*   r+   r"   r   r   Ú	ErrorTestr&   '   s9   € € € € € ð	ð 	ð ˆð	ð 	ð 	ð 	ð 	ð 	r   r-   r   r   c                ó  — t          t          ¦  «         G d„ d¦  «        ¦   «         }|                      d¦  «        } |¦   «         }|                     |¦  «         |                      |j        d         t          ¦  «         dS )zƒ
        The L{PyUnitResultAdapter} is only used when the result passed to
        C{run} does *not* provide L{IReporter}.
        c                  ó2   — e Zd ZdZdd„Zdd„Zdd„Zdd„ZdS )úXPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter.<locals>.StubReporterzÆ
            A reporter which records data about calls made to it.

            @ivar errors: Errors passed to L{addError}.
            @ivar failures: Failures passed to L{addFailure}.
            r   r   c                ó"   — g | _         g | _        d S )N)ÚerrorsÚfailuresr   s    r   Ú__init__zaPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter.<locals>.StubReporter.__init__F   s   € Ø-/�”Ø,.�”��r   r   Úobjectc                ó   — dS ©z-
                Do nothing.
                Nr"   ©r   r   s     r   Ú	startTestzbPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter.<locals>.StubReporter.startTestJ   ó   € € € r   c                ó   — dS r7   r"   r8   s     r   ÚstopTestzaPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter.<locals>.StubReporter.stopTestO   r:   r   Úerrorr   c                ó:   — | j                              |¦  «         dS )z3
                Record the error.
                N)r2   Úappend)r   r   r=   s      r   ÚaddErrorzaPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter.<locals>.StubReporter.addErrorT   s    € ð ”×"Ò" 5Ñ)Ô)Ð)Ð)Ð)r   Nr   )r   r5   r   r   )r   r5   r=   r   r   r   )r   r    r!   r,   r4   r9   r<   r@   r"   r   r   ÚStubReporterr0   =   sn   € € € € € ðð ð/ð /ð /ð /ðð ð ð ð
ð ð ð ð
*ð *ð *ð *ð *ð *r   rA   r+   r   N)r   r   r-   ÚrunÚassertIsInstancer2   r   )r   rA   r   Úresults       r   Ú0test_dontUseAdapterWhenReporterProvidesIReporterzBPyUnitResultTests.test_dontUseAdapterWhenReporterProvidesIReporter7   s’   € õ 
•YÑ	Ô	ð	*ð 	*ð 	*ð 	*ð 	*ñ 	*ô 	*ñ 
 Ô	ð	*ð8 �~Š~˜jÑ)Ô)ˆØ�‘”ˆØ�Š�ÑÔÐØ×Ò˜fœm¨AÔ.µÑ8Ô8Ð8Ð8Ð8r   c                óJ  —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        ¦  «         |                      d|j        ¦  «         |                      |                     ¦   «         ¦  «         d S )Nc                  ó   — e Zd ZdZdd„ZdS )ú3PyUnitResultTests.test_success.<locals>.SuccessTestFr   r   c                ó   — d| _         d S ©NTr)   ©Úss    r   r+   z<PyUnitResultTests.test_success.<locals>.SuccessTest.test_fooc   ó   € Ø�”��r   Nr   ©r   r    r!   r*   r+   r"   r   r   ÚSuccessTestrH   `   s-   € € € € € ØˆCðð ð ð ð ð r   rO   r+   r(   )	r   ÚpyunitÚ
TestResultrB   r   r*   ÚassertEqualÚtestsRunÚwasSuccessful)r   rO   r   rD   s       r   Útest_successzPyUnitResultTests.test_success_   s®   € ð	ð 	ð 	ð 	ð 	Õ-ñ 	ô 	ð 	ð ˆ{˜:Ñ&Ô&ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐà�Š˜œÑ!Ô!Ð!Ø×Ò˜˜FœOÑ,Ô,Ð,Ø�Š˜×,Ò,Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/r   c                óš  —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        ¦  «         |                      d|j        ¦  «         |                      dt          |j	        ¦  «        ¦  «         |  
                    |                     ¦   «         ¦  «         d S )Nc                  ó   — e Zd ZdZdd„ZdS )ú3PyUnitResultTests.test_failure.<locals>.FailureTestFr   r   c                ó>   — d| _         |                      d¦  «         d S )NTzboom!)r*   ÚfailrK   s    r   r+   z<PyUnitResultTests.test_failure.<locals>.FailureTest.test_foor   s   € Ø�”Ø—’�w‘”���r   Nr   rN   r"   r   r   ÚFailureTestrX   o   s-   € € € € € ØˆCð ð  ð  ð  ð  ð  r   r[   r+   r(   )r   rP   rQ   rB   r   r*   rR   rS   Úlenr3   ÚassertFalserT   )r   r[   r   rD   s       r   Útest_failurezPyUnitResultTests.test_failuren   sÐ   € ð	 ð 	 ð 	 ð 	 ð 	 Õ-ñ 	 ô 	 ð 	 ð ˆ{˜:Ñ&Ô&ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐà�Š˜œÑ!Ô!Ð!Ø×Ò˜˜FœOÑ,Ô,Ð,Ø×Ò˜�C ¤Ñ0Ô0Ñ1Ô1Ð1Ø×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r   c                óˆ  — |                       d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        ¦  «         |                      d|j        ¦  «         |                      dt          |j	        ¦  «        ¦  «         |  
                    |                     ¦   «         ¦  «         d S )Nr+   r(   )r-   rP   rQ   rB   r   r*   rR   rS   r\   r2   r]   rT   )r   r   rD   s      r   Ú
test_errorzPyUnitResultTests.test_error   s¥   € Ø�~Š~˜jÑ)Ô)ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐà�Š˜œÑ!Ô!Ð!Ø×Ò˜˜FœOÑ,Ô,Ð,Ø×Ò˜�C ¤Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r   c                óš  —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        ¦  «         |                      d|j        ¦  «         |                      dt          |j	        ¦  «        ¦  «         |                      | 
                    ¦   «         ¦  «         d S )Nc                  ó"   — e Zd ZdZdd„Zdd„ZdS )ú4PyUnitResultTests.test_setUpError.<locals>.ErrorTestFr   r   c                ó   — ddz   d S ©Nr(   r   r"   r   s    r   r   z:PyUnitResultTests.test_setUpError.<locals>.ErrorTest.setUp�   s   € Ø�A‘���r   c                ó   — d| _         d S rJ   r)   rK   s    r   r+   z=PyUnitResultTests.test_setUpError.<locals>.ErrorTest.test_foo�   rM   r   Nr   )r   r    r!   r*   r   r+   r"   r   r   r-   rc   Š   sA   € € € € € ØˆCðð ð ð ðð ð ð ð ð r   r-   r+   r(   )r   rP   rQ   rB   r]   r*   rR   rS   r\   r2   rT   )r   r-   r   rD   s       r   Útest_setUpErrorz!PyUnitResultTests.test_setUpError‰   sÒ   € ð	ð 	ð 	ð 	ð 	Õ+ñ 	ô 	ð 	ð ˆy˜Ñ$Ô$ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐà×Ò˜œÑ"Ô"Ð"Ø×Ò˜˜FœOÑ,Ô,Ð,Ø×Ò˜�C ¤Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜×-Ò-Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r   c                ór  — 	 ddz   n1# t           $ r$ t          j        ¦   «         }t          ¦   «         }Y nw xY wt	          j        ¦   «         }t          |¦  «        }|                     | |¦  «         |                      |j	        d         d         d 
                    t          j        |Ž ¦  «        ¦  «         dS )z‘
        Errors added through the L{PyUnitResultAdapter} have the same traceback
        information as if there were no adapter at all.
        r(   r   Ú N)ÚZeroDivisionErrorÚsysÚexc_infor   rP   rQ   r
   r@   rR   r2   ÚjoinÚ	tracebackÚformat_exception)r   rl   ÚfÚpyresultrD   s        r   Útest_tracebackFromFailurez+PyUnitResultTests.test_tracebackFromFailureœ   s½   € ð
	Ø�‰EˆEˆEøÝ ð 	ð 	ð 	Ý”|‘~”~ˆHÝ‘	”	ˆAˆAˆAð	øøøõ Ô$Ñ&Ô&ˆÝ$ XÑ.Ô.ˆØ�Š˜˜aÑ Ô Ð Ø×ÒØŒO˜AÔ˜qÔ! 2§7¢7­9Ô+EÀxÐ+PÑ#QÔ#Qñ	
ô 	
ð 	
ð 	
ð 	
ó   ‚ ˆ+6µ6c                ó(  —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |j        €J ‚d                     t          j        |j        d         ¦  «        ¦  «        }d                     |j        d         d	          	                    ¦   «         dd
…         ¦  «        }|  
                    |                     ¦   «         |t          |¦  «         d…                              ¦   «         ¦  «         dS )zG
        As test_tracebackFromFailure, but covering more code.
        c                  ó   — e Zd ZdZdd„ZdS )ú3PyUnitResultTests.test_traceback.<locals>.ErrorTestNr   r   c                ó`   — 	 ddz   d S # t           $ r t          j        ¦   «         | _        ‚ w xY wre   )rj   rk   rl   r   s    r   r+   z<PyUnitResultTests.test_traceback.<locals>.ErrorTest.test_fooµ   s?   € ðØ˜‘E�E�E�EøÝ(ð ð ð Ý$'¤L¡N¤N�D”MØðøøøs   ‚	 ‰$-r   )r   r    r!   rl   r+   r"   r   r   r-   rv   ²   s-   € € € € € ØˆHðð ð ð ð ð r   r-   r+   Nri   é   ú
r   r(   éÿÿÿÿ)r   rP   rQ   rB   rl   rm   rn   Ú	format_tbr2   Ú
splitlinesrR   Ústripr\   )r   r-   r   rD   Úexpected_stackÚobserved_stacks         r   Útest_tracebackz PyUnitResultTests.test_traceback­   s  € ð
	ð 	ð 	ð 	ð 	Õ+ñ 	ô 	ð 	ð ˆy˜Ñ$Ô$ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐð Œ}Ð(Ð(Ð(ØŸš¥Ô!4°T´]À1Ô5EÑ!FÔ!FÑGÔGˆØŸš 6¤=°Ô#3°AÔ#6×#AÒ#AÑ#CÔ#CÀCÀRÀCÔ#HÑIÔIˆà×ÒØ× Ò Ñ"Ô" NµC¸Ñ4GÔ4GÐ3GÐ3IÐ3IÔ$J×$PÒ$PÑ$RÔ$Rñ	
ô 	
ð 	
ð 	
ð 	
r   c                óê  — 	 ddz   n1# t           $ r$ t          j        ¦   «         }t          ¦   «         }Y nw xY w|                     ¦   «          t          j        ¦   «         }t          |¦  «        }|                     | |¦  «         d 	                    t          j        |Ž ¦  «        }|                      |j        d         d                              d¦  «        |                     d¦  «        ¦  «         dS )zÙ
        Errors added through the L{PyUnitResultAdapter} have the same
        traceback information as if there were no adapter at all, even
        if the Failure that held the information has been cleaned.
        r(   r   ri   z$ZeroDivisionError: division by zero
N)rj   rk   rl   r   ÚcleanFailurerP   rQ   r
   r@   rm   rn   ro   rR   r2   Úendswith)r   rl   rp   rq   rD   Útbacks         r   Útest_tracebackFromCleanFailurez0PyUnitResultTests.test_tracebackFromCleanFailureÎ   sï   € ð	Ø�‰EˆEˆEøÝ ð 	ð 	ð 	Ý”|‘~”~ˆHÝ‘	”	ˆAˆAˆAð	øøøð 	
�ŠÑÔÐÝÔ$Ñ&Ô&ˆÝ$ XÑ.Ô.ˆØ�Š˜˜aÑ Ô Ð Ø—’�	Ô2°HÐ=Ñ>Ô>ˆØ×ÒØŒO˜AÔ˜qÔ!×*Ò*Ð+RÑSÔSØ�NŠNÐBÑCÔCñ	
ô 	
ð 	
ð 	
ð 	
rs   c                óÎ   —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        |dfg¦  «         dS )zw
        Skips using trial's skipping functionality are reported as skips in
        the L{pyunit.TestResult}.
        c                  ó:   — e Zd Z edd¦  «        dd„¦   «         ZdS )ú2PyUnitResultTests.test_trialSkip.<locals>.SkipTestTúLet's skip!r   r   c                ó   — ddz   d S re   r"   r   s    r   Ú	test_skipz<PyUnitResultTests.test_trialSkip.<locals>.SkipTest.test_skipê   ó   € à�A‘���r   Nr   )r   r    r!   r   r‹   r"   r   r   ÚSkipTestrˆ   é   s?   € € € € € ØˆV�D˜-Ñ(Ô(ðð ð ñ )Ô(ðð ð r   r�   r‹   r‰   N©r   rP   rQ   rB   rR   Úskipped©r   r�   r   rD   s       r   Útest_trialSkipz PyUnitResultTests.test_trialSkipã   s„   € ð	ð 	ð 	ð 	ð 	Õ*ñ 	ô 	ð 	ð
 ˆx˜Ñ$Ô$ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐØ×Ò˜œ¨4°Ð*?Ð)@ÑAÔAÐAÐAÐAr   c                óÎ   —  G d„ dt           ¦  «        } |d¦  «        }t          j        ¦   «         }|                     |¦  «         |                      |j        |dfg¦  «         dS )zx
        Skips using pyunit's skipping functionality are reported as skips in
        the L{pyunit.TestResult}.
        c                  óB   — e Zd Z ej        d¦  «        dd„¦   «         ZdS )ú3PyUnitResultTests.test_pyunitSkip.<locals>.SkipTestÚskippyr   r   c                ó   — ddz   d S re   r"   r   s    r   r‹   z=PyUnitResultTests.test_pyunitSkip.<locals>.SkipTest.test_skipú   rŒ   r   Nr   )r   r    r!   rP   Úskipr‹   r"   r   r   r�   r”   ù   s?   € € € € € ØˆVŒ[˜Ñ"Ô"ðð ð ñ #Ô"ðð ð r   r�   r‹   r•   NrŽ   r�   s       r   Útest_pyunitSkipz!PyUnitResultTests.test_pyunitSkipó   s„   € ð	ð 	ð 	ð 	ð 	Õ*ñ 	ô 	ð 	ð
 ˆx˜Ñ$Ô$ˆÝÔ"Ñ$Ô$ˆØ�Š�ÑÔÐØ×Ò˜œ¨4°Ð*:Ð);Ñ<Ô<Ð<Ð<Ð<r   Nr   )r   r    r!   r,   r   r-   rE   rU   r^   r`   rg   rr   r€   r…   r‘   r˜   r"   r   r   r$   r$      s  € € € € € ðð ðð ð ð ð Ð'ñ ô ð ð &9ð &9ð &9ð &9ðP0ð 0ð 0ð 0ð1ð 1ð 1ð 1ð"1ð 1ð 1ð 1ð1ð 1ð 1ð 1ð&
ð 
ð 
ð 
ð"
ð 
ð 
ð 
ðB
ð 
ð 
ð 
ð*Bð Bð Bð Bð =ð =ð =ð =ð =ð =r   r$   )Ú
__future__r   rk   rn   ÚunittestrP   r   Úzope.interfacer   Útwisted.python.failurer   Útwisted.trial.itrialr   r   Útwisted.trial.testr	   Útwisted.trial.unittestr
   r   r   r$   r"   r   r   ú<module>r       s$  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à *Ð *Ð *Ð *Ð *Ð *Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø *Ð *Ð *Ð *Ð *Ð *Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ Kð	Pð 	Pð 	Pð 	Pð 	PÐ)ñ 	Pô 	Pð 	Pðc=ð c=ð c=ð c=ð c=Ð+ñ c=ô c=ð c=ð c=ð c=r   