a 7êdgŠyã@s.ddlmZe d¡Ze d¡Ze d¡ZddlZddlZddl m Z ddl Z ddl Z ddl Z Gdd „d ƒZGd d „d eƒZGd d „d eƒZGdd„dƒZejeeed\ZZGdd„dƒZejeeeed\ZZGdd„dƒZejeeeed\ZZGdd„dƒZejeeed\ZZedkr*e  ¡dS)é)ÚutilÚ importlibzimportlib.machineryzimportlib.utiléN)Ú CleanImportc@s>eZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „ZdS)Ú TestLoaderNcCs||_||_dS©N)ÚpathÚpackage)ÚselfrÚ is_package©r ú9/usr/local/lib/python3.9/test/test_importlib/test_spec.pyÚ__init__szTestLoader.__init__cCsdS)Nzr ©r r r r Ú__repr__szTestLoader.__repr__cCs2|dkr|jdur|jS|dkr&|jSt|ƒ‚dS)NÚ get_filenamer )rÚ _get_filenameÚ _is_packageÚAttributeError©r Únamer r r Ú __getattr__s zTestLoader.__getattr__cCs|jSr)rrr r r r szTestLoader._get_filenamecCs|jSr)r rr r r r#szTestLoader._is_packagecCsdSrr ©r Úspecr r r Ú create_module&szTestLoader.create_module)NN) Ú__name__Ú __module__Ú __qualname__rrrrrrr r r r rs  rc@seZdZdZdd„ZdS)Ú NewLoaderrcCs |j|_dSr)ÚEGGSÚeggs©r Úmoduler r r Ú exec_module.szNewLoader.exec_moduleN)rrrrr#r r r r r*src@sZeZdZdZe ¡2e de¡edZ e j dd„ƒZ Wdƒn1sL0YdS)Ú LegacyLoaderéÿÿÿÿÚignoreZFrozencCs |j|_|Sr)ÚHAMÚhamr!r r r Ú load_module;szLegacyLoader.load_moduleN) rrrr'ÚwarningsÚcatch_warningsÚ simplefilterÚDeprecationWarningrZ frozen_utilÚmodule_for_loaderr)r r r r r$2s   r$c@s¤eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'S)(ÚModuleSpecTestscCs^d|_d|_|j |j¡|_tƒ|_|j |j|j¡|_ |jj|j|j|jd|_ d|j _ dS©NÚspamúspam.py©ÚoriginT© rrrÚcache_from_sourceÚcachedrÚloaderÚ machineryÚ ModuleSpecrÚloc_specÚ _set_fileattrrr r r ÚsetUpCsÿzModuleSpecTests.setUpcCsz|j |j|j¡}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dSr© r9r:rr8Ú assertEqualÚassertIsr4Ú loader_stateÚsubmodule_search_locationsr7Ú assertFalseÚ has_locationrr r r Ú test_defaultMszModuleSpecTests.test_defaultcCsv|j |jd¡}| |j|j¡| |jd¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dSr) r9r:rr?r@r8r4rArBr7rCrDrr r r Útest_default_no_loaderXsz&ModuleSpecTests.test_default_no_loadercCs~|jj|j|jdd}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dS©NF©r r>rr r r Útest_default_is_package_falsecsÿz-ModuleSpecTests.test_default_is_package_falsecCs~|jj|j|jdd}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jg¡| |j d¡|  |j ¡dS©NTrHr>rr r r Útest_default_is_package_trueosÿz,ModuleSpecTests.test_default_is_package_truecCs8|jj|j|jdd}| |j¡d|_| |j¡dS)NZ somewherer3T)r9r:rr8rCrDÚ assertTruerr r r Útest_has_location_setter{s ÿ z(ModuleSpecTests.test_has_location_settercCs2ttjƒ|j|jddddd}| |j|k¡dS)NF©rr8r4rBrDr7)ÚtypeÚsysÚimplementationrr8rLr©r Úotherr r r Ú test_equality‚s ûzModuleSpecTests.test_equalitycCs4ttjƒ|j|j|jdd|jd}| |j|¡dS)NTrN) rOrPrQrr8rr7r?r;rRr r r Útest_equality_locations ûz&ModuleSpecTests.test_equality_locationcCs.ttjƒd|jddddd}| |j|¡dS)Nr(FrN)rOrPrQr8ÚassertNotEqualrrRr r r Útest_inequality˜s ûzModuleSpecTests.test_inequalitycCs(ttjƒ|j|jd}| |j|¡dS)N)rr8)rOrPrQrr8rVrrRr r r Útest_inequality_incomplete£s ÿz*ModuleSpecTests.test_inequality_incompletecCs"|j d|j¡}| |jd¡dS)Nú spam.eggsr1©r9r:r8r?Úparentrr r r Ú test_packageªszModuleSpecTests.test_packagecCs&|jjd|jdd}| |jd¡dS)NrYTrHrZrr r r Útest_package_is_package¯s ÿz'ModuleSpecTests.test_package_is_packagecCs4|jj}d|j_|jj}| |d¡| |d¡dS)NZthere)rr7r@r?)r ÚbeforeZafterr r r Útest_cached_set·s  zModuleSpecTests.test_cached_setcCs$|j |j|j¡}| |jd¡dSr)r9r:rr8r@r7rr r r Útest_cached_no_origin¿sz%ModuleSpecTests.test_cached_no_origincCs*|jj|j|j|jd}| |jd¡dS)Nr3)r9r:rr8rr@r7rr r r Ú$test_cached_with_origin_not_locationÄsÿz4ModuleSpecTests.test_cached_with_origin_not_locationcCs"|j |j¡}| |jj|¡dSr)rr6rr?r;r7)r Zexpectedr r r Útest_cached_sourceÊsz"ModuleSpecTests.test_cached_sourcecCsd|j_| |jjd¡dS)Nzspam.spamspamspam)r;r4r@r7rr r r Ú!test_cached_source_unknown_suffixÏsz1ModuleSpecTests.test_cached_source_unknown_suffixcCs@tjj}dtj_z|jj}W|tj_n |tj_0| |d¡dSr)rPrQÚ cache_tagr;r7r@)r Zoriginalr7r r r Ú$test_cached_source_missing_cache_tagÔs  z4ModuleSpecTests.test_cached_source_missing_cache_tagcCsd|j_| |jjd¡dS)Nzspam.pyc)r;r4r?r7rr r r Útest_cached_sourcelessÞsz&ModuleSpecTests.test_cached_sourcelessN)rrrr=rErFrIrKrMrTrUrWrXr\r]r_r`rarbrcrerfr r r r r/As&         r/)rr9c@sˆeZdZedd„ƒZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„ZdS) ÚModuleSpecMethodsTestscCs|jjSr©ÚinitÚ _bootstraprr r r Ú bootstrapësz ModuleSpecMethodsTests.bootstrapcCs^d|_d|_|j |j¡|_tƒ|_|j |j|j¡|_ |jj|j|j|jd|_ d|j _ dSr0r5rr r r r=ïsÿzModuleSpecMethodsTests.setUpcCsVtƒ|j_|j |j¡}|tj|j<| t |dƒ¡|j   |j|¡|  |j d¡dS)Nr r)rrr8rÚmodule_from_specrPÚmodulesrrCÚhasattrrkÚ_execr?r r!r r r Ú test_execûs   z ModuleSpecMethodsTests.test_execcCsptƒ|j_t|jjƒ,|j |j¡}tj|jj}Wdƒn1sH0Y|  |j d¡|  ||¡dS©Nr) rrr8rrrkÚ_loadrPrmr?r r@)r ÚloadedÚ installedr r r Ú test_loads  ,z ModuleSpecMethodsTests.test_loadcsˆtƒ‰G‡fdd„dtƒ}|ƒ|j_t|jjƒ,|j |j¡}tj |jj}Wdƒn1sb0Y|  |ˆ¡|  |ˆ¡dS)NcseZdZ‡fdd„ZdS)zBModuleSpecMethodsTests.test_load_replaced..ReplacingLoadercsˆtj|j<dSr)rPrmrr!©Z replacementr r r#szNModuleSpecMethodsTests.test_load_replaced..ReplacingLoader.exec_moduleN©rrrr#r rvr r ÚReplacingLoadersrx) Úobjectrrr8rrrkrrrPrmr@)r rxrsrtr rvr Útest_load_replaceds , z)ModuleSpecMethodsTests.test_load_replacedc Cs”Gdd„dtƒ}|ƒ|j_t|jjƒZ| t¡|j |j¡}Wdƒn1sV0Y|  |jjt j ¡Wdƒn1s†0YdS)Nc@seZdZdd„ZdS)z=ModuleSpecMethodsTests.test_load_failed..FailedLoadercSst‚dSr)Ú RuntimeErrorr!r r r r#szIModuleSpecMethodsTests.test_load_failed..FailedLoader.exec_moduleNrwr r r r Ú FailedLoadersr|© rrr8rrZ assertRaisesr{rkrrZ assertNotInrPrm©r r|rsr r r Útest_load_faileds   ,z'ModuleSpecMethodsTests.test_load_failedc Cs”Gdd„dtƒ}|ƒ|j_t|jjƒZ| t¡|j |j¡}Wdƒn1sV0Y|  |jjt j ¡Wdƒn1s†0YdS)Nc@seZdZdd„ZdS)zEModuleSpecMethodsTests.test_load_failed_removed..FailedLoadercSstj|j=t‚dSr)rPrmrr{r!r r r r#(s zQModuleSpecMethodsTests.test_load_failed_removed..FailedLoader.exec_moduleNrwr r r r r|'sr|r}r~r r r Útest_load_failed_removed&s   ,z/ModuleSpecMethodsTests.test_load_failed_removedcCsVtƒ|j_t|jjƒ|j |j¡}Wdƒn1s:0Y| |jd¡dS©Nr%) r$rr8rrrkrrr?r(©r rsr r r Útest_load_legacy1s ,z'ModuleSpecMethodsTests.test_load_legacycCs|tƒ|j_t|jjƒ|j |j¡}Wdƒn1s:0Y| |j|jj¡|  |j |jj ¡| |j |j¡dSr) r$rr8rrrkrrr@Ú __loader__r?Ú __package__r[Ú__spec__r‚r r r Útest_load_legacy_attributes8s  ,z2ModuleSpecMethodsTests.test_load_legacy_attributescsxtƒ‰G‡fdd„dtƒ}|ƒ|j_t|jjƒ4|j |j¡}| t j |jjˆ¡Wdƒn1sj0YdS)NcseZdZ‡fdd„ZdS)zUModuleSpecMethodsTests.test_load_legacy_attributes_immutable..ImmutableLoadercsˆtj|<ˆSr)rPrmr©r"r r r)Ds zaModuleSpecMethodsTests.test_load_legacy_attributes_immutable..ImmutableLoader.load_moduleN)rrrr)r rˆr r ÚImmutableLoaderCsr‰) ryrrr8rrrkrrr@rPrm)r r‰rsr rˆr Ú%test_load_legacy_attributes_immutableAs  z.LoadercSs d |j¡S)Nz)Úformatrr!r r r Ú module_repržszNModuleReprTests.test_module___loader___module_repr..Loader.module_reprN©rrrrœr r r r ÚLoadersržz)r"r„rkÚ _module_reprr?©r ržÚmodreprr r r Ú"test_module___loader___module_reprœs z2ModuleReprTests.test_module___loader___module_reprcCs>Gdd„dtƒ}|ƒ|j_|j |j¡}| |d d¡¡dS)Nc@seZdZdd„ZdS)zFModuleReprTests.test_module___loader___module_repr_bad..LoadercSst‚dSr)Ú Exceptionr!r r r rœ§szRModuleReprTests.test_module___loader___module_repr_bad..Loader.module_reprNrr r r r rž¦sržú#)>r1©rr"r„rkrŸr?r›r r r r Ú&test_module___loader___module_repr_bad¥s  ÿz6ModuleReprTests.test_module___loader___module_repr_badcCs<d}||j_|j|j_|j |j¡}| |d d|¡¡dS)Nzin a hole, in the groundzr1)rr4r"r†rkrŸr?r›)r r4r¡r r r Útest_module___spec__¯s  z$ModuleReprTests.test_module___spec__cCsDd}||j_d|j_|j|j_|j |j¡}| |d d|¡¡dS)Nzin_a_galaxy_far_far_away.pyTúr1) rr4r<r"r†rkrŸr?r›)r Úlocationr¡r r r Útest_module___spec___location·s  ÿz-ModuleReprTests.test_module___spec___locationcCs8tƒ|j_|j|j_|j |j¡}| |d d¡¡dS©Nr¤r1) rrr8r"r†rkrŸr?r›©r r¡r r r Útest_module___spec___no_originÁs   ÿz.ModuleReprTests.test_module___spec___no_origincCs6d|j_|j|j_|j |j¡}| |d d¡¡dS©Nú r1)rr8r"r†rkrŸr?r›r¬r r r Ú(test_module___spec___no_origin_no_loaderÉs z8ModuleReprTests.test_module___spec___no_origin_no_loadercCs*|j`|j |j¡}| |d d¡¡dS)Nr¯ú?)r"rrkrŸr?r›r¬r r r Útest_module_no_nameÐsz#ModuleReprTests.test_module_no_namecCs2d}||j_|j |j¡}| |d d|¡¡dS)Nze/i/e/i/o/spam.pyr¨r1)r"r”rkrŸr?r›)r Úfilenamer¡r r r Útest_module_with_fileÖs  ÿz%ModuleReprTests.test_module_with_filecCs.tƒ|j_|j |j¡}| |d d¡¡dSr«r¥r¬r r r Útest_module_no_fileÞs  ÿz#ModuleReprTests.test_module_no_filecCs$|j |j¡}| |d d¡¡dSr®)rkrŸr"r?r›r¬r r r Útest_module_no_file_no_loaderåsz-ModuleReprTests.test_module_no_file_no_loaderN)rrrr˜rkr=r¢r¦r§rªr­r°r²r´rµr¶r r r r r™’s    r™c@säeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7S)8Ú FactoryTestscCsJd|_tj d¡|_|j |j¡|_tƒ|_t|jƒ|_ t|jdƒ|_ dS)Nr1r2T) rršrÚabspathrr6r7rr8Ú fileloaderÚ pkgloaderrr r r r=ós  zFactoryTests.setUpcCsz|j |j|j¡}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dSr© rÚspec_from_loaderrr8r?r@r4rArBr7rCrDrr r r Útest_spec_from_loader_defaultýsz*FactoryTests.test_spec_from_loader_defaultcCsŠGdd„dƒ}|ƒ}|j |j|¡}| |j|j¡| |j|¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dS)Nc@seZdZdd„ZdS)zNFactoryTests.test_spec_from_loader_default_with_bad_is_package..LoadercSst‚dSr©Ú ImportErrorrr r r r szYFactoryTests.test_spec_from_loader_default_with_bad_is_package..Loader.is_packageN©rrrr r r r r rž srž) rr¼rr?r8r@r4rArBr7rCrD©r ržr8rr r r Ú1test_spec_from_loader_default_with_bad_is_packagesz>FactoryTests.test_spec_from_loader_default_with_bad_is_packagecCs‚d}|jj|j|j|d}| |j|j¡| |j|j¡| |j|¡| |jd¡| |jd¡| |j d¡|  |j ¡dS)Nzsomewhere over the rainbowr3r»©r r4rr r r Útest_spec_from_loader_originsÿz)FactoryTests.test_spec_from_loader_origincCs~|jj|j|jdd}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dSrGr»rr r r Ú&test_spec_from_loader_is_package_false$sÿz3FactoryTests.test_spec_from_loader_is_package_falsecCs~|jj|j|jdd}| |j|j¡| |j|j¡| |jd¡| |jd¡| |jg¡| |j d¡|  |j ¡dSrJr»rr r r Ú%test_spec_from_loader_is_package_true0sÿz2FactoryTests.test_spec_from_loader_is_package_truecCs„d}|jj|j|j|dd}| |j|j¡| |j|j¡| |j|¡| |jd¡| |jg¡| |j d¡|  |j ¡dS)Nzwhere the streets have no nameT)r4r r»rÃr r r Ú+test_spec_from_loader_origin_and_is_package<sÿz8FactoryTests.test_spec_from_loader_origin_and_is_packagecCs€tdd}|j |j|¡}| |j|j¡| |j|¡| |jd¡| |jd¡| |j d¡| |j d¡|  |j ¡dSrG© rrr¼rr?r8r@r4rArBr7rCrD©r r8rr r r Ú2test_spec_from_loader_is_package_with_loader_falseIs z?FactoryTests.test_spec_from_loader_is_package_with_loader_falsecCs€tdd}|j |j|¡}| |j|j¡| |j|¡| |jd¡| |jd¡| |j g¡| |j d¡|  |j ¡dSrJrÈrÉr r r Ú1test_spec_from_loader_is_package_with_loader_trueUs z>FactoryTests.test_spec_from_loader_is_package_with_loader_truecCs~|j |j|j¡}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j d¡| |j |j ¡|  |j ¡dSr©rr¼rr¹r?r8r4rr@rArBr7rLrDrr r r Ú.test_spec_from_loader_default_with_file_loaderasz;FactoryTests.test_spec_from_loader_default_with_file_loadercCs‚|jj|j|jdd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j d¡| |j |j ¡|  |j ¡dSrGrÌrr r r Ú6test_spec_from_loader_is_package_false_with_fileloaderlsÿzCFactoryTests.test_spec_from_loader_is_package_false_with_fileloadercCsˆ|jj|j|jdd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j t   ¡g¡| |j |j ¡| |j¡dSrJ)rr¼rr¹r?r8r4rr@rArBršÚgetcwdr7rLrDrr r r Ú5test_spec_from_loader_is_package_true_with_fileloaderxsÿzBFactoryTests.test_spec_from_loader_is_package_true_with_fileloadercCs¨|j |j|j¡}| |j|j¡| |j|jjjj ¡| |jj|j¡| |jj|j¡| |j |j¡|  |j d¡|  |j d¡| |j|j¡| |j¡dSr)rÚspec_from_file_locationrrr?ZassertIsInstancer8Úabcr9ÚSourceFileLoaderr4r@rArBr7rLrDrr r r Ú$test_spec_from_file_location_default†s ÿz1FactoryTests.test_spec_from_file_location_defaultcCs,|j |jt |j¡¡}| |j|j¡dSr)rrÑrÚpathlibÚPurePathrr?r4rr r r Ú*test_spec_from_file_location_path_like_arg—s  ÿz7FactoryTests.test_spec_from_file_location_path_like_argcCs|j |j¡}| |d¡dSr©rrÑrr@rr r r Ú5test_spec_from_file_location_default_without_locationœszBFactoryTests.test_spec_from_file_location_default_without_locationcCs |j |jd¡}| |d¡dS)NrYrØrr r r Ú/test_spec_from_file_location_default_bad_suffix¡sz) rrÑrr8r?r4r@rArBr7rLrDrr r r Ú?test_spec_from_file_location_loader_no_location_no_get_filename²s ÿzLFactoryTests.test_spec_from_file_location_loader_no_location_no_get_filenamecCsŒGdd„dƒ}|ƒ}|jj|j|d}| |j|j¡| |j|¡| |jd¡| |jd¡| |jd¡| |j d¡|  |j ¡dS)Nc@seZdZdd„ZdS)z]FactoryTests.test_spec_from_file_location_loader_no_location_bad_get_filename..LoadercSst‚dSrr¾rr r r rÀszjFactoryTests.test_spec_from_file_location_loader_no_location_bad_get_filename..Loader.get_filenameN)rrrrr r r r rž¿sržrÜrÞ) rrÑrr?r8r4r@rArBr7rLrDrÁr r r Ú@test_spec_from_file_location_loader_no_location_bad_get_filename¾szMFactoryTests.test_spec_from_file_location_loader_no_location_bad_get_filenamecCs†|jj|j|j|jdd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j d¡| |j |j ¡|  |j ¡dS©N©r8rB©rrÑrrr¹r?r8r4r@rArBr7rLrDrr r r Ú&test_spec_from_file_location_smsl_noneÍsþz3FactoryTests.test_spec_from_file_location_smsl_nonecCsŒ|jj|j|j|jgd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j t   ¡g¡| |j |j ¡| |j¡dSrá)rrÑrrr¹r?r8r4r@rArBršrÏr7rLrDrr r r Ú'test_spec_from_file_location_smsl_emptyÚsþz4FactoryTests.test_spec_from_file_location_smsl_emptycCsŠ|jj|j|j|jdgd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j dg¡| |j |j ¡|  |j ¡dS)Nr rârãrr r r Ú+test_spec_from_file_location_smsl_not_emptyçsþz8FactoryTests.test_spec_from_file_location_smsl_not_emptycCsŠ|jj|j|j|jd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j t   ¡g¡| |j |j ¡| |j¡dSrÛ)rrÑrrrºr?r8r4r@rArBršrÏr7rLrDrr r r Ú)test_spec_from_file_location_smsl_defaultôsÿz6FactoryTests.test_spec_from_file_location_smsl_defaultcCs”Gdd„dƒ}|ƒ}|jj|j|j|d}| |j|j¡| |j|¡| |j|j¡| |jd¡| |j d¡| |j |j ¡|  |j ¡dS)Nc@seZdZdd„ZdS)zRFactoryTests.test_spec_from_file_location_smsl_default_not_package..LoadercSsdSr‘r rr r r r sz]FactoryTests.test_spec_from_file_location_smsl_default_not_package..Loader.is_packageNrÀr r r r ržsržrÜ© rrÑrrr?r8r4r@rArBr7rLrDrÁr r r Ú5test_spec_from_file_location_smsl_default_not_packagesÿzBFactoryTests.test_spec_from_file_location_smsl_default_not_packagecCs„|jj|j|j|jd}| |j|j¡| |j|j¡| |j|j¡| |j d¡| |j d¡| |j |j ¡|  |j ¡dSrÛrãrr r r Ú7test_spec_from_file_location_smsl_default_no_is_packagesÿzDFactoryTests.test_spec_from_file_location_smsl_default_no_is_packagecCs”Gdd„dƒ}|ƒ}|jj|j|j|d}| |j|j¡| |j|¡| |j|j¡| |jd¡| |j d¡| |j |j ¡|  |j ¡dS)Nc@seZdZdd„ZdS)zUFactoryTests.test_spec_from_file_location_smsl_default_bad_is_package..LoadercSst‚dSrr¾rr r r r sz`FactoryTests.test_spec_from_file_location_smsl_default_bad_is_package..Loader.is_packageNrÀr r r r ržsržrÜrèrÁr r r Ú8test_spec_from_file_location_smsl_default_bad_is_packagesÿzEFactoryTests.test_spec_from_file_location_smsl_default_bad_is_packagecCsœ|jj|jtj |j¡|jd}| |j|j¡| |j|j¡| |j tj |j¡¡|  |j d¡|  |j d¡| |j tj |j ¡¡| |j¡dSrÛ)rrÑrršrÚbasenamer¹r?r8r4r@rArBr7ÚrelpathrLrDrr r r Ú*test_spec_from_file_location_relative_path,s ÿz7FactoryTests.test_spec_from_file_location_relative_pathN)rrrr=r½rÂrÄrÅrÆrÇrÊrËrÍrÎrÐrÔr×rÙrÚrÝrßràrärårærçrérêrërîr r r r r·ñs6                 r·Ú__main__) ÚrZ test_utilZimport_importlibrir9Zos.pathršrÕZ test.supportrZunittestrPr*rrr$r/Z test_bothZFrozen_ModuleSpecTestsZSource_ModuleSpecTestsrgZFrozen_ModuleSpecMethodsTestsZSource_ModuleSpecMethodsTestsr™ZFrozen_ModuleReprTestsZSource_ModuleReprTestsr·ZFrozen_FactoryTestsZSource_FactoryTestsrÚmainr r r r ÚsL     &þ& ÿþ[ ÿþKþ