a 5dg@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@Z4dAdBZ5e6dCkrdDej7vre5dEne4dS)F)supportNcCs||SNvrr-/usr/local/lib/python3.9/test/test_doctest.py sample_funcs rc@s^eZdZddZddZddZddZeeZd d Ze eZe ed d Z Gd ddZ dS) 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 )docc@s&eZdZd ddZddZddZdS) zSampleClass.NestedClassrcCs ||_dSrr r rrrrgsz SampleClass.NestedClass.__init__cCst|j|jSr)r NestedClassr rrrrsquaremszSampleClass.NestedClass.squarecCs|jSrr rrrrroszSampleClass.NestedClass.getN)r)__name__ __module__ __qualname__rrrrrrrr`s rN) rrrrrrr staticmethodr classmethodpropertyZ a_propertyrrrrrr $s r c@s$eZdZddZddZddZdS)SampleNewStyleClasscCs ||_dSrr r rrrryszSampleNewStyleClass.__init__cCst|j|jSr)r r rrrrrszSampleNewStyleClass.doublecCs|jSrr rrrrrszSampleNewStyleClass.getN)rrrrrrrrrrr rsr 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_DocTestr)r*c@s"eZdZddZejrddZdS)test_DocTestFindercCsdSrrrrrrbasicsr)ztest_DocTestFinder.basicscCsdSrrrrrrnon_Python_modulesr)z%test_DocTestFinder.non_Python_modulesN)rrrr,int__doc__r-rrrrr+snr+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)rrrr?rrrrr0sr0cCsdSrrrrrrtest_DocTestParserr)r@c@s<eZdZddZddZddZddZd d Zd d Zd S)test_DocTestRunnercCsdSrrrrrrr,r)ztest_DocTestRunner.basicscCsdSrrrrrr verbose_flagAr)ztest_DocTestRunner.verbose_flagcCsdSrrrrrr exceptionsr)ztest_DocTestRunner.exceptionscCsdSrrrrrr displayhookrr)ztest_DocTestRunner.displayhookcCsdSrrrrrr optionflagsr)ztest_DocTestRunner.optionflagscCsdSrrrrrroption_directives@r)z$test_DocTestRunner.option_directivesN) rrrr,rBrCrDrErFrrrrrAs=Co4rAcCsdSrrrrrrtest_testsourcer)rGcCsdSrrrrrr test_debug@r)rHgettracecCsdSrrrrrrtest_pdb_set_trace_srJcCsdSrrrrrrtest_pdb_set_trace_nestedsrKcCsdSrrrrrrtest_DocTestSuite;srLcCsdSrrrrrrtest_DocFileSuitesrMcCsdSrrrrrrtest_trailing_space_in_testV srNc@seZdZddZddZdS)WrappercCs||_t||dSr)func functoolsupdate_wrapper)r rPrrrr` szWrapper.__init__cOs|j|i|dSr)rP)r argskwargsrrr__call__d szWrapper.__call__N)rrrrrUrrrrrO_ srOcCsdSrrrrrrtest_look_in_unwrappedg srVcCsdSrrrrrrtest_unittest_reportflagsp srWcCsdSrrrrrr test_testfile r)rXc@seZdZdddZddZdS) TestImporterNcCstjj|||dS)N)loader)r9utilspec_from_file_location)r fullnamer4targetrrr find_specq szTestImporter.find_speccCs8t|dd}|WdS1s*0YdS)Nrb)mode)openread)r r4frrrget_datat szTestImporter.get_data)N)rrrr_rerrrrrYo s rYc@seZdZddZddZdS)TestHookcCsltjdd|_tjdd|_tjdd|_tj|tjtj |_ t |_ tj|j dSr) r7r4sys_path meta_path path_hooksr8path_importer_cacheclearmodulescopymodules_beforerYZimporter)r pathdirrrrrz s   zTestHook.__init__cCsV|jtjdd<|jtjdd<|jtjdd<tjtjtj|j dSr) rgr7r4rhrirjrkrlupdaternrrrrremove s   zTestHook.removeN)rrrrrqrrrrrfx s rfccs*t|}z|VW|n |0dSr)rfrq)rohookrrr test_hook srscCsdSrrrrrrtest_lineendings r)rtcCsdSrrrrrr test_testmod r)ruufoo-bär@baz.pycCsdSrrrrrr test_unicode r)rvcCsdSrrrrrrtest_CLI r)rwcCsdSrrrrrr%test_no_trailing_whitespace_stripping srxcCs6tjtdd}ddlm}tj|ddttdS)NT) verbosityr) test_doctest)rZ run_doctestr;testrzZ run_unittestr)retrzrrr test_main s r}cCsPtd}|jtjtjgddd}|d|}td|j dd|ddS) Ntracerr)Z ignoredirsr~countz test_main()zWriting coverage results...T)Z show_missingZsummarycoverdir) rr:ZTracer7 base_prefixbase_exec_prefixrunresultsr%Z write_results)rr~Ztracerrrrr test_coverage& s  r__main__z-cz/tmp/doctest.cover)8r{rr;rQr3r7r9 importlib.abcimportlib.utilZunittestr1shutil contextlibrr objectr r!r(r*r+ZTestCaser0r@rArGrHhasattrrIrJrKrLrMrNrOrVrWrXabcMetaPathFinderResourceLoaderrYrfcontextmanagerrsrtrufsencodeUnicodeEncodeErrorrvrwrxr}rrargvrrrrs   N y7(Vu'  O1  H d-