
    h                     v    S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	rS SK
rS SKJr   " S S\5      rg)    N)
CythonTestc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rSrg)TestCyCache   c                 @   [         R                  " U 5        [        R                  " S[        R
                  R                  S5      (       a  SOS S9U l        [        R                  " SU R                  S9U l        [        R                  " SU R                  S9U l	        g )Nzcycache-testTEST_TMP)prefixdirsrccache)
r   setUptempfilemkdtempospathisdirtemp_dirsrc_dir	cache_dirselfs    X/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Build/Tests/TestCyCache.pyr   TestCyCache.setUp   so     ((! ggmmJ77
TC  ''u$--H!))dmmL    c                 ~    [         R                   " [        R                  R                  U R                  U5      5      $ N)globr   r   joinr   )r   	file_globs     r   cache_filesTestCyCache.cache_files   s$    yydnni@AAr   c                     [         R                  R                  5         S [         R                  R                  l        [         R                  R                  R                  " U0 UD6  g r   )CythonUtilsclear_function_cachesBuildDependencies	_dep_tree	cythonizer   argskwargss      r   fresh_cythonizeTestCyCache.fresh_cythonize   sA    **,.2!!+!!++T<V<r   c                     [         R                  R                  5         [         R                  R                  R
                  " U0 UD6  g r   )r#   r$   r%   CompilerMaincompiler*   s      r   fresh_compileTestCyCache.fresh_compile!   s/    **,$$d5f5r   c                    SnSn[         R                  R                  U R                  S5      nUS S S-   n[	        US5       nUR                  U5        S S S 5        U" X@R                  S9  U" X@R                  S9  U R                  S[        U R                  S	5      5      5        [	        U5       nUR                  5       nS S S 5        [         R                  " U5        [	        US5       nUR                  U5        S S S 5        U" X@R                  S9  [	        U5       nUR                  5       nS S S 5        [         R                  " U5        U R                  WWS
5        U R                  S[        U R                  S	5      5      5        [	        US5       nUR                  U5        S S S 5        U" X@R                  S9  U R                  S[        U R                  S	5      5      5        [	        U5       nUR                  5       n	S S S 5        U R                  W	USR                  [        [        R                  " U	R!                  S5      UR!                  S5      5      5      S S 5      S9  g ! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       GN= f! , (       d  f       N= f)Nz
value = 1
z
value = 2
a.pyx.cwr      za.c*zC file not changed!   

   )msg)r   r   r   r   openwriter   assertEquallenr    readunlinkassertNotEquallistdifflibunified_diffsplit)
r   compilation_methodcontent1content2a_pyxa_cfa_contents1a_contents2
a_contentss
             r   _test_cycache_switch TestCyCache._test_cycache_switch&   s*     T\\73CRj4%GGH  	5757C 0 0 89:#Y!&&(K 
		#%GGH  	57#Y!&&(K 
		#K6KLC 0 0 89:%GGH  	57C 0 0 89:#Y!J 		$w33  &(9(9$(? A BBE2G H 	 	I?  Y 
 Y  YsH   I22J-J"J(J:9K2
J
J
J%(
J7:
K	
Kc                 :    U R                  U R                  5        g r   )rT   r-   r   s    r   test_cycache_switch_cythonize)TestCyCache.test_cycache_switch_cythonizeP   s    !!$"6"67r   c                 :    U R                  U R                  5        g r   )rT   r3   r   s    r   test_cycache_switch_compile'TestCyCache.test_cycache_switch_compileS   s    !!$"4"45r   c                    [         R                  R                  U R                  S5      nUS S S-   n[	        US5       nUR                  S5        S S S 5        U" X R                  S9  [         R                  R                  U R                  [         R                  " U R                  5      S   5      n[        R                  " US5       nUR                  S	5        S S S 5        [         R                  " U5        U" X R                  S9  [	        U5       nUR                  5       nS S S 5        U R                  WS
SUS S -  5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NJ= f)Nr6   r7   r8   r9   passr:   r   wbs
   fake stuffz
fake stuffzUnexpected contents: %s...d   )r   r   r   r   r@   rA   r   listdirgzipGzipFilerE   rD   rB   )r   rK   rN   rO   rP   a_cachegzipfilerS   s           r   _test_cycache_uses_cache$TestCyCache._test_cycache_uses_cacheV   s   T\\73CRj4%GGFO  	57'',,t~~rzz$../I!/LM]]7D)XNN=) *
		#57#Y!J \5
4C8HH	J  *) Ys#   E	EE+	
E
E(+
E9c                 :    U R                  U R                  5        g r   )re   r-   r   s    r   !test_cycache_uses_cache_cythonize-TestCyCache.test_cycache_uses_cache_cythonizek       %%d&:&:;r   c                 :    U R                  U R                  5        g r   )re   r3   r   s    r   test_cycache_uses_cache_compile+TestCyCache.test_cycache_uses_cache_compilen       %%d&8&89r   c                 >   [         R                  R                  U R                  S5      nUS S S-   nUS S S-   n[	        US5       nUR                  S5        S S S 5        U" X R                  SS9  U R                  [         R                  R                  U5      U5        [         R                  " U5        [         R                  " U5        U" X R                  SS9  U R                  [         R                  R                  U5      U5        g ! , (       d  f       N= f)	Nr6   r7   r8   z.htmlr9   r]   default)r   annotate
r   r   r   r   r@   rA   r   
assertTrueexistsrE   )r   rK   rN   rO   a_htmlrP   s         r   _test_cycache_annotation$TestCyCache._test_cycache_annotationq   s    T\\73CRj4sg%%GGFO  	5Kv.7
		&
		#5Kv.7 s   D
Dc                 :    U R                  U R                  5        g r   )rv   r-   r   s    r   !test_cycache_annotation_cythonize-TestCyCache.test_cycache_annotation_cythonize   rj   r   c                 :    U R                  U R                  5        g r   )rv   r3   r   s    r   test_cycache_annotation_compile+TestCyCache.test_cycache_annotation_compile   rn   r   c                 J   [         R                  R                  U R                  S5      nUS S S-   nUS S S-   nUS S S-   n[	        US5       nUR                  S5        S S S 5        U" X R                  S9  X4U/nU HH  nU R                  [         R                  R                  U5      U5        [         R                  " U5        MJ     U" X R                  S9  U H2  nU R                  [         R                  R                  U5      U5        M4     g ! , (       d  f       N= f)	Nr6   r7   r8   z.hz_api.hr9   z)cdef public api int foo(int x): return x
r:   rr   )	r   rK   rN   rO   a_ha_api_hrP   expectedoutputs	            r   _test_multi_file_output#TestCyCache._test_multi_file_output   s    T\\73CRj4CRj4*x'%GG@A  	57g&FOOBGGNN62F;IIf  	57FOOBGGNN62F;  s   D
D"c                 :    U R                  U R                  5        g r   )r   r-   r   s    r    test_multi_file_output_cythonize,TestCyCache.test_multi_file_output_cythonize   s    $$T%9%9:r   c                 :    U R                  U R                  5        g r   )r   r3   r   s    r   test_multi_file_output_compile*TestCyCache.test_multi_file_output_compile   s    $$T%7%78r   c                    [         R                  R                  U R                  S5      nUS [	        S5      *  S-   nUS [	        S5      *  S-   n[        US5       nUR                  S5        S S S 5        U" X R                  SS9  U R                  S	[	        U R                  S
5      5      5        [         R                  " U5        U" X R                  SS9  U R                  S[	        U R                  S
5      5      5         [         R                  " U5        U" X R                  SSS9  U R                  S[	        U R                  S
5      5      5        [         R                  " U5        U" X R                  SSS9  U R                  S[	        U R                  S
5      5      5        g ! , (       d  f       GNA= f! [         a    [         R                  " U5         Nf = f)Nzoptions.pyxz.pyxr8   z.cppr9   r]   F)r   cplusr;   z
options.c*Tr<   )r   r   show_version)r   r   r   r   rC   r@   rA   r   rB   r    rE   FileNotFoundError)r   rK   hash_pyxhash_chash_cpprP   s         r   _test_options_invalidation&TestCyCache._test_options_invalidation   sr   77<<m<-CK<(4/Mc&k\*V3(C AGGFO !8>>GC 0 0 >?@
		&8>>FC 0 0 >?@	 IIf
 	8>>UZ[C 0 0 >?@
		&8>>UYZC 0 0 >?@3 !  ! 	 IIh	 s   F'F9 '
F69 GGc                 :    U R                  U R                  5        g r   )r   r-   r   s    r   #test_options_invalidation_cythonize/TestCyCache.test_options_invalidation_cythonize   s    ''(<(<=r   c                 :    U R                  U R                  5        g r   )r   r3   r   s    r   !test_options_invalidation_compile-TestCyCache.test_options_invalidation_compile   s    ''(:(:;r   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r    r-   r3   rT   rW   rZ   re   rh   rl   rv   ry   r|   r   r   r   r   r   r   __static_attributes__ r   r   r   r      sg    MB=
6
(IT86J*<:8<:<(;9A>><r   r   )rH   r   ra   r   sysr   unittestCython.Build.Dependenciesr#   Cython.Compiler.MainCython.UtilsCython.TestUtilsr   r   r   r   r   <module>r      s4       	 
       's<* s<r   