a 7êdg¯Šã@sØddlmZe d¡Ze d¡Ze d¡Ze d¡ZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlZddlZddlZddlZGd d „d ƒZejeed\ZZGd d „d ƒZejeeeed \ZZGdd„dƒZejeed\ZZGdd„dƒZejeed\ZZGdd„dƒZ eje ed\Z!Z"Gdd„dƒZ#eje#ed\Z$Z%Gdd„dƒZ&eje&eeed\Z'Z(Gdd„dƒZ)eje)ed\Z*Z+Gdd„dƒZ,eje,ed\Z-Z.Gdd„dej/ƒZ)e0dkrÔe 1¡dS)é)Úutilz importlib.abcÚ importlibzimportlib.machineryzimportlib.utiléN)Úsupportc@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚDecodeSourceBytesTestsu string ='ü'cCs&|j d¡}| |j |¡|j¡dS)Núutf-8©ÚsourceÚencodeÚ assertEqualrÚ decode_source)ÚselfÚ source_bytes©rú9/usr/local/lib/python3.9/test/test_importlib/test_util.pyÚtest_ut8_defaults z'DecodeSourceBytesTests.test_ut8_defaultcCs,d|j}| d¡}| |j |¡|¡dS)Nz# coding=latin-1 zlatin-1r©r r rrrrÚtest_specified_encodings  z.DecodeSourceBytesTests.test_specified_encodingcCsBd |j|jg¡}| d¡}| |j |¡d |j|jg¡¡dS)Nz rÚ )Újoinr r r rr rrrrÚtest_universal_newlines!s  ÿz.DecodeSourceBytesTests.test_universal_newlinesN)Ú__name__Ú __module__Ú __qualname__r rrrrrrrrsrc@s\eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dS)ÚModuleFromSpecTestscCsXGdd„dƒ}|j d|ƒ¡}| t¡|j |¡}Wdƒn1sJ0YdS)Nc@seZdZdd„ZdS)z9ModuleFromSpecTests.test_no_create_module..LoadercSsdS©Nr©r ÚmodulerrrÚ exec_module1szEModuleFromSpecTests.test_no_create_module..Loader.exec_moduleN)rrrrrrrrÚLoader0srÚtest)Ú machineryÚ ModuleSpecÚ assertRaisesÚ ImportErrorrÚmodule_from_spec©r rÚspecrrrrÚtest_no_create_module/s z)ModuleFromSpecTests.test_no_create_modulecCsRGdd„d|jjƒ}|j d|ƒ¡}|j |¡}| |tj¡|  |j |j ¡dS)Nc@seZdZdd„ZdS)zCModuleFromSpecTests.test_create_module_returns_None..LoadercSsdSrr)r r'rrrÚ create_module9szQModuleFromSpecTests.test_create_module_returns_None..Loader.create_moduleN©rrrr)rrrrr8srr ) Úabcrr!r"rr%ÚassertIsInstanceÚtypesÚ ModuleTyper rÚnamer&rrrÚtest_create_module_returns_None7s  z3ModuleFromSpecTests.test_create_module_returns_Nonecsjd‰Gdd„dtjƒ‰G‡‡fdd„d|jjƒ}|j d|ƒ¡}|j |¡}| |ˆ¡|  |j ˆ¡dS)Nz already setc@s eZdZdS)z.CustomModuleN)rrrrrrrÚ CustomModuleBsr1cseZdZ‡‡fdd„ZdS)z6ModuleFromSpecTests.test_create_module..Loadercsˆ|jƒ}ˆ|_|Sr)r/r©r r'r©r1r/rrr)Es zDModuleFromSpecTests.test_create_module..Loader.create_moduleNr*rr3rrrDsrr ) r-r.r+rr!r"rr%r,r rr&rr3rÚtest_create_module@s  z&ModuleFromSpecTests.test_create_modulecCs0|j dtƒ¡}|j |¡}| |j|j¡dS©Nr )r!r"Úobjectrr%r rr/r2rrrÚ test___name__Ns z!ModuleFromSpecTests.test___name__cCs.|j dtƒ¡}|j |¡}| |j|¡dSr5)r!r"r6rr%r Ú__spec__r2rrrÚ test___spec__Ss z!ModuleFromSpecTests.test___spec__cCs2tƒ}|j d|¡}|j |¡}| |j|¡dSr5)r6r!r"rr%ÚassertIsÚ __loader__)r Úloaderr'rrrrÚtest___loader__Xs z#ModuleFromSpecTests.test___loader__cCs0|j dtƒ¡}|j |¡}| |j|j¡dS)Nztest.pkg)r!r"r6rr%r Ú __package__Úparentr2rrrÚtest___package__^s z$ModuleFromSpecTests.test___package__cCs4|jjdtƒdd}|j |¡}| |j|j¡dS)Nr T)Ú is_package)r!r"r6rr%r Ú__path__Úsubmodule_search_locationsr2rrrÚ test___path__cs z!ModuleFromSpecTests.test___path__cCs:|jjdtƒdd}d|_|j |¡}| |j|j¡dS)Nr ú some/path)ÚoriginT) r!r"r6Ú has_locationrr%r Ú__file__rFr2rrrÚ test___file__hs z!ModuleFromSpecTests.test___file__cCs<|j dtƒ¡}d|_d|_|j |¡}| |j|j¡dS)Nr rET) r!r"r6ÚcachedrGrr%r Ú __cached__r2rrrÚtest___cached__ns  z#ModuleFromSpecTests.test___cached__N) rrrr(r0r4r7r9r=r@rDrIrLrrrrr-s r)r+r!rc@sheZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„ZdS)ÚModuleForLoaderTestscCsDt ¡(t dt¡|j |¡WdƒS1s60YdS)NÚignore)ÚwarningsÚcatch_warningsÚ simplefilterÚDeprecationWarningrÚmodule_for_loader)ÚclsÚfuncrrrrSs  z&ModuleForLoaderTests.module_for_loaderc Csrt ¡Vt dt¡| t¡ |j dd„¡}Wdƒn1sF0YWdƒn1sd0YdS)NÚerrorcSs|Srr)ÚxrrrÚŠóz3ModuleForLoaderTests.test_warning..)rOrPrQrRr#rrS)r rUrrrÚ test_warning…s   z!ModuleForLoaderTests.test_warningcCs| dd„¡}|||ƒS)NcSs|SrrrrrrrXrYz4ModuleForLoaderTests.return_module..)rS)r r/ÚfxnrrrÚ return_moduleŒsz"ModuleForLoaderTests.return_modulecCs8dd„}| |¡}z|||ƒWnty2Yn0dS)NcSst‚dSr)r$rrrrÚto_wrap‘sz5ModuleForLoaderTests.raise_exception..to_wrap)rSr$)r r/r]r[rrrÚraise_exceptions   z$ModuleForLoaderTests.raise_exceptioncCsfd}t |¡(| |¡}| |tj¡Wdƒn1s<0Y| |tj¡|  |j |¡dS©Núa.b.c) rÚuncacher\ÚassertInÚsysÚmodulesr,r-r.r r)r Ú module_namerrrrÚtest_new_module™s   ,z$ModuleForLoaderTests.test_new_modulecs¢G‡fdd„dƒ}d}t d¡}d|_d|_t |¡X|tj|<|ƒ}| |¡}ˆ  |tj|¡ˆ  |j|¡ˆ  |j|¡Wdƒn1s”0YdS)Ncs"eZdZdd„Z”jdd„ƒZdS)z4ModuleForLoaderTests.test_reload..FakeLoadercSsdS)NTr©r r/rrrrA¦sz?ModuleForLoaderTests.test_reload..FakeLoader.is_packagecSs|SrrrrrrÚ load_module¨sz@ModuleForLoaderTests.test_reload..FakeLoader.load_moduleN)rrrrArSrhr©r rrÚ FakeLoader¥srjr`é*) r-r.r;r>rrarcrdrhr:r )r rjr/rr<Zreturned_modulerrirÚ test_reload£s    z ModuleForLoaderTests.test_reloadcCsJd}t |¡(| |¡| |tj¡Wdƒn1s<0YdSr_)rrar^Ú assertNotInrcrdrgrrrÚtest_new_module_failure·s  z,ModuleForLoaderTests.test_new_module_failurecCsbd}t |¡}t |¡6|tj|<| |¡| |tj|¡Wdƒn1sT0YdSr_)r-r.rrarcrdr^r:©r r/rrrrÚtest_reload_failure¿s     z(ModuleForLoaderTests.test_reload_failurecCs6dd„}| |¡}| |j|j¡| |j|j¡dS)NcSsdSrrrrrrr[ÉrYz6ModuleForLoaderTests.test_decorator_attrs..fxn)rSr rr©r r[ÚwrappedrrrÚtest_decorator_attrsÈs z)ModuleForLoaderTests.test_decorator_attrscCsvGdd„dtjƒ}d}||ƒ}t |¡:| |¡|tj|<| |¡}| ||¡Wdƒn1sh0YdS)Nc@seZdZdd„ZdS)z;ModuleForLoaderTests.test_false_module..FalseModulecSsdS)NFrrirrrÚ__bool__ÒrYzDModuleForLoaderTests.test_false_module..FalseModule.__bool__N©rrrrtrrrrÚ FalseModuleÑsrvÚmod) r-r.rraZ assertFalsercrdr\r:)r rvr/rZgivenrrrÚtest_false_moduleÎs    z&ModuleForLoaderTests.test_false_modulecsêG‡fdd„dƒ}d}t |¡L|dƒ}| |¡}ˆ |j|¡ˆ |j|¡ˆ |jd¡Wdƒn1sr0Yd}t |¡L|dƒ}| |¡}ˆ |j|¡ˆ |j|¡ˆ |j|¡Wdƒn1sÜ0YdS)Ncs*eZdZdd„Zdd„Z”jdd„ƒZdS)z.FakeLoadercSs ||_dSr©Z_pkg)r rArrrÚ__init__àszEModuleForLoaderTests.test_attributes_set..FakeLoader.__init__cSs|jSrryrgrrrrAâszGModuleForLoaderTests.test_attributes_set..FakeLoader.is_packagecSs|SrrrrrrrhäszHModuleForLoaderTests.test_attributes_set..FakeLoader.load_moduleN)rrrrzrArSrhrrirrrjßsrjúpkg.modFÚpkgzpkg.subT)rrarhr rr:r;r>)r rjr/r<rrrirÚtest_attributes_setÜs   ,  z(ModuleForLoaderTests.test_attributes_setN)rrrÚ classmethodrSrZr\r^rfrlrnrprsrxr}rrrrrM{s    rMc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚSetPackageTestscst‡fdd„}|j |¡}t ¡"t dt¡|ƒWdƒn1sH0Y| tˆdƒ¡| |ˆj ¡dS)NcsˆSrrr©rrrrXrYz(SetPackageTests.verify..rNr>) rÚ set_packagerOrPrQrRÚ assertTrueÚhasattrr r>)r rÚexpectr[rrrr€rÚverifys    $zSetPackageTests.verifycCs t d¡}d|_| |d¡dS)NrÚ©r-r.r>r…rrrrÚtest_top_level s zSetPackageTests.test_top_levelcCs(t d¡}dg|_d|_| |d¡dS)Nr|z)r-r.rBr>r…rrrrÚ test_packages zSetPackageTests.test_packagecCs t d¡}d|_| |d¡dS)Nr{r|r‡rrrrÚtest_submodules zSetPackageTests.test_submodulecCs.t d¡}t|dƒrt|dƒ| |d¡dS)Nrwr>r†)r-r.rƒÚdelattrr…rrrrÚtest_setting_if_missing!s   z'SetPackageTests.test_setting_if_missingcCs*dD] }t d¡}||_| ||¡qdS)N)TFrwr‡)r ÚvaluerrrrÚtest_leaving_alone(s z"SetPackageTests.test_leaving_alonecCsldd„}t ¡(t dt¡|j |¡}Wdƒn1s>0Y| |j|j¡| |j|j¡dS)NcSsdSrrr€rrrr[0rYz1SetPackageTests.test_decorator_attrs..fxnrN) rOrPrQrRrrr rrrqrrrrs/s   *z$SetPackageTests.test_decorator_attrsN) rrrr…rˆr‰rŠrŒrŽrsrrrrrþs rc@s0eZdZedd„ƒZdd„Zdd„Zdd„Zd S) ÚSetLoaderTestscsG‡fdd„dƒ}|ˆj_|S)NcseZdZ”jjdd„ƒZdS)z/SetLoaderTests.DummyLoader..DummyLoadercSs|jSrr€rrrrrhEsz;SetLoaderTests.DummyLoader..DummyLoader.load_moduleN)rrrrÚ set_loaderrhrrirrÚ DummyLoaderDsr‘)Ú __class__r‘)r r‘rrirr‘AszSetLoaderTests.DummyLoadercCs~| ¡}t d¡|_z |j`Wnty0Yn0t ¡0t dt ¡|  ||  d¡j¡Wdƒn1sp0YdS©NÚblahrN) r‘r-r.rr;ÚAttributeErrorrOrPrQrRr rh©r r<rrrÚtest_no_attributeKs     z SetLoaderTests.test_no_attributecCsh| ¡}t d¡|_d|j_t ¡0t dt¡|  ||  d¡j¡Wdƒn1sZ0YdSr“© r‘r-r.rr;rOrPrQrRr rhr–rrrÚtest_attribute_is_NoneVs    z%SetLoaderTests.test_attribute_is_NonecCsh| ¡}t d¡|_d|j_t ¡0t dt¡|  d|  d¡j¡Wdƒn1sZ0YdS)Nr”rkrNr˜r–rrrÚtest_not_reset^s    zSetLoaderTests.test_not_resetN)rrrÚpropertyr‘r—r™ršrrrrr=s   rc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚResolveNameTestscCs| d|j dd¡¡dS)NÚbacon©r rÚ resolve_namerirrrÚ test_absolutepszResolveNameTests.test_absolutecCs| d|j dd¡¡dS)NrÚspamržrirrrÚtest_absolute_within_packagetsz-ResolveNameTests.test_absolute_within_packagecCs<| t¡|j dd¡Wdƒn1s.0YdS)Nú.baconr†©r#r$rrŸrirrrÚtest_no_packagexs z ResolveNameTests.test_no_packagecCs| d|j dd¡¡dS)Nzspam.eggs.baconr£ú spam.eggsržrirrrÚtest_in_package}s ÿz ResolveNameTests.test_in_packagecCs| d|j dd¡¡dS)Nz spam.baconú..baconr¦ržrirrrÚtest_other_package‚s ÿz#ResolveNameTests.test_other_packagecCs<| t¡|j dd¡Wdƒn1s.0YdS)Nr¨r¡r¤rirrrÚ test_escape‡s zResolveNameTests.test_escapeN) rrrr r¢r¥r§r©rªrrrrrœls rœc@szeZdZGdd„dƒZdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)Ú FindSpecTestsc@seZdZeddd„ƒZdS)zFindSpecTests.FakeMetaFinderNcCs |||fSrr)r/ÚpathÚtargetrrrÚ find_spec•sz&FindSpecTests.FakeMetaFinder.find_spec)NN)rrrÚ staticmethodr®rrrrÚFakeMetaFinder”sr°cCs|d}t |¡Zt |¡}d}|j ||¡}||_||_|tj |<|j  |¡}|  ||¡Wdƒn1sn0YdS©NÚsome_modz a loader!) rrar-r.r!r"r;r8rcrdr®r ©r r/rr<r'ÚfoundrrrÚtest_sys_modules˜s    zFindSpecTests.test_sys_modulescCszd}t |¡Xt |¡}|`d}|j ||¡}||_|tj |<|j  |¡}|  ||¡Wdƒn1sl0YdSr±) rrar-r.r;r!r"r8rcrdr®r r³rrrÚ#test_sys_modules_without___loader__¤s    z1FindSpecTests.test_sys_modules_without___loader__c Cs‚d}t |¡`t |¡}d|_|tj|<| t¡|j  |¡Wdƒn1sV0YWdƒn1st0YdS©Nr²) rrar-r.r8rcrdr#Ú ValueErrorr®rorrrÚtest_sys_modules_spec_is_None°s    z+FindSpecTests.test_sys_modules_spec_is_NonecCsrd}t |¡Pt |¡}|j |d¡}||_|tj|<|j  |¡}|  ||¡Wdƒn1sd0YdSr·) rrar-r.r!r"r8rcrdr®r )r r/rr'r´rrrÚtest_sys_modules_loader_is_None¹s    z-FindSpecTests.test_sys_modules_loader_is_Nonec Cs˜d}t |¡vt |¡}z|`Wnty4Yn0|tj|<| t ¡|j  |¡Wdƒn1sl0YWdƒn1sŠ0YdSr·) rrar-r.r8r•rcrdr#r¸r®rorrrÚ test_sys_modules_spec_is_not_setÃs     z.FindSpecTests.test_sys_modules_spec_is_not_setc Cs|d}t |¡Ztj|jgd*| |ddf|j |¡¡Wdƒn1sP0YWdƒn1sn0YdS)Nr²)Ú meta_path)rraZ import_stater°r r®rgrrrÚ test_successÏs    ÿzFindSpecTests.test_successcCs| |j d¡¡dS)NZnevergoingtofindthismodule)Z assertIsNonerr®rirrrÚ test_nothingÖszFindSpecTests.test_nothingcCs d}d}tj|ddv}t |||¡\}}|j |¡}| |d¡| |ttjƒ¡|  |ttjƒ¡|j |¡}|  ||¡Wdƒn1s’0YdS©Nr¡ÚhamT©r|© rÚ temp_moduleÚ submoduler®Ú assertIsNotrbÚsortedrcrdrmr ©r r/ÚsubnameÚpkg_dirÚfullnameÚ_r'Ú spec_againrrrÚtest_find_submoduleÚs   z!FindSpecTests.test_find_submodulecCs¬d}d}tj|dd‚}|j |¡t |||¡\}}|j |¡}| |d¡| |tt j ƒ¡|  |tt j ƒ¡|j |¡}|  ||¡Wdƒn1sž0YdSr¿) rrÃÚinitÚ import_modulerÄr®rÅrbrÆrcrdrmr rÇrrrÚ+test_find_submodule_parent_already_importedçs    z9FindSpecTests.test_find_submodule_parent_already_importedc Csªd}d}tj|dd€}t |||¡\}}d|}|j ||¡}| |d¡| |ttjƒ¡|  |ttjƒ¡|j |¡}|  ||¡Wdƒn1sœ0YdS©Nr¡rÀTrÁÚ.rÂ) r r/rÈrÉrÊrËÚrelnamer'rÌrrrÚtest_find_relative_moduleõs  z'FindSpecTests.test_find_relative_modulec Cs®d}d}tj|dd„}t |||¡\}}d|}| t¡|j |¡Wdƒn1s^0Y| |ttj ƒ¡| |ttj ƒ¡Wdƒn1s 0YdSrÑ) rrÃrÄr#r$r®rmrÆrcrd)r r/rÈrÉrÊrËrÓrrrÚ)test_find_relative_module_missing_packages *z7FindSpecTests.test_find_relative_module_missing_packagecCs:| t¡|j d¡Wdƒn1s,0YdS)Nz module.name)r#ÚModuleNotFoundErrorrr®rirrrÚtest_find_submodule_in_modules z+FindSpecTests.test_find_submodule_in_moduleN)rrrr°rµr¶r¹rºr»r½r¾rÍrÐrÔrÕr×rrrrr«’s       r«)rÎrr!c@seZdZdd„Zdd„ZdS)ÚMagicNumberTestscCs| t|jjƒd¡dS)Né)r ÚlenrÚ MAGIC_NUMBERrirrrÚ test_lengthszMagicNumberTests.test_lengthcCs| |jj d¡¡dS)Ns )r‚rrÛÚendswithrirrrÚtest_incorporates_rn!sz%MagicNumberTests.test_incorporates_rnN)rrrrÜrÞrrrrrØsrØc@s¨eZdZejjZe ejjdud¡dd„ƒZ dd„Z dd„Z d d „Z d d „Z d d„Zdd„Zdd„Zdd„Zdd„Ze ejdkoŠejdkd¡dd„ƒZe ejjdud¡dd„ƒZe ejjdud¡dd „ƒZd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Z d/d0„Z!d1d2„Z"e ejjdud¡d3d4„ƒZ#e ejjdud¡d5d6„ƒZ$e ejjdud¡d7d8„ƒZ%e ejjdud¡d9d:„ƒZ&e ejjdud¡d;d<„ƒZ'dS)=Ú PEP3147TestsNz1requires sys.implementation.cache_tag not be Nonec CsJtj dddd¡}tj ddddd |j¡¡}| |jj|dd|¡dS© NÚfooÚbarÚbazúqux.pyÚ __pycache__ú qux.{}.pycr†©Ú optimization©Úosr¬rÚformatÚtagr rÚcache_from_source©r r¬r„rrrÚtest_cache_from_source1s ÿÿz#PEP3147Tests.test_cache_from_sourcec Csjt tjdd¡F| t¡|j d¡Wdƒn1s>0YWdƒn1s\0YdS)NÚ cache_tagz whatever.py)rÚ swap_attrrcÚimplementationr#ÚNotImplementedErrorrrírirrrÚ#test_cache_from_source_no_cache_tag<s z0PEP3147Tests.test_cache_from_source_no_cache_tagcCsBtj dd¡}tj ddd |j¡¡}| |jj|dd|¡dS)Nzfoo.barÚfileråz file{}.pycr†rçrérîrrrÚtest_cache_from_source_no_dotBs  ÿÿz*PEP3147Tests.test_cache_from_source_no_dotc Cs2tj dddd¡}t ¡^t d¡| |j |d¡|jj|dd¡| |j |d ¡|jj|d d¡Wdƒn1s~0Yt ¡Œt d ¡|  t ¡|j |d¡Wdƒn1sÊ0Y|  t ¡|j |d ¡Wdƒn1s0YWdƒn1s$0YdS) NrárârãrärNFrrçTr†rV) rêr¬rrOrPrQr rrír#rR©r r¬rrrÚ%test_cache_from_source_debug_overrideJs  ÿÿ"   , z2PEP3147Tests.test_cache_from_source_debug_overridecCs6d}tj dd |j¡¡}| |jj|dd|¡dS©Núfoo.pyråz foo.{}.pycr†rçrérîrrrÚtest_cache_from_source_cwd[s ÿz'PEP3147Tests.test_cache_from_source_cwdc CsÔtj ddd¡}Gdd„dƒ}t ¡št d¡| |j |g¡|jj|dd¡| |j |d g¡|jj|d d¡|  t ¡ |j d |ƒ¡Wdƒn1s¨0YWdƒn1sÆ0YdS) Nrárâzbaz.pyc@seZdZdd„ZdS)z=PEP3147Tests.test_cache_from_source_override..BearishcSst‚dSr)Ú RuntimeErrorrirrrrthrYzFPEP3147Tests.test_cache_from_source_override..Bearish.__bool__NrurrrrÚBearishgsrýrNrrçér†z/foo/bar/baz.py) rêr¬rrOrPrQr rrír#rü)r r¬rýrrrÚtest_cache_from_source_overrideas  ÿÿ z,PEP3147Tests.test_cache_from_source_overridecCs6d}tj dd |j¡¡}| |jj|dd|¡dSrùrérîrrrÚ0test_cache_from_source_optimization_empty_stringss ÿz=PEP3147Tests.test_cache_from_source_optimization_empty_stringcCs|d}tjj}tj dd |j¡¡}|dkr4|d}n,|dkrL|d |¡}nd |¡}| |¡|  |j j |dd |¡dS) Nrúråúfoo.{}rú.pycéú .opt-{}.pycz){!r} is a non-standard optimization levelrç) rcÚflagsÚoptimizerêr¬rrërìZskipTestr rrí)r r¬Zoptimization_levelÚ almost_expectr„ÚmsgrrrÚ(test_cache_from_source_optimization_Nonezs   ÿz5PEP3147Tests.test_cache_from_source_optimization_NonecCs¦d}tjtj}tj dd |j¡¡}|jj ||d}|  ||d |¡¡|  |jj |dd|d¡|  t ¡ |jj |ddWdƒn1s˜0YdS) Nrúrårrçrrkz .opt-42.pycz path/is/bad) ÚstringÚ ascii_lettersÚdigitsrêr¬rrërìrrír r#r¸)r r¬Zvalid_charactersrZgotrrrÚ'test_cache_from_source_optimization_setŠs  ÿÿ z4PEP3147Tests.test_cache_from_source_optimization_setc Csrt ¡Vt d¡| t¡"|jjddddWdƒn1sF0YWdƒn1sd0YdS)NrNrúFr†rç)rOrPrQr#Ú TypeErrorrrírirrrÚ;test_cache_from_source_debug_override_optimization_both_set›s   zHPEP3147Tests.test_cache_from_source_debug_override_optimization_both_setú\ú/z/test meaningful only where os.altsep is definedcCs$| |jjdddd |j¡¡dS)Nz\foo\bar\baz/qux.pyr†rçz#\foo\bar\baz\__pycache__\qux.{}.pyc)r rrírërìrirrrÚ)test_sep_altsep_and_sep_cache_from_source¢s þz6PEP3147Tests.test_sep_altsep_and_sep_cache_from_sourcec CsHt dddd¡}tj ddddd |j¡¡}| |jj |dd|¡dSrà) ÚpathlibÚPurePathrêr¬rrërìr rrírîrrrÚ$test_cache_from_source_path_like_argªs ÿÿz1PEP3147Tests.test_cache_from_source_path_like_argz4requires sys.implementation.cache_tag to not be Nonec CsFtj ddddd |j¡¡}tj dddd¡}| |j |¡|¡dS©Nrárârãrårærä©rêr¬rrërìr rÚsource_from_cacherîrrrÚtest_source_from_cache³s  ÿz#PEP3147Tests.test_source_from_cachec Csztj ddd¡}t tjdd¡F| t¡|j   |¡Wdƒn1sN0YWdƒn1sl0YdS)Nr”råz whatever.pycrð) rêr¬rrrñrcròr#rórrr÷rrrÚ#test_source_from_cache_no_cache_tag½s z0PEP3147Tests.test_source_from_cache_no_cache_tagcCs| t|jjd¡dS)Nz/foo/bar/bazqux.pyc©r#r¸rrrirrrÚtest_source_from_cache_bad_pathÄs ÿz,PEP3147Tests.test_source_from_cache_bad_pathcCs| t|jjd¡dS)Nzfoo.cpython-32.pycrrirrrÚtest_source_from_cache_no_slashÊs ÿz,PEP3147Tests.test_source_from_cache_no_slashcCs| t|jjd¡dS)Nz__pycache__/foo.pycrrirrrÚ#test_source_from_cache_too_few_dotsÏs ÿz0PEP3147Tests.test_source_from_cache_too_few_dotscCs:| t¡|j d¡Wdƒn1s,0YdS)Nz(__pycache__/foo.cpython-32.opt-1.foo.pycrrirrrÚ$test_source_from_cache_too_many_dotsÔs ÿz1PEP3147Tests.test_source_from_cache_too_many_dotscCs| t|jjd¡dS)Nz"__pycache__/foo.cpython-32.foo.pycrrirrrÚtest_source_from_cache_not_optÙsþz+PEP3147Tests.test_source_from_cache_not_optcCs| t|jjd¡dS)Nz/foo/bar/foo.cpython-32.foo.pycrrirrrÚ$test_source_from_cache_no__pycache__ßsþz1PEP3147Tests.test_source_from_cache_no__pycache__cCs.tj dd |j¡¡}| |j |¡d¡dS)Nråzfoo.{}.opt-1.pycrúrr÷rrrÚ)test_source_from_cache_optimized_bytecodeåsz6PEP3147Tests.test_source_from_cache_optimized_bytecodecCsPtj dd |j¡¡}| t¡|j |¡Wdƒn1sB0YdS)Nråzfoo.{}.opt-.pyc) rêr¬rrërìr#r¸rrr÷rrrÚ+test_source_from_cache_missing_optimizationês z8PEP3147Tests.test_source_from_cache_missing_optimizationc CsDt ddddd |j¡¡}tj dddd¡}| |j  |¡|¡dSr) rrrërìrêr¬rr rrrîrrrÚ$test_source_from_cache_path_like_argðs   ÿz1PEP3147Tests.test_source_from_cache_path_like_argc s(tj tjjdd¡tj tjjdd¡tj tjjdd¡tjjg}d‰tjdkrrd‰‡fdd „|Dƒ}|d d g7}|D]¬}|j|d Šˆtj tjjd ddd¡}tj |d ddd |j¡¡}t  |¡(|  |jj |dd|¡Wdƒn1sø0YWdƒqv1s0YqvdS)NÚtmpÚbytecodeu☃ztrailing-slashr†ÚntzC:csg|]}ˆ›|›‘qSrr)Ú.0Úprefix©ÚdriverrÚ szOPEP3147Tests.test_cache_from_source_respects_pycache_prefix..z \\?\C:\fooz\\localhost\c$\bar)r¬rárârãrärærç) rêr¬rÚsepr/ZsubTestrërìrÚtemporary_pycache_prefixr rí)r Zpycache_prefixesÚpycache_prefixr¬r„rr*rÚ.test_cache_from_source_respects_pycache_prefixøs2ý  ÿ ÿ þ þz;PEP3147Tests.test_cache_from_source_respects_pycache_prefixc Cs¶tj tjjdd¡}tj dddd¡}tj t ¡¡dtjj}tj |tj t ¡|¡dddd|j›d ¡}t  |¡(|  |jj |d d |¡Wdƒn1s¨0YdS) Nr%r&rárârãrärúqux.rr†rç) rêr¬rr-Ú splitdriveÚgetcwdÚrelpathrìrr.r rí)r r/r¬Úrootr„rrrÚ7test_cache_from_source_respects_pycache_prefix_relativesý þzDPEP3147Tests.test_cache_from_source_respects_pycache_prefix_relativec CsŒtj tjjdd¡}tj |dddd|j›d¡}tj tjjdddd¡}t |¡$| |j |¡|¡Wdƒn1s~0YdS) Nr%r&rárârãr1rrä© rêr¬rr-rìrr.r r©r r/r¬r„rrrÚ,test_source_from_cache_inside_pycache_prefix's ÿ z9PEP3147Tests.test_source_from_cache_inside_pycache_prefixc Cs†tj tjjdd¡}tj ddddd|j›d¡}tj dddd ¡}t |¡$| |j |¡|¡Wdƒn1sx0YdS) Nr%r&rárârãrår1rrär7r8rrrÚ-test_source_from_cache_outside_pycache_prefix4s ÿ z:PEP3147Tests.test_source_from_cache_outside_pycache_prefix)(rrrrcròrðrìÚunittestZskipIfrïrôrörørûrÿrr r rÚ skipUnlessrêr-Úaltseprrrrrrrrr r!r"r#r$r0r6r9r:rrrrrß+snÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿrßc@s(eZdZe ejjdvd¡dd„ƒZdS)rØ)Ú candidateÚfinalz8only applies to candidate or final python release levelscCs2d}t tjjdd…d¡}d}| |||¡dS)Nia rÚlittleaèTo avoid breaking backwards compatibility with cached bytecode files that can't be automatically regenerated by the current user, candidate and final releases require the current importlib.util.MAGIC_NUMBER to match the expected magic number in this test. Set the expected magic number in this test to the current MAGIC_NUMBER to continue with the release. Changing the MAGIC_NUMBER for a maintenance release requires discussion in python-dev and notification of community stakeholders.)ÚintÚ from_bytesrrrÛr )r ZEXPECTED_MAGIC_NUMBERÚactualrrrrÚtest_magic_numberKs ÿ z"MagicNumberTests.test_magic_numberN) rrrr;r<rcÚ version_infoÚ releaselevelrDrrrrrØGs  þÚ__main__)2r†rZimport_importlibr+rÎr!Zimportlib_utilÚimportlib.utilrrêrr rcr rr-r;Z unittest.mockrOrZ test_bothZFrozen_DecodeSourceBytesTestsZSource_DecodeSourceBytesTestsrZFrozen_ModuleFromSpecTestsZSource_ModuleFromSpecTestsrMZFrozen_ModuleForLoaderTestsZSource_ModuleForLoaderTestsrZFrozen_SetPackageTestsZSource_SetPackageTestsrZFrozen_SetLoaderTestsZSource_SetLoaderTestsrœZFrozen_ResolveNameTestsZSource_ResolveNameTestsr«ZFrozen_FindSpecTestsZSource_FindSpecTestsrØZFrozen_MagicNumberTestsZSource_MagicNumberTestsrßZFrozen_PEP3147TestsZSource_PEP3147TestsZTestCaserÚmainrrrrÚsz       þJ ÿþ þ< þ, þ# þ ÿþ þ þ+