a  zeM@sJddlmZedZddlZddlZddlZddlZddl m Z ddl m Z ddl mZddlmZe jd d gd dd lmZmZmZmZmZmZmZmZmZd dZedddZeejd dGdddZ ej!e ed\Z"Z#eejd dGdddZ$ej!e$ed\Z%Z&eejd dGdddej'Z(dS))utilzimportlib.machineryN)support) get_platform)contextmanager) temp_modulewinregwin)Z required_on) CreateKeyHKEY_CURRENT_USERSetValueREG_SZKEY_ALL_ACCESSEnumKeyCloseKey DeleteKeyOpenKeycCspzt||td}Wnty&YdS0zt|d}WntyLYqZYn0t||q(t|t||dS)N)accessr)rrOSErrorrdelete_registry_treerr)rootsubkeyhkeyZ subsubkeyrT/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_importlib/test_windows.pyrs    rc cs|jjr|jj}n|jj}|j|dtjddd}zzt|d>}tt |}|dur^|d}t |dt |dVWdn1s0YW|jjrt j |}tt |n |jjrt j |}tt |0dS)Nz%d.%d)fullname sys_versionza = 1z.py)WindowsRegistryFinder DEBUG_BUILDREGISTRY_KEY_DEBUG REGISTRY_KEYformatsys version_inforr r r r ospathdirnamer) machinerynamer'rkeylocationrrrr setup_module$s&   &   r-zrequires Windowsc@s:eZdZdeZddZddZddZ dd Z d S) WindowsRegistryFinderTestsz spamham{}cCs|jjd}||ddSNZspam)r)r find_specassertIs)selfspecrrrtest_find_spec_missing?sz1WindowsRegistryFinderTests.test_find_spec_missingcCs|jjd}||ddSr/)r)r find_moduler1)r2loaderrrrtest_find_module_missingCsz3WindowsRegistryFinderTests.test_find_module_missingcCsjt|j|jH|jj|j}|jj|j}||d||dWdn1s\0YdS)N)r-r) test_modulerr5r0Z assertIsNotr2r6r3rrrtest_module_foundGs  z,WindowsRegistryFinderTests.test_module_foundcCsjt|j|jddD|jj|j}|jj|j}||||Wdn1s\0YdS)N.)r')r-r)r8rr5r0Z assertIsNoner9rrrtest_module_not_foundNs  z0WindowsRegistryFinderTests.test_module_not_foundN) __name__ __module__ __qualname__r#r&getpidr8r4r7r:r<rrrrr.9s r.)r)c@seZdZddZdS)WindowsExtensionSuffixTestscCs||jj}dtjtddt}z|d}Wn$t yT|d}d|}Yn0| ||||}| ||dS)Nz.cp{0.major}{0.minor}-{1}.pydz [^a-zA-Z0-9]_z.pydz_d.pydZ_d) r)EXTENSION_SUFFIXESr#r$r%resubrindex ValueErrorZassertInZ assertLess)r2suffixesZ expected_tagZ untagged_iZtagged_irrrtest_tagged_suffix[s    z.WindowsExtensionSuffixTests.test_tagged_suffixN)r=r>r?rIrrrrrAYsrAc@seZdZddZddZdS)WindowsBootstrapPathTestscGs8ddlm}||}||kr(dS|||dS)Nr) _path_join)Zimportlib._bootstrap_externalrKcasefoldZ assertEqual)r2ZexpectedZinputsrKactualrrr check_joinrs  z$WindowsBootstrapPathTests.check_joinc Cs|dddd|dddddd|dddd|ddd|dd|d d d|d d d d|d d d |d ddd |d dd|ddd|d ddd |ddd|dddd|ddddd |dddddd |ddddddd |dddddd |dd|dd|dd d!|dd"d!|d#d#d!|d$d%d!|d$d&d!dS)'NzC:\A\BzC:\ABzD:\DzC:BzA\BzD:AzD:zC:\B\CzA\B\CCzB\CzA\B/CzB/CzA/zB\zA\../Cz../CzA.\.\BzA.r;z\\Server\Share\A\B\Cz\\Server\Sharez\Az\\Server2\Share2z\\Serverz\Sharez\\Server\Share\\zC:\AzC:/ArzC:/zC:z//Server/Share\z//Server/Share/z//Server/Share)rN)r2rrrtest_path_joinys6    z(WindowsBootstrapPathTests.test_path_joinN)r=r>r?rNrSrrrrrJpsrJ)N))rrZ test_utilZimport_importlibr)r&rDr$ZunittesttestrZdistutils.utilr contextlibrr import_modulerr r r r rrrrrrr-Z skipUnlessplatform startswithr.Z test_bothZ!Frozen_WindowsRegistryFinderTestsZ!Source_WindowsRegistryFinderTestsrAZ"Frozen_WindowsExtensionSuffixTestsZ"Source_WindowsExtensionSuffixTestsZTestCaserJrrrrs4      ,