a :dgB@sdddlZddlZddlZddlZddlmZGdddejZGdddejZe dkr`e dS)N)productc@s4eZdZddZddZddZddZd d Zd S) Test_AssertionscCs|dd|dd||j|jdd||j|jdd|jdddd|j|j|jdddd|jdddd|jdddd|j|j|jdddd|j|j|jdddd|td td ||j|jtd td dS) Ng1??g?皙?r)placesy??inf)assertAlmostEqualassertNotAlmostEqual assertRaisesfailureExceptionfloatselfr9/usr/local/lib/python3.9/unittest/test/test_assertions.pytest_AlmostEqual s0       z Test_Assertions.test_AlmostEqualcCs|jdddd|jdddd|jdddd|jdddd|jdddd|j|j|jdddd|j|j|jdddd|j|j|jdddd|jt|jddddd|jt|jdddddtj}|tjdd }|j||tjd d d|j||tjd d ddS) Nrrg?)deltag?)rr )Zseconds)r r r r TypeErrordatetimeZnowZ timedelta)rfirstsecondrrrtest_AmostEqualWithDelta s8        z(Test_Assertions.test_AmostEqualWithDeltac Csdd}|t|t|t|tdz|tddWn6|jyr}z|dt|WYd}~nd}~00|dz|t|tWntyYn 0|d|tD}ztWn*ty}z|}WYd}~n d}~00Wdn1s0Y||j ||ttdWdn1sF0Yz0|tWdn1st0YWn8|jy}z|dt|WYd}~nd}~00|dz4|ttWdn1s0YWnty Yn 0|ddS) NcSs|dSNr)errr_raise<sz1Test_Assertions.test_assertRaises.._raisekeycSsdSrrrrrrAz3Test_Assertions.test_assertRaises..zKeyError not raisedzassertRaises() didn't failz0assertRaises() didn't let exception pass through) r KeyErrorr assertInstrfail ValueError ExceptionassertIs exception)rrrcmexcrrrtest_assertRaises;sD&    8 ( $&  (z!Test_Assertions.test_assertRaisescs^GddddGfdddtj}|d||d|dS)Nc@s eZdZdS)z.AN)__name__ __module__ __qualname__rrrrAhsr1cs*eZdZfddZddZddZdS)z>Test_Assertions.test_assertRaises_frames_survival..Foocs4}t|ztWnty.tYn0dSr)weakrefrefOSErrorr')rar1wrrrfoons   zBTest_Assertions.test_assertRaises_frames_survival..Foo.foocSs|t|jdSrr r'r8rrrrtest_functionalwszNTest_Assertions.test_assertRaises_frames_survival..Foo.test_functionalcSs6|t|Wdn1s(0YdSrr9rrrr test_withzs zHTest_Assertions.test_assertRaises_frames_survival..Foo.test_withN)r.r/r0r8r:r;rr6rrFools r<r:r;)unittestTestCaserun assertIsNone)rr<rr6r!test_assertRaises_frames_survivales   z1Test_Assertions.test_assertRaises_frames_survivalc Csf|ddz|dddWn8|jyV}z|d|jdWYd}~nd}~00|ddS)Nz Ala ma kotazr+zk.tZMessagerz"assertNotRegex should have failed.)assertNotRegexr r$argsr&)rrrrrtestAssertNotRegexs  (z"Test_Assertions.testAssertNotRegexN)r.r/r0rrr-rArDrrrrrs *rc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z dd?Z"d@dAZ#dBdCZ$dDS)ETestLongMessagezTest that the individual asserts honour longMessage. This actually tests all the message behaviour for asserts that use longMessage.csDGfdddtj}Gfdddtj}|d_|d_dS)NcseZdZdZjZddZdS)z0TestLongMessage.setUp..TestableTestFalseFcSsdSrrrrrrtestTestsz9TestLongMessage.setUp..TestableTestFalse.testTestNr.r/r0 longMessager rFrrrrTestableTestFalsesrIcseZdZdZjZddZdS)z/TestLongMessage.setUp..TestableTestTrueTcSsdSrrrrrrrFsz8TestLongMessage.setUp..TestableTestTrue.testTestNrGrrrrTestableTestTruesrJrF)r=r> testableTrue testableFalse)rrIrJrrrsetUps zTestLongMessage.setUpcCs|tjjdSr) assertTruer=r>rHrrrr testDefaultszTestLongMessage.testDefaultcCsl||jddd||jddd||jddd||jddd|jtddS)Nr8barz bar : foo)Z assertEqualrL_formatMessagerKobjectrrrrtest_formatMsgs zTestLongMessage.test_formatMsgcCs*dddtdD}|j|ddS)Ncss|]}t|VqdSr)chr).0irrr r"zCTestLongMessage.test_formatMessage_unicode_error..u�)joinrangerKrQ)rZonerrr test_formatMessage_unicode_errorsz0TestLongMessage.test_formatMessage_unicode_errorc sfdd}t|D]f\}}||}i}|d} | r>ddi}jj|d||i|Wdq1sr0YqdS)a_ Check that methodName(*args) raises the correct error messages. errors should be a list of 4 regex that match the error when: 1) longMessage = False and no msg passed; 2) longMessage = False and msg passed; 3) longMessage = True and no msg passed; 4) longMessage = True and msg passed; cs$|dk}|rj}nj}t|S)Nr)rLrKgetattr)rWZuseTestableFalsetest methodNamerrr getMethods z1TestLongMessage.assertMessages..getMethodrmsgoops)expected_regexN) enumerateassertRaisesRegexr ) rr`rCerrorsrarWrdZ testMethodkwargsZwithMsgrr_rassertMessagess zTestLongMessage.assertMessagescCs|ddgddS)NrN)F)^False is not true$^oops$rjz^False is not true : oops$rirrrrtestAssertTrueszTestLongMessage.testAssertTruecCs|ddgddS)NZ assertFalse)T)^True is not false$rkrnz^True is not false : oops$rlrrrrtestAssertFalseszTestLongMessage.testAssertFalsecCs|ddgddS)NZassertNotEqualrr)^1 == 1$rkrqz^1 == 1 : oops$rlrrrr testNotEqualszTestLongMessage.testNotEqualcCs|ddgddS)Nr rr))^1 != 2 within 7 places \(1 difference\)$rkrtz0^1 != 2 within 7 places \(1 difference\) : oops$rlrrrrtestAlmostEqualszTestLongMessage.testAlmostEqualcCs|ddgddS)Nr rp)^1 == 1 within 7 places$rkrvz^1 == 1 within 7 places : oops$rlrrrrtestNotAlmostEqualsz"TestLongMessage.testNotAlmostEqualcCs|ddgddS)NZ_baseAssertEqualrs)^1 != 2$rkrxz^1 != 2 : oops$rlrrrrtest_baseAssertEqualsz$TestLongMessage.test_baseAssertEqualcCs|dgdgfgddS)NZassertSequenceEqual) \+ \[None\]$rkrzz\+ \[None\] : oops$rlrrrrtestAssertSequenceEqualsz'TestLongMessage.testAssertSequenceEqualcCs"|dttdgfgddS)NZassertSetEqual)None$rkr|z None : oops$)risetrrrrtestAssertSetEqualsz"TestLongMessage.testAssertSetEqualcCs|ddgfgddS)Nr$)^None not found in \[\]$rkrz^None not found in \[\] : oops$rlrrrr testAssertIns zTestLongMessage.testAssertIncCs|dddgfgddS)NZ assertNotIn)%^None unexpectedly found in \[None\]$rkrz,^None unexpectedly found in \[None\] : oops$rlrrrrtestAssertNotInszTestLongMessage.testAssertNotIncCs|diddifgddS)NZassertDictEqualr value)\+ \{'key': 'value'\}$rkrz\+ \{'key': 'value'\} : oops$rlrrrrtestAssertDictEqual sz#TestLongMessage.testAssertDictEqualcCsRt6tdt|dddiifgdWdn1sD0YdS)NignoreZassertDictContainsSubsetr r)^Missing: 'key'$rkrz^Missing: 'key' : oops$)warningscatch_warnings simplefilterDeprecationWarningrirrrrtestAssertDictContainsSubsets   z,TestLongMessage.testAssertDictContainsSubsetcCs|ddgddS)NZassertMultiLineEqual)rTr8)\+ foo$rkrz\+ foo : oops$rlrrrrtestAssertMultiLineEqualsz(TestLongMessage.testAssertMultiLineEqualcCs|ddgddS)NZ assertLessrr)^2 not less than 1$rkrz^2 not less than 1 : oops$rlrrrrtestAssertLessszTestLongMessage.testAssertLesscCs|ddgddS)NZassertLessEqualr)^2 not less than or equal to 1$rkrz&^2 not less than or equal to 1 : oops$rlrrrrtestAssertLessEqual#sz#TestLongMessage.testAssertLessEqualcCs|ddgddS)NZ assertGreaterrs)^1 not greater than 2$rkrz^1 not greater than 2 : oops$rlrrrrtestAssertGreater)sz!TestLongMessage.testAssertGreatercCs|ddgddS)NZassertGreaterEqualrs)"^1 not greater than or equal to 2$rkrz)^1 not greater than or equal to 2 : oops$rlrrrrtestAssertGreaterEqual/sz&TestLongMessage.testAssertGreaterEqualcCs|ddgddS)Nr@)znot None)^'not None' is not None$rkrz^'not None' is not None : oops$rlrrrrtestAssertIsNone5sz TestLongMessage.testAssertIsNonecCs|ddgddS)NZassertIsNotNoner)^unexpectedly None$rkrz^unexpectedly None : oops$rlrrrrtestAssertIsNotNone;sz#TestLongMessage.testAssertIsNotNonecCs|ddgddS)Nr)Nr8)^None is not 'foo'$rkrz^None is not 'foo' : oops$rlrrrr testAssertIsAszTestLongMessage.testAssertIscCs|ddgddS)NZ assertIsNot)NN)^unexpectedly identical: None$rkrz%^unexpectedly identical: None : oops$rlrrrrtestAssertIsNotGszTestLongMessage.testAssertIsNotcCs|ddgddS)NZ assertRegex)r8rP)^Regex didn't match:rkrz!^Regex didn't match: (.*) : oops$rlrrrrtestAssertRegexMszTestLongMessage.testAssertRegexcCs|ddgddS)NrB)r8r8)^Regex matched:rkrz^Regex matched: (.*) : oops$rlrrrrrDTsz"TestLongMessage.testAssertNotRegexc Cst|j|jfiddif}t||D]x\\}}}t||} ||j|D| |i|} |Wdn1st0YWdq$1s0Yq$dS)a Check that the correct error messages are raised while executing: with method(*args): func() *errors* should be a list of 4 regex that match the error when: 1) longMessage = False and no msg passed; 2) longMessage = False and msg passed; 3) longMessage = True and no msg passed; 4) longMessage = True and msg passed; rbrcN)rrLrKzipr]rfr ) rr`rCfuncrgpclsrherrmethodr+rrrassertMessagesCM\s   z TestLongMessage.assertMessagesCMcCs|dtfddgddS)Nr cSsdSrrrrrrr!pr"z2TestLongMessage.testAssertRaises..^TypeError not raised$rkrz^TypeError not raised : oops$rrrrrrtestAssertRaisesosz TestLongMessage.testAssertRaisescCs@|dtdfddgddd}|dtdf|gd dS) Nrf unused regexcSsdSrrrrrrr!xr"z7TestLongMessage.testAssertRaisesRegex..rcSs tddSr)rrrrrraise_wrong_message}szBTestLongMessage.testAssertRaisesRegex..raise_wrong_messageregex^"regex" does not match "foo"$rkrz%^"regex" does not match "foo" : oops$rrrrrrtestAssertRaisesRegexus  z%TestLongMessage.testAssertRaisesRegexcCs|dtfddgddS)NZ assertWarnscSsdSrrrrrrr!r"z1TestLongMessage.testAssertWarns..^UserWarning not triggered$rkrz"^UserWarning not triggered : oops$r UserWarningrrrrtestAssertWarnsszTestLongMessage.testAssertWarnscCs@|dtdfddgddd}|dtdf|gd dS) NZassertWarnsRegexrcSsdSrrrrrrr!r"z6TestLongMessage.testAssertWarnsRegex..rcSstddSr)rwarnrrrrrszATestLongMessage.testAssertWarnsRegex..raise_wrong_messagerrrrrrrtestAssertWarnsRegexs  z$TestLongMessage.testAssertWarnsRegexN)%r.r/r0__doc__rMrOrSr\rirmrorrrurwryr{r~rrrrrrrrrrrrrrrDrrrrrrrrrrEsD  rE__main__) rrr2r= itertoolsrr>rrEr.mainrrrrs