+
    Bij&                         ^ RI t ^ RIt^ RIt^ RIt^ RItR tR t ! R R]P                  4      t]	R8X  d   ]P                  ! 4        R# R# )    Nc                    \         P                  ! V 4      pV F  p\         P                  P                  W4      p\         P                  P	                  V4      '       d3   \         P                  P                  V4      '       g   \        V4       Ky  \         P                  ! V4       K  	  \         P                  ! V 4       R # N)	oslistdirpathjoinisdirislinkcleanoutremovermdir)rootnamesnamefullnames   &   $/usr/lib/python3.14/test/test_pkg.pyr   r      sr    JJtE77<<+77==""277>>(+C+CXIIh  HHTN    c                 f    R V 9   d   V P                  R 4       RV 9   d   V P                  R4       V # )__builtins____initializing__)r   )lsts   &r   fixdirr      s0    

>"S 

%&Jr   c                      a  ] tR t^.t o R tR tR tR tR tR t	R t
R tR	 tR
 tR t]P                   ! ]P$                  P&                  ^8  R4      R 4       tRtV tR# )TestPkgc                |    R V n         R V n        \        \        P                  4      V n        \        4       V n        R # r   )r   pkgnamelistsysr   syspathsetmodules_to_cleanup)selfs   &r   setUpTestPkg.setUp0   s)    	CHH~"%%r   c                   V P                   \        P                  R &   V P                   F+  pV\        P                  9   g   K  \        P                  V K-  	  V P
                  '       d   \        V P
                  4       V P                  '       d^   \        P                   Uu. uF'  pV P                  VP                  R4      9   g   K%  VNK)  	  ppV F  p\        P                  V K  	  R# R# u upi ):NNN.N)	r   r   r   r!   modulesr   r   r   split)r"   
modulenamer   r'   s   &   r   tearDownTestPkg.tearDown6   s    ll11JS[[(KK
+ 2 999TYY <<<(+ ;,,$**S/9 tG ;KK%   ;s   $"C1C1c                \    \        \        P                  ! V4      \        4       R V /4       R# )r"   N)exectextwrapdedentglobals)r"   codes   &&r   run_codeTestPkg.run_codeE   s    X__T"GI~>r   c                   \         P                  ! 4       p\        P                  P	                  ^ V4       \
        P                  P                  V4      '       g   \
        P                  ! V4       V F  w  r4VP                  4       pV P                  P                  RP                  V4      4       TpV F"  p\
        P                  P                  Wg4      pK$  	  Vf   \
        P                  ! V4       K  \        VR4      ;_uu_ 4       pVP                  V4       VP                  R4      '       g   VP                  R4       RRR4       K  	  W n        V^ ,          ^ ,          V n        R#   + '       g   i     EK  ; i)r   r&   Nw
)tempfilemkdtempr   r   insertr   r	   mkdirr(   r!   addr   openwriteendswithr   r   )	r"   descrr   r   contentscompsr   cfs	   &&       r   mkhierTestPkg.mkhierH   s   !4 ww}}T""HHTN#NDJJLE##''8H77<<4 "(C((AGGH%#,,T22 )( $ 	Qx{ )((s   :E//Fc                8    RR.pV P                  V4       ^ RIpR# )t1N)rG   N)zt1 __init__.py )rD   rG   )r"   hierrG   s   &  r   test_1TestPkg.test_1^   s    45Dr   c                   . ROpV P                  V4       ^ RIp^ RIpV P                  VP                  R 4       V P                  VP
                  P                  R4       V P                  VP
                  P                  P                  R4       RpV P                  V4       ^ RIHp ^ RIHp ^ RIH	p V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  P                  R4       R F+  pV P                  \        4       R,          R	V,          4       K-  	  ^ RIp^ RIpV P                  VP                  R 4       V P                  VP
                  P                  R4       V P                  VP
                  P                  P                  R4       R
pV P                  V4       R# )t2Nzt2.subzt2.sub.subsubz{
            import t2
            from t2 import *
            self.assertEqual(dir(), ['self', 'sub', 't2'])
            subsubsubspamr   zFailed to import %sz_
            from t2 import *
            self.assertEqual(dir(), ['self', 'sub'])
            ))rM   N)zt2 __init__.pyz'doc for t2')zt2 subN)zt2 sub __init__.pyrH   )zt2 sub subsubN)zt2 sub subsub __init__.pyspam = 1)rS   rO   rQ   rM   )rD   t2.subt2.sub.subsubassertEqual__name__rO   rQ   r2   rM   rS   
assertTruelocals)r"   rI   rM   srO   rQ   rS   r   s   &       r   test_2TestPkg.test_2c   sS   
 	Dd+(3//A
 	a!&x0/:,,o>3DOOFHV,.Cd.JK 4 	d+(3//A 	ar   c                   . ROpV P                  V4       ^ RIpV P                  VP                  R 4       V P                  VP                  P                  R4       V P                  VP                  P
                  P                  R4       R# )t3Nzt3.subzt3.sub.subsub))r_   N)zt3 __init__.pyrH   )zt3 subN)zt3 sub __init__.pyrH   )zt3 sub subsubN)zt3 sub subsub __init__.pyrT   )rD   t3.sub.subsubrW   rX   rO   rQ   )r"   rI   r_   s   &  r   test_3TestPkg.test_3   sd     	Dd+(3//Ar   c                V    . ROpV P                  V4       RpV P                  V4       R# )t4.pyNz[
            from t4.sub.subsub import *
            self.assertEqual(spam, 1)
            )	)rd   z)raise RuntimeError('Shouldnt load t4.py'))t4N)zt4 __init__.pyrH   )z	t4 sub.py*raise RuntimeError('Shouldnt load sub.py'))zt4 subN)zt4 sub __init__.pyrH   )zt4 sub subsub.py-raise RuntimeError('Shouldnt load subsub.py'))zt4 sub subsubN)zt4 sub subsub __init__.pyrT   )rD   r2   )r"   rI   r[   s   &  r   test_4TestPkg.test_4   s,     	D 	ar   c                j   . ROpV P                  V4       RpV P                  V4       ^ RIpV P                  \	        \        V4      4      . RO4       V P                  \	        \        VP                  4      4      . RO4       V P                  \	        \        VP                  4      4      . RO4       R# )t5Nzo
            from t5 import *
            self.assertEqual(dir(), ['foo', 'self', 'string', 't5'])
            ))rk   N)zt5 __init__.pyzimport t5.foo)zt5 string.pyrT   )z	t5 foo.pyz-from . import string; assert string.spam == 1)
__cached____doc____file__
__loader__rX   __package____path____spec__foostringrk   )rl   rm   rn   ro   rX   rp   rr   rt   )rl   rm   rn   ro   rX   rp   rr   rS   )rD   r2   rk   rW   r   dirrs   rt   )r"   rI   r[   rk   s   &   r   test_5TestPkg.test_5   s     	D 	aB1	2 	BFF,K	L 	BII/I	Jr   c                    . ROpV P                  V4       ^ RIpV P                  \        \	        V4      4      . RO4       RpV P                  V4       R# )t6Na  
            import t6
            from t6 import *
            self.assertEqual(fixdir(dir(t6)),
                             ['__all__', '__cached__', '__doc__', '__file__',
                              '__loader__', '__name__', '__package__',
                              '__path__', '__spec__', 'eggs', 'ham', 'spam'])
            self.assertEqual(dir(), ['eggs', 'ham', 'self', 'spam', 't6'])
            ))ry   N)zt6 __init__.pyz!__all__ = ['spam', 'ham', 'eggs'])z
t6 spam.pyrH   )z	t6 ham.pyrH   )z
t6 eggs.pyrH   )	__all__rl   rm   rn   ro   rX   rp   rq   rr   )rD   ry   rW   r   ru   r2   )r"   rI   ry   r[   s   &   r   test_6TestPkg.test_6   sL     	DB&	' 	ar   c                   . ROpV P                  V4       RRRrCp^ RIpV P                  \        \	        V4      4      . RO4       V P                  V4       ^ RIHp V P                  \        \	        V4      4      . RO4       V P                  V4       V P                  V4       ^ RIHp V P                  \        \	        V4      4      . RO4       V P                  V4       V P                  V4       V P                  V4       ^ RI	H
p V P                  V^4       V P                  V4       V P                  V4       V P                  V4       R# )t7.pyNrN   rP   rR   )	)r~   rH   )t7N)zt7 __init__.pyrH   )z	t7 sub.pyrf   )zt7 subN)zt7 sub __init__.pyrH   )z
t7 sub .pyrg   )zt7 sub subsubN)zt7 sub subsub __init__.pyrT   )rl   rm   rn   ro   rX   rp   rq   rr   )	rl   rm   rn   ro   rX   rp   rq   rr   rS   )rD   r   rW   r   ru   assertFalserO   t7.subrQ   t7.sub.subsubrS   )	r"   rI   r   rO   rQ   tassubpar	subsubsubhams	   &        r   test_7TestPkg.test_7   s"    	D dC)M	N 	$F,M	N 	.I/"	# 	 -a  r   z)Docstrings are omitted with -O2 and abovec                    RR\         P                  ,           R,           R3.pV P                  V4       ^ RIpV P	                  VP
                  R4       R# )t8Nzt8 __init__pyz'doc for t8'z
doc for t8)r   N)r   extseprD   r   rW   rm   )r"   rI   r   s   &  r   test_8TestPkg.test_8  sI     ryy(-~> 	D\2r   )r!   r   r   r   N)rX   
__module____qualname____firstlineno__r#   r*   r2   rD   rJ   r\   ra   rh   rv   r{   r   unittestskipIfr   flagsoptimizer   __static_attributes____classdictcell__)__classdict__s   @r   r   r   .   ss     (&?#,
-^B *J86*!X __SYY''1,@B3B3r   r   __main__)r   r   r7   r.   r   r   r   TestCaser   rX   main r   r   <module>r      sM     	   
0v3h v3p zMMO r   