a  zeM @sdZddlZddlmZedZedZddlZddlm Z ddl Z ej Gdd d ej ZGd d d eZejeeed \ZZGd ddeZejeeed \ZZedkre dS)z Test case-sensitivity (PEP 235).N)util importlibzimportlib.machinery)supportc@sdeZdZdZdZeeks JddZddZe e j j ddd Z e e j j dd d Zd S) CaseSensitivityTestzPEP 235 dictates that on case-preserving, case-insensitive file systems that imports are case-sensitive unless the PYTHONCASEOK environment variable is set.ZMoDuLecCs(|j||jj|jjf|jj|jjfSN) machinery FileFinderSourceFileLoaderSOURCE_SUFFIXESSourcelessFileLoaderBYTECODE_SUFFIXES)selfpathrd/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_importlib/source/test_case_sensitivity.pyfinderszCaseSensitivityTest.finderc Csd|j}d|j}t||}|\}tj|dd}tj|dd}||}||}| || |fWdS1s0YdS)z=Look for a module with matching and non-matching sensitivity.z sensitive.{0}zinsensitive.{0}z.root sensitive insensitiveN) formatnamelowerrZcreate_modulesosrjoinrfind) rZ sensitive_pkgZinsensitive_pkgcontextmappingZsensitive_pathZinsensitive_pathZsensitive_finderZinsensitive_finderrrrsensitivity_tests    z$CaseSensitivityTest.sensitivity_testzignore_environment flag was setcCsxt\}|d|jdd|\}}||||j||j| |Wdn1sj0YdS)N PYTHONCASEOKFZ should_exist) test_supportEnvironmentVarGuardZunsetcaseok_env_changedrassertIsNotNoneassertInr get_filenameZ assertIsNonerenvrrrrrtest_sensitive+s     z"CaseSensitivityTest.test_sensitivecCstt}|dd|jdd|\}}||||j||j||||j||jWdn1s0YdS)Nr1Tr) r r!setr"rr#r$rr%r&rrrtest_insensitive5s      z$CaseSensitivityTest.test_insensitiveN)__name__ __module__ __qualname____doc__rrrrunittestZskipIfsysflagsignore_environmentr(r+rrrrrs  rc@seZdZddZdS)CaseSensitivityTestPEP302cCs ||jSr) find_moduler)rrrrrrBszCaseSensitivityTestPEP302.findNr,r-r.rrrrrr4Asr4)rrc@seZdZddZdS)CaseSensitivityTestPEP451cCs||j}|dur|jS|Sr) find_specrloader)rrfoundrrrrMs zCaseSensitivityTestPEP451.findNr6rrrrr7Lsr7__main__)r/r1rZimport_importlibrrrtestrr r0Zcase_insensitive_testsZCASEOKTestBaserr4Z test_bothZ Frozen_CaseSensitivityTestPEP302Z Source_CaseSensitivityTestPEP302r7Z Frozen_CaseSensitivityTestPEP451Z Source_CaseSensitivityTestPEP451r,mainrrrrs.    2