o
    KXh8C                     @   st   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ G dd dejZ	G dd dejZ
edkr8e  dS dS )	    N)
gc_collect)productc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Test_Assertionsc                 C   s   |  dd | dd | | j| j dd | | j| jdd | j dddd | j| j| j dddd | j dddd | jdddd | j| j| j dddd | j| j| jdddd |  td	td	 | | j| jtd	td	 d S )
Ng1  ?      ?g  ?皙?r   )places   y??inf)assertAlmostEqualassertNotAlmostEqualassertRaisesfailureExceptionfloatself r   G/opt/python-3.10.19/usr/lib/python3.10/unittest/test/test_assertions.pytest_AlmostEqual
   s0   


z Test_Assertions.test_AlmostEqualc                 C   s  | j dddd | j dddd | jdddd | jdddd | j dddd | j| j| jdddd | j| j| j dddd | j| j| jdddd | jt| j ddddd | jt| jddddd tj }|tjdd	 }| j ||tjd
d	d | j||tjdd	d d S )Nr   r   g      ?)deltag?   )r   r   
   )Zseconds      )r
   r   r   r   	TypeErrordatetimeZnowZ	timedelta)r   firstsecondr   r   r   test_AmostEqualWithDelta!   s8   





z(Test_Assertions.test_AmostEqualWithDeltac                 C   s  dd }|  t|t |  t|td z
|  tdd  W n | jy9 } z| dt| W Y d }~n
d }~ww | d z	|  t|t W n	 tyQ   Y nw | d |  t}zt tyn } z|} d }~ww 1 srw   Y  | |j	| |  t td1 sw   Y  z|  t W d    n1 sw   Y  W n | jy } z| dt| W Y d }~n
d }~ww | d z|  t t1 sw   Y  W n
 ty   Y d S w | d d S )	Nc                 S   s   | Nr   )er   r   r   _raise=      z1Test_Assertions.test_assertRaises.<locals>._raisekeyc                   S      d S r   r   r   r   r   r   <lambda>B       z3Test_Assertions.test_assertRaises.<locals>.<lambda>zKeyError not raisedzassertRaises() didn't failz0assertRaises() didn't let exception pass through)
r   KeyErrorr   assertInstrfail
ValueError	ExceptionassertIs	exception)r   r    r   cmexcr   r   r   test_assertRaises<   s^   


z!Test_Assertions.test_assertRaisesc                    sj   G dd d d G  fdddt j}|d  t  |   |d  t  |   d S )Nc                   @   s   e Zd ZdS )z<Test_Assertions.test_assertRaises_frames_survival.<locals>.AN)__name__
__module____qualname__r   r   r   r   Ai   s    r4   c                       s*   e Zd Z fddZdd Zdd ZdS )z>Test_Assertions.test_assertRaises_frames_survival.<locals>.Fooc                    s(     }t |zt ty   tw r   )weakrefrefOSErrorr*   )r   ar4   wrr   r   fooo   s   
zBTest_Assertions.test_assertRaises_frames_survival.<locals>.Foo.fooc                 S   s   |  t| j d S r   r   r*   r;   r   r   r   r   test_functionalx      zNTest_Assertions.test_assertRaises_frames_survival.<locals>.Foo.test_functionalc                 S   s8   |  t |   W d    d S 1 sw   Y  d S r   r<   r   r   r   r   	test_with{   s   
"zHTest_Assertions.test_assertRaises_frames_survival.<locals>.Foo.test_withN)r1   r2   r3   r;   r=   r?   r   r9   r   r   Foom   s    	r@   r=   r?   )unittestTestCaserunr   assertIsNone)r   r@   r   r9   r   !test_assertRaises_frames_survivalf   s   z1Test_Assertions.test_assertRaises_frames_survivalc              
   C   sh   |  dd z	|  ddd W n | jy, } z| d|jd  W Y d }~d S d }~ww | d d S )NzAla ma kotazr+zk.tZMessager   z"assertNotRegex should have failed.)assertNotRegexr   r'   argsr)   )r   r   r   r   r   testAssertNotRegex   s    z"Test_Assertions.testAssertNotRegexN)r1   r2   r3   r   r   r0   rE   rH   r   r   r   r   r   	   s    * r   c                   @   s  e Z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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'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCS )DTestLongMessagec                    sD   G  fdddt j}G  fdddt j}|d _|d _d S )Nc                          e Zd ZdZ jZdd ZdS )z0TestLongMessage.setUp.<locals>.TestableTestFalseFc                 S   r#   r   r   r   r   r   r   testTest   r!   z9TestLongMessage.setUp.<locals>.TestableTestFalse.testTestNr1   r2   r3   longMessager   rK   r   r   r   r   TestableTestFalse       rN   c                       rJ   )z/TestLongMessage.setUp.<locals>.TestableTestTrueTc                 S   r#   r   r   r   r   r   r   rK      r!   z8TestLongMessage.setUp.<locals>.TestableTestTrue.testTestNrL   r   r   r   r   TestableTestTrue   rO   rP   rK   )rA   rB   testableTruetestableFalse)r   rN   rP   r   r   r   setUp   s   
zTestLongMessage.setUpc                 C   s   |  tjj d S r   )
assertTruerA   rB   rM   r   r   r   r   testDefault   r>   zTestLongMessage.testDefaultc                 C   sl   |  | jd dd |  | jddd |  | jd dd |  | jddd | jt d d S )Nr;   barz	bar : foo)ZassertEqualrR   _formatMessagerQ   objectr   r   r   r   test_formatMsg   s
   zTestLongMessage.test_formatMsgc                 C   s*   d dd tdD }| j|d d S )N c                 s   s    | ]}t |V  qd S r   )chr).0ir   r   r   	<genexpr>   s    zCTestLongMessage.test_formatMessage_unicode_error.<locals>.<genexpr>   u   �)joinrangerQ   rW   )r   Zoner   r   r    test_formatMessage_unicode_error   s   z0TestLongMessage.test_formatMessage_unicode_errorc           
   	      s   	  fdd}t |D ]3\}}||}i }|d }	|	r ddi}jj|d ||i | W d    n1 s:w   Y  qd S )Nc                    s$   | dk }|r
j }nj}t| S )Nr   )rR   rQ   getattr)r]   ZuseTestableFalsetest
methodNamer   r   r   	getMethod   s
   
z1TestLongMessage.assertMessages.<locals>.getMethodr   msgoops)expected_regex)	enumerateassertRaisesRegexr   )
r   rf   rG   errorsrg   r]   rj   Z
testMethodkwargsZwithMsgr   re   r   assertMessages   s   zTestLongMessage.assertMessagesc                 C      |  ddg d d S )NrT   )F)^False is not true$^oops$rq   z^False is not true : oops$ro   r   r   r   r   testAssertTrue      zTestLongMessage.testAssertTruec                 C   rp   )NZassertFalse)T)^True is not false$rr   rv   z^True is not false : oops$rs   r   r   r   r   testAssertFalse   ru   zTestLongMessage.testAssertFalsec                 C   rp   )NZassertNotEqualr   r   )^1 == 1$rr   ry   z^1 == 1 : oops$rs   r   r   r   r   testNotEqual   ru   zTestLongMessage.testNotEqualc                 C   rp   )Nr
   r   r   ))^1 != 2 within 7 places \(1 difference\)$rr   r|   z0^1 != 2 within 7 places \(1 difference\) : oops$rs   r   r   r   r   testAlmostEqual   s   zTestLongMessage.testAlmostEqualc                 C   rp   )Nr   rx   )^1 == 1 within 7 places$rr   r~   z^1 == 1 within 7 places : oops$rs   r   r   r   r   testNotAlmostEqual   ru   z"TestLongMessage.testNotAlmostEqualc                 C   rp   )NZ_baseAssertEqualr{   )^1 != 2$rr   r   z^1 != 2 : oops$rs   r   r   r   r   test_baseAssertEqual   ru   z$TestLongMessage.test_baseAssertEqualc                 C   s   |  dg d gfg d d S )NZassertSequenceEqual)\+ \[None\]$rr   r   z\+ \[None\] : oops$rs   r   r   r   r   testAssertSequenceEqual   s   z'TestLongMessage.testAssertSequenceEqualc                 C   s"   |  dt td gfg d d S )NZassertSetEqual)None$rr   r   zNone : oops$)ro   setr   r   r   r   testAssertSetEqual   s   z"TestLongMessage.testAssertSetEqualc                 C   s   |  dd g fg d d S )Nr'   )^None not found in \[\]$rr   r   z^None not found in \[\] : oops$rs   r   r   r   r   testAssertIn   s   zTestLongMessage.testAssertInc                 C   s   |  dd d gfg d d S )NZassertNotIn)%^None unexpectedly found in \[None\]$rr   r   z,^None unexpectedly found in \[None\] : oops$rs   r   r   r   r   testAssertNotIn  s   zTestLongMessage.testAssertNotInc                 C   s   |  di ddifg d d S )NZassertDictEqualr"   value)\+ \{'key': 'value'\}$rr   r   z\+ \{'key': 'value'\} : oops$rs   r   r   r   r   testAssertDictEqual     z#TestLongMessage.testAssertDictEqualc                 C   sT   t   t dt | dddii fg d W d    d S 1 s#w   Y  d S )NignoreZassertDictContainsSubsetr"   r   )^Missing: 'key'$rr   r   z^Missing: 'key' : oops$)warningscatch_warningssimplefilterDeprecationWarningro   r   r   r   r   testAssertDictContainsSubset  s   
"z,TestLongMessage.testAssertDictContainsSubsetc                 C   rp   )NZassertMultiLineEqual)rZ   r;   )\+ foo$rr   r   z\+ foo : oops$rs   r   r   r   r   testAssertMultiLineEqual  ru   z(TestLongMessage.testAssertMultiLineEqualc                 C   rp   )NZ
assertLessr   r   )^2 not less than 1$rr   r   z^2 not less than 1 : oops$rs   r   r   r   r   testAssertLess!  ru   zTestLongMessage.testAssertLessc                 C   rp   )NZassertLessEqualr   )^2 not less than or equal to 1$rr   r   z&^2 not less than or equal to 1 : oops$rs   r   r   r   r   testAssertLessEqual&  ru   z#TestLongMessage.testAssertLessEqualc                 C   rp   )NZassertGreaterr{   )^1 not greater than 2$rr   r   z^1 not greater than 2 : oops$rs   r   r   r   r   testAssertGreater,  ru   z!TestLongMessage.testAssertGreaterc                 C   rp   )NZassertGreaterEqualr{   )"^1 not greater than or equal to 2$rr   r   z)^1 not greater than or equal to 2 : oops$rs   r   r   r   r   testAssertGreaterEqual2  ru   z&TestLongMessage.testAssertGreaterEqualc                 C   rp   )NrD   )znot None)^'not None' is not None$rr   r   z^'not None' is not None : oops$rs   r   r   r   r   testAssertIsNone8  ru   z TestLongMessage.testAssertIsNonec                 C   rp   )NZassertIsNotNoner   )^unexpectedly None$rr   r   z^unexpectedly None : oops$rs   r   r   r   r   testAssertIsNotNone>  ru   z#TestLongMessage.testAssertIsNotNonec                 C   rp   )Nr,   Nr;   )^None is not 'foo'$rr   r   z^None is not 'foo' : oops$rs   r   r   r   r   testAssertIsD  ru   zTestLongMessage.testAssertIsc                 C   rp   )NZassertIsNot)NN)^unexpectedly identical: None$rr   r   z%^unexpectedly identical: None : oops$rs   r   r   r   r   testAssertIsNotJ  ru   zTestLongMessage.testAssertIsNotc                 C   rp   )NZassertRegex)r;   rV   )^Regex didn't match:rr   r   z!^Regex didn't match: (.*) : oops$rs   r   r   r   r   testAssertRegexP  ru   zTestLongMessage.testAssertRegexc                 C   rp   )NrF   )r;   r;   )^Regex matched:rr   r   z^Regex matched: (.*) : oops$rs   r   r   r   r   rH   W  ru   z"TestLongMessage.testAssertNotRegexc              
   C   s   	 t | j| jfi ddif}t||D ]<\\}}}t||}	| |j|" |	|i |}
|  W d    n1 s;w   Y  W d    n1 sJw   Y  qd S )Nrh   ri   )r   rR   rQ   ziprc   rl   r   )r   rf   rG   funcrm   pclsrn   errmethodr.   r   r   r   assertMessagesCM_  s   


z TestLongMessage.assertMessagesCMc                 C      |  dtfdd g d d S )Nr   c                   S   r#   r   r   r   r   r   r   r$   s  r%   z2TestLongMessage.testAssertRaises.<locals>.<lambda>^TypeError not raised$rr   r   z^TypeError not raised : oops$r   r   r   r   r   r   testAssertRaisesr  r   z TestLongMessage.testAssertRaisesc                 C   @   |  dtdfdd g d dd }|  dtdf|g d	 d S )
Nrl   unused regexc                   S   r#   r   r   r   r   r   r   r$   {  r%   z7TestLongMessage.testAssertRaisesRegex.<locals>.<lambda>r   c                   S   s   t dr   )r   r   r   r   r   raise_wrong_message  s   zBTestLongMessage.testAssertRaisesRegex.<locals>.raise_wrong_messageregex^"regex" does not match "foo"$rr   r   z%^"regex" does not match "foo" : oops$r   r   r   r   r   r   testAssertRaisesRegexx     z%TestLongMessage.testAssertRaisesRegexc                 C   r   )NZassertWarnsc                   S   r#   r   r   r   r   r   r   r$     r%   z1TestLongMessage.testAssertWarns.<locals>.<lambda>^UserWarning not triggered$rr   r   z"^UserWarning not triggered : oops$r   UserWarningr   r   r   r   testAssertWarns  r   zTestLongMessage.testAssertWarnsc                 C   r   )
NZassertWarnsRegexr   c                   S   r#   r   r   r   r   r   r   r$     r%   z6TestLongMessage.testAssertWarnsRegex.<locals>.<lambda>r   c                   S   s   t d d S r   )r   warnr   r   r   r   r     s   zATestLongMessage.testAssertWarnsRegex.<locals>.raise_wrong_messager   r   r   r   r   r   r   testAssertWarnsRegex  r   z$TestLongMessage.testAssertWarnsRegexN)$r1   r2   r3   rS   rU   rY   rb   ro   rt   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rH   r   r   r   r   r   r   r   r   r   rI      sF    
	rI   __main__)r   r   r5   rA   Ztest.supportr   	itertoolsr   rB   r   rI   r1   mainr   r   r   r   <module>   s       