JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB ~ f%@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl mZmZmZmZmZdZeZdZGdddeZGd d d eZGd d d eZGd ddeZddZddZddZddZddZ ddZ!GdddZ"ddZ#dd Z$Gd!d"d"e"Z%Gd#d$d$e%Z&Gd%d&d&e%Z'e(d'd(d)gZ)Gd*d+d+ej*Z+Gd,d-d-e"Z,Gd.d/d/ej-Z.Gd0d1d1eZ/Gd2d3d3e/Z0Gd4d5d5e/Z1dS)6N)result)strclass safe_repr_count_diff_all_purpose_count_diff_hashable_common_shorten_reprTz@ Diff is %s characters long. Set self.maxDiff to None to see it.c@s eZdZdS)SkipTestN)__name__ __module__ __qualname__r r 2/opt/alt/python37/lib64/python3.7/unittest/case.pyr sr c@s eZdZdS) _ShouldStopN)r r r r r r rr"src@s eZdZdS)_UnexpectedSuccessN)r r r r r r rr'src@s&eZdZdddZejdddZdS) _OutcomeNcCs4d|_||_t|d|_d|_g|_d|_g|_dS)NF addSubTestT)expecting_failurerhasattrresult_supports_subtestssuccessskippedexpectedFailureerrors)selfrr r r__init__.s z_Outcome.__init__Fc cs|j}d|_zy dVWntk r.Yntk rh}zd|_|j|t|fWdd}~XYnjtk rzYnXt}|j r||_ nd|_|j ||fd}YnX|j r|jr|j |dfWd|jo||_XdS)NTF) rKeyboardInterruptr rappendstrrsysexc_inforrrr)r test_caseisTestZ old_successer r r rtestPartExecutor7s* $  z_Outcome.testPartExecutor)N)F)r r r r contextlibcontextmanagerr$r r r rr-s rcCs|S)Nr )objr r r_idUsr(csfdd}|S)Ncs4t|ts$t|fdd}|}d|_|_|S)Ncs tdS)N)r )argskwargs)reasonr r skip_wrapper^sz-skip..decorator..skip_wrapperT) isinstancetype functoolswraps__unittest_skip____unittest_skip_why__) test_itemr,)r+r r decorator\s  zskip..decoratorr )r+r4r )r+rskipXs r5cCs|r t|StS)N)r5r() conditionr+r r rskipIfhsr7cCs|s t|StS)N)r5r()r6r+r r r skipUnlesspsr8cCs d|_|S)NT)__unittest_expecting_failure__)r3r r rrxsrcs4t|tr tfdd|DSt|to2t|S)Nc3s|]}t|VqdS)N) _is_subtype).0r#)basetyper r ~sz_is_subtype..)r-tupleallr. issubclass)expectedr<r )r<rr:|s r:c@seZdZddZddZdS)_BaseTestCaseContextcCs ||_dS)N)r!)rr!r r rrsz_BaseTestCaseContext.__init__cCs |j|j|}|j|dS)N)r!_formatMessagemsgfailureException)r standardMsgrDr r r _raiseFailuresz"_BaseTestCaseContext._raiseFailureN)r r r rrGr r r rrBsrBcCsdtjkrt|StSdS)NWITHIN_PYTHON_RPM_BUILD)osenvironr5r()r+r r r_skipInRpmBuilds rKcstfdd}|S)NcsNdtjkr@y||Wn tk r8ttYnXtn ||dS)NrH)rIrJ ExceptionZ_ExpectedFailurerr r)r)r*)funcr rwrappers z+_expectedFailureInRpmBuild..wrapper)r/r0)rMrNr )rMr_expectedFailureInRpmBuilds rOc@seZdZdddZddZdS)_AssertRaisesBaseContextNcCs@t||||_||_|dk r*t|}||_d|_d|_dS)N) rBrrAr!recompileexpected_regexobj_namerD)rrAr!rSr r rrs  z!_AssertRaisesBaseContext.__init__c Cszt|j|js"td||jf|rD|ddkrDtdtdd}|sx|dd|_ |rttdt t |td|S|^}}y |j |_ Wntk rt||_ YnX||||WdQRXWdd}XdS)Nz%s() arg 1 must be %srzcallable is Noner rDz3%r is an invalid keyword argument for this function)r:rA _base_type TypeError_base_type_strwarningswarnDeprecationWarningpoprDnextiterr rTAttributeErrorr)rnamer)r*Z callable_objr r rhandles.  z_AssertRaisesBaseContext.handle)N)r r r rrar r r rrPs rPc@s$eZdZeZdZddZddZdS)_AssertRaisesContextz-an exception type or tuple of exception typescCs|S)Nr )rr r r __enter__sz_AssertRaisesContext.__enter__cCs|dkrby |jj}Wntk r2t|j}YnX|jrP|d||jql|d|n t|t ||js|dS| d|_ |j dkrdS|j }| t|s|d|jt|dS)Nz{} not raised by {}z {} not raisedFTz"{}" does not match "{}")rAr r_rrTrGformat traceback clear_framesr@with_tracebackZ exceptionrSsearchpattern)rexc_type exc_valuetbexc_namerSr r r__exit__s(       z_AssertRaisesContext.__exit__N)r r r BaseExceptionrVrXrcrnr r r rrbsrbc@s$eZdZeZdZddZddZdS)_AssertWarnsContextz(a warning type or tuple of warning typescCsVx(ttjD]}t|ddri|_qWtjdd|_|j |_t d|j |S)N__warningregistry__T)recordalways) listrmodulesvaluesgetattrrqrYcatch_warningswarnings_managerrc simplefilterrA)rvr r rrc s   z_AssertWarnsContext.__enter__cCs|j||||dk rdSy |jj}Wntk rFt|j}YnXd}xb|jD]X}|j}t||jslqT|dkrx|}|j dk r|j t|sqT||_ |j |_ |j |_ dSW|dk r|d|j jt||jr|d||jn|d|dS)Nz"{}" does not match "{}"z{} not triggered by {}z{} not triggered)ryrnrAr r_rrYmessager-rSrhZwarningfilenamelinenorGrdrirT)rrjrkrlrmZfirst_matchingmwr r rrns8      z_AssertWarnsContext.__exit__N)r r r WarningrVrXrcrnr r r rrps rp_LoggingWatcherrecordsoutputc@s$eZdZddZddZddZdS)_CapturingHandlercCstj|tgg|_dS)N)loggingHandlerrrwatcher)rr r rrAs z_CapturingHandler.__init__cCsdS)Nr )rr r rflushEsz_CapturingHandler.flushcCs*|jj|||}|jj|dS)N)rrrrdr)rrrrDr r remitHs z_CapturingHandler.emitN)r r r rrrr r r rr<src@s(eZdZdZddZddZddZdS) _AssertLogsContextz"%(levelname)s:%(name)s:%(message)scCs:t||||_|r(tj|||_ntj|_d|_dS)N) rBr logger_namerZ _nameToLevelgetlevelINFOrD)rr!rrr r rrTs  z_AssertLogsContext.__init__cCst|jtjr|j}|_nt|j}|_t|j}t}| ||j |_ |j dd|_ |j |_|j|_|g|_ ||j d|_|j S)NF)r-rrZLoggerloggerZ getLoggerZ FormatterLOGGING_FORMATrZ setFormatterrhandlers old_handlersr old_level propagate old_propagatesetLevel)rr formatterZhandlerr r rrc]s   z_AssertLogsContext.__enter__cCs`|j|j_|j|j_|j|j|dk r.dSt|jj dkr\| d t |j|jjdS)NFrz-no logs of level {} or higher triggered on {})rrrrrrrlenrrrGrdrZ getLevelNamerr`)rrjrkrlr r rrnns  z_AssertLogsContext.__exit__N)r r r rrrcrnr r r rrOs rc@seZdZddZdS)_OrderedChainMapccs@t}x4|jD]*}x$|D]}||kr|||VqWqWdS)N)setmapsadd)rseenmappingkr r r__iter__|s    z_OrderedChainMap.__iter__N)r r r rr r r rr{src@seZdZeZdZdZdZdZdddZ dd Z d d Z d d Z ddZ eddZeddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zejefd&d'Zd(d)Zd*d+Zd,d-Z dd/d0Z!d1d2Z"d3d4Z#d5d6Z$d7d8Z%dd9d:Zⅆd<Z'dd=d>Z(d?d@Z)dAdBZ*dCdDZ+ddEdFZ,dGdHZ-ddIdJZ.ddKdLZ/ddMdNZ0ddOdPZ1ddQdRZ2ddSdTZ3dUdVZ4ddWdXZ5ddYdZZ6dd[d\Z7dd]d^Z8dd_d`Z9ddadbZ:ddcddZ;ddedfZddkdlZ?ddmdnZ@ddodpZAddqdrZBddsdtZCddudvZDddwdxZEddydzZFdd{d|ZGd}d~ZHddZIdddZJdddZKddZLeLe/ZMZNeLe0ZOZPeLe1ZQZReLe2ZSZTeLe(ZUZVeLe*ZWeLe'ZXeLeHZYeLeJZZeLeKZ[d.S)TestCaseTiiFrunTestcCs||_d|_d|_yt||}Wn.tk rN|dkrJtd|j|fYn X|j|_g|_d|_ i|_ | t d| t d| td| td| td| tddS) NzNo testrzno such test method in %s: %sassertDictEqualassertListEqualassertTupleEqualassertSetEqualassertMultiLineEqual)_testMethodName_outcome_testMethodDocrwr_ ValueError __class____doc__ _cleanups_subtest_type_equality_funcsaddTypeEqualityFuncdictrtr>r frozensetr)rZ methodName testMethodr r rrs&     zTestCase.__init__cCs||j|<dS)N)r)rZtypeobjfunctionr r rrs zTestCase.addTypeEqualityFunccOstt|dkr|^}}}n>|s&tdn0d|krB|d}|^}}ntdt|dt|}|j|||fdS)Nz>descriptor 'addCleanup' of 'TestCase' object needs an argumentrz:addCleanup expected at least 1 positional argument, got %dr)rrWr\r>rr)r)r*rrr r r addCleanups     zTestCase.addCleanupcCsdS)Nr )rr r rsetUpszTestCase.setUpcCsdS)Nr )rr r rtearDownszTestCase.tearDowncCsdS)Nr )clsr r r setUpClassszTestCase.setUpClasscCsdS)Nr )rr r r tearDownClassszTestCase.tearDownClasscCsdS)Nrr )rr r rcountTestCasesszTestCase.countTestCasescCstS)N)rZ TestResult)rr r rdefaultTestResult szTestCase.defaultTestResultcCs$|j}|r |ddSdS)N r)rstripsplit)rdocr r rshortDescriptionszTestCase.shortDescriptioncCsdt|j|jfS)Nz%s.%s)rrr)rr r ridsz TestCase.idcCs t|t|k rtS|j|jkS)N)r.NotImplementedr)rotherr r r__eq__szTestCase.__eq__cCstt||jfS)N)hashr.r)rr r r__hash__"szTestCase.__hash__cCsd|jt|jfS)Nz%s (%s))rrr)rr r r__str__%szTestCase.__str__cCsdt|j|jfS)Nz<%s testMethod=%s>)rrr)rr r r__repr__(szTestCase.__repr__cCs<t|dd}|dk r |||ntdtd||dS)NaddSkipz4TestResult has no addSkip method, skips not reportedr)rwrYrZRuntimeWarning addSuccess)rrr!r+rr r r_addSkip,s   zTestCase._addSkipc ks|jdks|jjsdVdS|j}|dkr4t|}n |j|}t||||_zX|jj|jdd dVWdQRX|jjs|jj }|dk r|j rt n |jj rt Wd||_XdS)NT)r") rrrrparams new_child_SubTestr$rrZfailfastrr)rrDrparentZ params_maprr r rsubTest5s$  zTestCase.subTestcCsdx^|D]V\}}t|tr*||j||q|dk rt|d|jrP|||q|||qWdS)Nr)r-rrr!r@rE addFailureZaddError)rrrtestr r r r_feedErrorsToResultTs zTestCase._feedErrorsToResultcCsDy |j}Wn*tk r4tdt||Yn X|||dS)Nz@TestResult has no addExpectedFailure method, reporting as passes)addExpectedFailurer_rYrZrr)rrr rr r r_addExpectedFailure^s zTestCase._addExpectedFailurec Cshy |j}WnPtk rZtdty tdWn$tk rT||tYnXYn X||dS)NzCTestResult has no addUnexpectedSuccess method, reporting as failure) addUnexpectedSuccessr_rYrZrrrrr )rrrr r r_addUnexpectedSuccesshs  zTestCase._addUnexpectedSuccessNc Cs|}|dkr.|}t|dd}|dk r.|||t||j}t|jdds^t|ddrz,t|jddpxt|dd}||||Wd||XdSt|dd}t|dd}|p|}t|} z| |_| || WdQRX| j r<|| _ | j |dd |WdQRXd| _ | || WdQRX|x"| jD]\} } ||| | qLW||| j| j r|r| jr||| jn ||n |||S|||dkrt|d d} | dk r| | jd| _d|_XdS) N startTestRunr1Fr2r9T)r" stopTestRun)rrwZ startTestrrrZstopTestrrr$rrrr doCleanupsrrrrrrrclear) rrZ orig_resultrrZskip_whyZexpecting_failure_methodZexpecting_failure_classroutcomerr+rr r rrunwsh               z TestCase.runc CsN|jp t}x:|jrF|j\}}}|||||WdQRXqW|jS)N)rrrr\r$r)rrrr)r*r r rrs   zTestCase.doCleanupscOs |j||S)N)r)rr)kwdsr r r__call__szTestCase.__call__cCsJ|t||j|x&|jrD|jd\}}}|||q WdS)N)rrwrrrr\)rrr)r*r r rdebugs zTestCase.debugcCs t|dS)N)r )rr+r r rskipTestszTestCase.skipTestcCs||dS)N)rE)rrDr r rfailsz TestCase.failcCs&|r"||dt|}||dS)Nz%s is not false)rCrrE)rexprrDr r r assertFalseszTestCase.assertFalsecCs&|s"||dt|}||dS)Nz%s is not true)rCrrE)rrrDr r r assertTrueszTestCase.assertTruecCsP|js|p |S|dkr|Sy d||fStk rJdt|t|fSXdS)Nz%s : %s) longMessageUnicodeDecodeErrorr)rrDrFr r rrCs  zTestCase._formatMessagecOs$t||}z|d||Sd}XdS)N assertRaises)rbra)rexpected_exceptionr)r*contextr r rrs zTestCase.assertRaisescOst||}|d||S)N assertWarns)rpra)rexpected_warningr)r*rr r rrs zTestCase.assertWarnscCs t|||S)N)r)rrrr r r assertLogs>szTestCase.assertLogscCsFt|t|kr@|jt|}|dk r@t|trs zTestCase.assertListEqualcCs|j|||tddS)N)r)rr>)rZtuple1Ztuple2rDr r rrJs zTestCase.assertTupleEqualc Cshy||}Wn^tk r>}z|d|Wdd}~XYn0tk rl}z|d|Wdd}~XYnXy||}Wn^tk r}z|d|Wdd}~XYn0tk r}z|d|Wdd}~XYnX|s|sdSg}|r|dx|D]}|t|qW|rH|dx|D]}|t|q0Wd|} |||| dS)Nz/invalid type when attempting set difference: %sz2first argument does not support set difference: %sz3second argument does not support set difference: %sz*Items in the first set but not the second:z*Items in the second set but not the first:r) differencerWrr_rreprrrC) rZset1Zset2rDZ difference1r#Z difference2linesitemrFr r rrUs2        zTestCase.assertSetEqualcCs2||kr.dt|t|f}||||dS)Nz%s not found in %s)rrrC)rmember containerrDrFr r rassertIns zTestCase.assertIncCs2||kr.dt|t|f}||||dS)Nz%s unexpectedly found in %s)rrrC)rrrrDrFr r r assertNotIns zTestCase.assertNotIncCs2||k r.dt|t|f}||||dS)Nz %s is not %s)rrrC)rexpr1expr2rDrFr r rassertIss zTestCase.assertIscCs,||kr(dt|f}||||dS)Nzunexpectedly identical: %s)rrrC)rrrrDrFr r r assertIsNotszTestCase.assertIsNotc Cs~||td||td||krzdt||}ddtt|t|}| ||}| | ||dS)Nz"First argument is not a dictionaryz#Second argument is not a dictionaryz%s != %sr) assertIsInstancerrrr r r r r rrrC)rZd1Zd2rDrFrr r rrs   zTestCase.assertDictEqualc Cstdtg}g}xX|D]L\}}||kr:||q|||kr|dt|t|t||fqW|sz|szdSd}|rdddd|D}|r|r|d7}|d d|7}||||dS) Nz&assertDictContainsSubset is deprecatedz%s, expected: %s, actual: %srz Missing: %s,css|]}t|VqdS)N)r)r;rr r rr=sz4TestCase.assertDictContainsSubset..z; zMismatched values: %s) rYrZr[itemsrrrrrC) rZsubsetZ dictionaryrDmissingZ mismatchedkeyvaluerFr r rassertDictContainsSubsets,     z!TestCase.assertDictContainsSubsetc Cst|t|}}yt|}t|}Wntk rHt||}YnX||krVdSt||}|rd}dd|D}d|} ||| }|||}| |dS)NzElement counts were not equal: cSsg|] }d|qS)z First has %d, Second has %d: %rr )r;rr r r sz-TestCase.assertCountEqual..r) rt collectionsCounterrWrrrrrCr) rrrrDZ first_seqZ second_seqZ differencesrFrrr r rassertCountEquals      zTestCase.assertCountEqualcCs||td||td||krt||jks@t||jkrN|||||jdd}|jdd}t|dkr|d|kr|dg}|dg}dt||}dd t ||}| ||}| | ||dS) NzFirst argument is not a stringzSecond argument is not a stringT)keependsrz rz%s != %sr)r!rr_diffThresholdrr rrrr r rrrC)rrrrDZ firstlinesZ secondlinesrFrr r rrs     zTestCase.assertMultiLineEqualcCs2||ks.dt|t|f}||||dS)Nz%s not less than %s)rrrC)rabrDrFr r r assertLessszTestCase.assertLesscCs2||ks.dt|t|f}||||dS)Nz%s not less than or equal to %s)rrrC)rr.r/rDrFr r rassertLessEqualszTestCase.assertLessEqualcCs2||ks.dt|t|f}||||dS)Nz%s not greater than %s)rrrC)rr.r/rDrFr r r assertGreaterszTestCase.assertGreatercCs2||ks.dt|t|f}||||dS)Nz"%s not greater than or equal to %s)rrrC)rr.r/rDrFr r rassertGreaterEqual szTestCase.assertGreaterEqualcCs,|dk r(dt|f}||||dS)Nz%s is not None)rrrC)rr'rDrFr r r assertIsNoneszTestCase.assertIsNonecCs"|dkrd}||||dS)Nzunexpectedly None)rrC)rr'rDrFr r rassertIsNotNoneszTestCase.assertIsNotNonecCs0t||s,dt||f}||||dS)Nz%s is not an instance of %r)r-rrrC)rr'rrDrFr r rr!s zTestCase.assertIsInstancecCs0t||r,dt||f}||||dS)Nz%s is an instance of %r)r-rrrC)rr'rrDrFr r rassertNotIsInstance$s zTestCase.assertNotIsInstancecOst|||}|d||S)NassertRaisesRegex)rbra)rrrSr)r*rr r rr7*s zTestCase.assertRaisesRegexcOst|||}|d||S)NassertWarnsRegex)rpra)rrrSr)r*rr r rr8:s zTestCase.assertWarnsRegexcCsJt|ttfrt|}||sFd|j|f}|||}||dS)Nz&Regex didn't match: %r not found in %r) r-rbytesrQrRrhrirCrE)rtextrSrDrFr r r assertRegexMs    zTestCase.assertRegexcCs`t|ttfrt|}||}|r\d||||j|f}| ||}| |dS)Nz"Regex matched: %r matches %r in %r) r-rr9rQrRrhstartendrirCrE)rr:Zunexpected_regexrDmatchrFr r rassertNotRegexYs   zTestCase.assertNotRegexcsfdd}|S)Ncs tdjtd||S)NzPlease use {0} instead.r)rYrZrdr r[)r)r*) original_funcr rdeprecated_funcis z,TestCase._deprecate..deprecated_funcr )r@rAr )r@r _deprecatehs zTestCase._deprecate)r)N)N)N)N)NN)N)N)N)NNN)NNN)NN)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)\r r r AssertionErrorrErrr-Z_classSetupFailedrrrrr classmethodrrrrrrrrrrrr%r&_subtest_msg_sentinelrrrrrrrrrrrrrCrrrrrrrrrrrrrrrrrr rr'r+rr0r1r2r3r4r5r!r6r7r8r;r?rBZfailUnlessEqualZ assertEqualsZ failIfEqualZassertNotEqualsZfailUnlessAlmostEqualZassertAlmostEqualsZfailIfAlmostEqualZassertNotAlmostEqualsZ failUnlessZassert_ZfailUnlessRaisesZfailIfZassertRaisesRegexpZassertRegexpMatchesZassertNotRegexpMatchesr r r rrs!        E     !     , " c +      !               rcsfeZdZdfdd ZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ Z S)FunctionTestCaseNcs*tt|||_||_||_||_dS)N)superrFr _setUpFunc _tearDownFunc _testFunc _description)rZtestFuncrr description)rr rrs zFunctionTestCase.__init__cCs|jdk r|dS)N)rH)rr r rrs zFunctionTestCase.setUpcCs|jdk r|dS)N)rI)rr r rrs zFunctionTestCase.tearDowncCs |dS)N)rJ)rr r rrszFunctionTestCase.runTestcCs|jjS)N)rJr )rr r rrszFunctionTestCase.idcCs@t||jstS|j|jko>|j|jko>|j|jko>|j|jkS)N)r-rrrHrIrJrK)rrr r rrs     zFunctionTestCase.__eq__cCstt||j|j|j|jfS)N)rr.rHrIrJrK)rr r rrszFunctionTestCase.__hash__cCsdt|j|jjfS)Nz%s (%s))rrrJr )rr r rrs zFunctionTestCase.__str__cCsdt|j|jfS)Nz <%s tec=%s>)rrrJ)rr r rrs zFunctionTestCase.__repr__cCs2|jdk r|jS|jj}|r.|ddp0dS)Nrr)rKrJrrr)rrr r rrs z!FunctionTestCase.shortDescription)NNN)r r r rrrrrrrrrr __classcell__r r )rrrF~s  rFcsDeZdZfddZddZddZddZd d Zd d ZZ S) rcs(t||_||_||_|j|_dS)N)rGr_messager!rrE)rr!r|r)rr rrs  z_SubTest.__init__cCs tddS)Nzsubtests cannot be run directly)r)rr r rrsz_SubTest.runTestcCs^g}|jtk r |d|j|jrPddd|jD}|d|d|p\dS)Nz[{}]z, css|]\}}d||VqdS)z{}={!r}N)rd)r;rr{r r rr=sz+_SubTest._subDescription..z({}) z ())rNrErrdrrr#)rpartsZ params_descr r r_subDescriptions z_SubTest._subDescriptioncCsd|j|S)Nz{} {})rdr!rrQ)rr r rrsz _SubTest.idcCs |jS)N)r!r)rr r rrsz_SubTest.shortDescriptioncCsd|j|S)Nz{} {})rdr!rQ)rr r rrsz_SubTest.__str__) r r r rrrQrrrrMr r )rrrs   r)2rr/r rIrr rQrYr)r%rerrutilrrrrrZ __unittestobjectrErrLr rrrr(r5r7r8rr:rBrKrOrPrbrp namedtuplerrrrChainMaprrrFrr r r rs^ (  /%5 , :