
    daf-                     D   d Z ddlZddlmZ  ej                  d      Z ej                  d      ZddlZddlm	Z	 ddl
Z
ddlZej                   G d dej                               Z G d	 d
e      Z ej                   eee      \  ZZedk(  r e
j(                          yy)z Test case-sensitivity (PEP 235).    N)util	importlibzimportlib.machinery)	os_helperc                       e Zd ZdZdZeej                         k7  sJ d Zd Z ej                  e
j                  j                  d      d        Z ej                  e
j                  j                  d      d        Zy)	CaseSensitivityTestzPEP 235 dictates that on case-preserving, case-insensitive file systems
    that imports are case-sensitive unless the PYTHONCASEOK environment
    variable is set.MoDuLec                     | j                   j                  || j                   j                  | j                   j                  f| j                   j                  | j                   j
                  f      S N)	machinery
FileFinderSourceFileLoaderSOURCE_SUFFIXESSourcelessFileLoaderBYTECODE_SUFFIXES)selfpaths     K/root/Python-3.12.4/Lib/test/test_importlib/source/test_case_sensitivity.pyfinderzCaseSensitivityTest.finder   s]    ~~(('+~~'F'F,0NN,J,J'L)-)L)L,0NN,L,L)NO 	O    c                    dj                  | j                        }dj                  | j                  j                               }t        j                  ||      }|5 }t
        j                  j                  |d   d      }t
        j                  j                  |d   d      }| j                  |      }| j                  |      }| j                  |      | j                  |      fcddd       S # 1 sw Y   yxY w)z=Look for a module with matching and non-matching sensitivity.zsensitive.{0}zinsensitive.{0}z.root	sensitiveinsensitiveN)
formatnamelowerr   create_modulesosr   joinr   find)	r   sensitive_pkginsensitive_pkgcontextmappingsensitive_pathinsensitive_pathsensitive_finderinsensitive_finders	            r   sensitivity_testz$CaseSensitivityTest.sensitivity_test    s    '..tyy9+22499??3DE%%o}E 	NWW\\''*:KHN!ww||GG,<mL#{{>:!%-=!>99-.		:L0MM	N 	N 	Ns   B
C11C:zignore_environment flag was setc                 p   t        j                         5 }|j                  d       | j                  d       | j	                         \  }}| j                  |       | j                  | j                  |j                  | j                               | j                  |       d d d        y # 1 sw Y   y xY w)NPYTHONCASEOKFshould_exist)
r   EnvironmentVarGuardunsetcaseok_env_changedr(   assertIsNotNoneassertInr   get_filenameassertIsNoner   envr   r   s       r   test_sensitivez"CaseSensitivityTest.test_sensitive,   s    **, 	+IIn%###7%)%:%:%<"I{  +MM$))Y%;%;DII%FGk*	+ 	+ 	+s   BB,,B5c                    t        j                         5 }|j                  dd       | j                  d       | j	                         \  }}| j                  |       | j                  | j                  |j                  | j                               | j                  |       | j                  | j                  |j                  | j                               d d d        y # 1 sw Y   y xY w)Nr*   1Tr+   )	r   r-   setr/   r(   r0   r1   r   r2   r4   s       r   test_insensitivez$CaseSensitivityTest.test_insensitive6   s    **, 	JGGNC(###6%)%:%:%<"I{  +MM$))Y%;%;DII%FG  -MM$))[%=%=dii%HI	J 	J 	Js   CC""C+N)__name__
__module____qualname____doc__r   r   r   r(   unittestskipIfsysflagsignore_environmentr6   r:    r   r   r   r      s     D4::<O
N X__SYY113TU+ V+ X__SYY113TUJ VJr   r   c                       e Zd Zd Zy)CaseSensitivityTestPEP451c                 X    |j                  | j                        }||j                  S |S r
   )	find_specr   loader)r   r   founds      r   r   zCaseSensitivityTestPEP451.findC   s*      +$0u||;e;r   N)r;   r<   r=   r   rD   r   r   rF   rF   B   s    <r   rF   )r   r   __main__)r>   rA   test.test_importlibr   import_importlibr   r   r   test.supportr   r?   warningscase_insensitive_testsCASEOKTestBaser   rF   	test_both Frozen_CaseSensitivityTestPEP451 Source_CaseSensitivityTestPEP451r;   mainrD   r   r   <module>rV      s    & 
 $!D!!+.	!D!!"78	 	 "   /J$-- /J /Jd< 3 < T^^-')!!
 zHMMO r   