a ze@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddZ GdddZGdddeZGd d d Zd d Zd dZGdddZGddde jZddZGdddZddZddZeedresddZddZd d!Zd"d#Z d$d%Z!Gd&d'd'Z"e"d(d)Z#d*d+Z$d,d-Z%Gd.d/d/ej&j'ej&j(Z)Gd0d1d1Z*e j+d2d3Z,d4d5Z-d6d7Z.ze/d8Wne0yYn 0d9d:Z1d;d<Z2d=d>Z3d?d@Z4dAdBZ5e6dCkrdDej7vre5dEne 8dS)F)supportNcCs||SNvrrE/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_doctest.py sample_funcs rc@sreZdZddZddZddZddZeeZd d Ze eZe ed d Z d Z e e ddZ GdddZdS) SampleClasscCs ||_dSrvalselfr rrr__init__4szSampleClass.__init__cCst|j|jSr)r r r rrrdouble;szSampleClass.doublecCs|jSrr rrrrgetBszSampleClass.getcCs|dS)Nrrrrra_staticmethodIszSampleClass.a_staticmethodcCs|dS)Nr)clsrrrr a_classmethodQszSampleClass.a_classmethodzB >>> print(SampleClass(22).a_property) 22 )doc*cCs|jSr)a_class_attribute)rrrra_classmethod_propertybsz"SampleClass.a_classmethod_propertyc@s&eZdZd ddZddZddZdS) zSampleClass.NestedClassrcCs ||_dSrr r rrrrrsz SampleClass.NestedClass.__init__cCst|j|jSr)r NestedClassr rrrrsquarexszSampleClass.NestedClass.squarecCs|jSrr rrrrrzszSampleClass.NestedClass.getN)r)__name__ __module__ __qualname__rrrrrrrrks rN)rrrrrrr staticmethodr classmethodpropertyZ a_propertyrrrrrrrr $s  r c@s$eZdZddZddZddZdS)SampleNewStyleClasscCs ||_dSrr r rrrrszSampleNewStyleClass.__init__cCst|j|jSr)r#r rrrrrszSampleNewStyleClass.doublecCs|jSrr rrrrrszSampleNewStyleClass.getN)rrrrrrrrrrr#}sr#c@seZdZddZddZdS) _FakeInputcCs ||_dSr)lines)r r%rrrrsz_FakeInput.__init__cCs|jd}t||dS)Nr )r%popprint)r linerrrreadlines z_FakeInput.readlineN)rrrrr*rrrrr$sr$cCsdSrrrrrr test_Exampler+cCsdSrrrrrr test_DocTest)r,r-c@s"eZdZddZejrddZdS)test_DocTestFindercCsdSrrrrrrbasicsr,ztest_DocTestFinder.basicscCsdSrrrrrrnon_Python_modulesr,z%test_DocTestFinder.non_Python_modulesN)rrrr/int__doc__r0rrrrr.srr.c@seZdZddZdS)TestDocTestFinderc Csd}t}tj||}t|tj|z"t |}Wt |tj nt |tj 0t jdd}t jdd}|t||d|t||dWdn1s0YdS)NZdoctest_empty_pkgF)Z exclude_emptyTrr)tempfileTemporaryDirectoryospathjoinmkdirsysappend importlib import_modulerZforgetr'doctestZ DocTestFinderZ assertEquallenfind)r Zpkg_nameZ parent_dirZpkg_dirmodZinclude_empty_finderZexclude_empty_finderrrrtest_empty_namespace_packages         z.TestDocTestFinder.test_empty_namespace_packageN)rrrrBrrrrr3sr3cCsdSrrrrrrtest_DocTestParserr,rCc@s<eZdZddZddZddZddZd d Zd d Zd S)test_DocTestRunnercCsdSrrrrrrr/r,ztest_DocTestRunner.basicscCsdSrrrrrr verbose_flagPr,ztest_DocTestRunner.verbose_flagcCsdSrrrrrr exceptionsr,ztest_DocTestRunner.exceptionscCsdSrrrrrr displayhookr,ztest_DocTestRunner.displayhookcCsdSrrrrrr optionflagsr,ztest_DocTestRunner.optionflagscCsdSrrrrrroption_directivesOr,z$test_DocTestRunner.option_directivesN) rrrr/rErFrGrHrIrrrrrDs=Co4rDcCsdSrrrrrrtest_testsource'r,rJcCsdSrrrrrr test_debugOr,rKgettracecCsdSrrrrrrtest_pdb_set_tracensrMcCsdSrrrrrrtest_pdb_set_trace_nestedsrNcCsdSrrrrrrtest_DocTestSuiteJsrOcCsdSrrrrrrtest_DocFileSuitesrPcCsdSrrrrrrtest_trailing_space_in_teste srQc@seZdZddZddZdS)WrappercCs||_t||dSr)func functoolsupdate_wrapper)r rSrrrro szWrapper.__init__cOs|j|i|dSr)rS)r argskwargsrrr__call__s szWrapper.__call__N)rrrrrXrrrrrRn srRcCsdSrrrrrrtest_look_in_unwrappedv srYcCsdSrrrrrrtest_unittest_reportflags srZcCsdSrrrrrr test_testfile r,r[c@seZdZdddZddZdS) TestImporterNcCstjj|||dS)N)loader)r<utilspec_from_file_location)r fullnamer7targetrrr find_spec szTestImporter.find_speccCs8t|dd}|WdS1s*0YdS)Nrb)mode)openread)r r7frrrget_data szTestImporter.get_data)N)rrrrbrhrrrrr\~ s r\c@seZdZddZddZdS)TestHookcCsltjdd|_tjdd|_tjdd|_tj|tjtj |_ t |_ tj|j dSr) r:r7sys_path meta_path path_hooksr;path_importer_cacheclearmodulescopymodules_beforer\Zimporter)r pathdirrrrr s   zTestHook.__init__cCsV|jtjdd<|jtjdd<|jtjdd<tjtjtj|j dSr) rjr:r7rkrlrmrnroupdaterqrrrrremove s   zTestHook.removeN)rrrrrtrrrrri s riccs*t|}z|VW|n |0dSr)rirt)rrhookrrr test_hook srvcCsdSrrrrrrtest_lineendings r,rwcCsdSrrrrrr test_testmod r,rxufoo-bär@baz.pycCsdSrrrrrr test_unicode r,rycCsdSrrrrrrtest_CLI r,rzcCsdSrrrrrr%test_no_trailing_whitespace_stripping sr{cCs"|tt|t|Sr)ZaddTestr>Z DocTestSuite)r]Ztestspatternrrr load_tests& sr}cCsPtd}|jtjtjgddd}|d|}td|j dd|ddS) Ntracerr)Z ignoredirsr~countz test_main()zWriting coverage results...T)Z show_missingZsummarycoverdir) rr=ZTracer: base_prefixbase_exec_prefixrunresultsr(Z write_results)rr~Ztracerrrrr test_coverage, s  r__main__z-cz/tmp/doctest.cover)9testrr>rTr6r:r< importlib.abcimportlib.utilZunittestr4shutil contextlibrr objectr#r$r+r-r.ZTestCaser3rCrDrJrKhasattrrLrMrNrOrPrQrRrYrZr[abcMetaPathFinderResourceLoaderr\ricontextmanagerrvrwrxfsencodeUnicodeEncodeErrorryrzr{r}rrargvmainrrrrs   Y y7(Vu'  O1  H d*