a  ze{$@sddlmZddlmZedZddlmZddlZddlZddl Z Gdddej Z ej e ed \Z ZGd d d ej Z ej e ed \ZZGd d d Zej eed \ZZedkredS))abc)utilzimportlib.machinery)captured_stdoutNc@sHeZdZddZddZddZddZd d Zd d Zd Z ddZ d S)ExecModuleTestsc Cst|t}|jj||jjd|jj|d}t|}||_ t |drTJ|jj || |j | t |d||j jd||fWdWdS1s0YWdn1s0YdS)Nfrozen)origin is_package initialized__spec__)runcacher machinery ModuleSpecFrozenImporterr types ModuleTyper hasattr exec_module assertTruer assertEqualrgetvalue)selfnamestdoutspecmodulerZ/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_importlib/frozen/test_loader.pyrs    zExecModuleTests.exec_modulecCs^d}||\}}d|i}|D]\}}|t|||q"||d|t|ddS)N __hello____name__ Hello world! r )ritemsrgetattrrr)rrroutputcheckattrvaluerrr test_modules zExecModuleTests.test_modulec Csbd}||\}}d|i}|D].\}}t||}|||dj||||dq"||ddS)N __phello__rz,for {name}.{attr}, {given!r} != {expected!r}rr%ZgivenZexpectedr )rr!r"rformatrrrr#r$r%r& attr_valuerrr test_package%s zExecModuleTests.test_packagec Csd}tdj||\}}d|i}|D].\}}t||}|||dj||||dq.||dWdn1s~0YdS)N__phello__.spamr(rz*for {name}.{attr}, {given} != {expected!r}r)r )rr rr!r"rr*r+rrrtest_lacking_parent1s  z#ExecModuleTests.test_lacking_parentcCsdd}||\}}t*tdt|jj|}Wdn1sJ0Y||ddSNrignore) rwarningscatch_warnings simplefilterDeprecationWarningr r module_reprr)rrrr#repr_strrrrtest_module_repr>s  ,z ExecModuleTests.test_module_reprcCs&d}||\}}|t|ddSNrr2)rrrepr)rrrr#rrrtest_module_repr_indirectGs  z)ExecModuleTests.test_module_repr_indirectNcCs^|jjddusJ|t}|dWdn1s@0Y||jjddSNZ _not_real) r r find_module assertRaises ImportErrorrr exceptionrrcmrrrtest_unloadablePs (zExecModuleTests.test_unloadable) r __module__ __qualname__rr'r-r/r9r<test_state_after_failurerDrrrrr s    r)r c@sHeZdZddZddZddZddZd d Zd d Zd Z ddZ d S) LoaderTestsc Cstdt}t*tdt|jj d}Wdn1sL0Ydd|jjd}| D]\}}| t |||qn| | d|t|dWdn1s0YWdn1s0YdS)Nrr1r __package__ __loader__r __file__)rr rr3r4r5r6r r load_moduler!rr"r assertFalser)rrrr$r%r&rrrr'^s  ,zLoaderTests.test_modulec Cstdt}t*tdt|jj d}Wdn1sL0Yddg|jjd}| D]*\}}t ||}| ||d|||fqp| | d|t|dWdn1s0YWdn1s0YdS)Nr(r1)rrK__path__rLzfor __phello__.%s, %r != %rr rMrr rr3r4r5r6r rrNr!r"rrrOrrrrr$r%r&r,rrrr-ls$  , zLoaderTests.test_packagec Cstddt}t*tdt|jj d}Wdn1sN0Ydd|jjd}| D]*\}}t ||}| ||d|||fqp| | d|t|dWdn1s0YWdn1s0YdS)Nr(r.r1rJz for __phello__.spam.%s, %r != %rr rMrQrRrrrr/~s(  , zLoaderTests.test_lacking_parentc Cstdt|}t8tdt|jj d}|jj d}Wdn1sZ0Y| ||| | dWdn1s0YWdn1s0YdS)Nrr1zHello world! Hello world! ) rr rr3r4r5r6r rrNZassertIsrr)rrZmodule1Zmodule2rrrtest_module_reuses  ,  zLoaderTests.test_module_reusec Cstdtlt8tdt|jj d}|jj |}Wdn1sZ0Y| |dWdn1s0YWdn1s0YdSr0) rr rr3r4r5r6r rrNr7r)rrr8rrrr9s  ,zLoaderTests.test_module_reprc CsrtdDt|jjd}Wdn1s60YWdn1sT0Y|t|ddSr:)rr rr rrNrr;)rrrrrr<s J z%LoaderTests.test_module_repr_indirectNcCsb|jjddusJ|t}|jjdWdn1sD0Y||jjddSr=) r rr>r?r@rNrrArrBrrrrDs ,zLoaderTests.test_unloadable) rrErFr'r-r/rSr9r<rGrDrrrrrH\s  rHc@s0eZdZdZddZddZddZdd Zd S) InspectLoaderTestsz7Tests for the InspectLoader methods for FrozenImporter.cCsrd}tT}|jj|}t|}t||j|t |d| | dWdn1sd0YdS)Nrr r ) rr rget_coderrexec__dict__rrrr)rrrcodemodrrr test_get_codes  z InspectLoaderTests.test_get_codecCs|jjd}||dS)Nr)r r get_sourceZ assertIsNone)rresultrrrtest_get_sourcesz"InspectLoaderTests.test_get_sourcecCs4d}|D]&\}}|jj|}|t||qdS)N))rF)r(T)r.F)r rr rbool)rZtest_forrr r\rrrtest_is_packages z"InspectLoaderTests.test_is_packagec Cs^dD]T}t|jj|}|t}|dWdn1s>0Y||jjdqdS)N)rUr[r importlib)r"r rr?r@rrAr)rZ meth_namemethodrCrrr test_failures  &zInspectLoaderTests.test_failureN)rrErF__doc__rZr]r_rbrrrrrTs  rT__main__)rIrrZimport_importlibr Z test.supportrrZunittestr3rHrZ test_bothZFrozen_ExecModuleTestsZSource_ExecModuleTestsZFrozen_LoaderTestsZSource_LoaderTestsrTZFrozen_ILTestsZSource_ILTestsrmainrrrrs(    M Y %