
    2hh                     $   S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	J
r
  Sr\R                  " S5      r\R                  r\R                  r\R                   r " S S\5      r " S S	\R&                  5      r\S
:X  a  \R,                  " 5         gg)    N)UserDict)import_helper)unlinkTESTFNTESTFN_ASCIITESTFN_UNDECODABLE	_testcapic                       \ rS rSrSrg)DictSubclass    N)__name__
__module____qualname____firstlineno____static_attributes__r       @/opt/python-3.13.8/usr/lib/python3.13/test/test_capi/test_run.pyr   r      s    r   r   c                       \ rS rSrS rS r\R                  " \S5      \R                  " \
R                  S:H  S5      S 5       5       rSrg	)
CAPITest   c           
         S nSnU R                  U" S[        SS95      5        U R                  U" S[        SS90 5      5        U R                  U" S0 [        SS95      5        U R                  U" S0 [        SS95      5        U R                  [        US0 5        U R                  [        US0 0 5        U R                  [
        US[        SS9/ 5        U R                  [
        US[        SS9S5        U R                  U" S[        SS95      5        U R                  U" S[        5       [        SS95      5        U R                  [        US[        5       5        U R                  U" SSS05      5        U R                  [        US0 5        U R                  [        US[        5        U R                  [        US[        0 5        U R                  [        US[        [        SS95        U R                  [        US[        5       5        U R                  [        US[        5       0 5        U R                  [        US[        5       [        SS95        g )Nc                 :    [         R                  " U [        /UQ76 $ N)r	   run_stringflagsPy_file_input)sargss     r   run*CAPITest.test_run_stringflags.<locals>.run+   s    ,,QEEEr      a
   as   ä
   äs   
)
assertIsNonedictr   assertRaises	NameError	TypeErrorr   SyntaxErrorSystemErrorNULL)selfr   sources      r   test_run_stringflagsCAPITest.test_run_stringflags(   s   	F#fdQi01#fdQi45#fb$)45#fb(Q-89)S&"5)S&"b9)S&$)R@)S&$)Q?#flQ&789#flndQi@A)S&,.A#mfa[9:+sIr:+sFD9+sFD"=+sFD$)D+sFHJ?+sFHJC+sFHJq	Jr   c           	      n  ^ [         R                  " [         R                  S:w  a  [        O[        5      m[        TS5       nUR                  S5        S S S 5        U R                  [        T5        U4S jnU R                  U" [        SS95      5        U R                  U" [        SS90 5      5        U R                  U" 0 [        SS95      5        U R                  U" 0 [        SS95      5        U R                  U" [        SS90 S5      5        U R                  [        U0 5        U R                  [        U0 0 5        U R                  [        U[        SS9/ 5        U R                  [        U[        SS9S5        U R                  U" [        SS95      5        U R                  U" [        5       [        SS95      5        U R                  [        U[        5       5        U R                  [         U["        5        U R                  [         U["        0 5        U R                  [         U["        [        SS95        U R                  [         U[        5       5        U R                  [         U[        5       0 5        U R                  [         U[        5       [        SS95        g ! , (       d  f       GNX= f)Nntwbr!   c                  <   > [         R                  " T[        /U Q76 $ r   )r	   run_fileexflagsr   )r   filenames    r   r   *CAPITest.test_run_fileexflags.<locals>.runO   s    ,,X}LtLLr   r"   r#   )osfsencodenamer   r   openwrite
addCleanupr   r&   r'   r   r(   r)   r*   r   r,   r-   )r.   fpr   r7   s      @r   test_run_fileexflagsCAPITest.test_run_fileexflagsI   s   ;;DvlK(D!RHHV ")	M 	#dQi.)#dQi,-#b$),-#b(Q-01#dQiQ/0)S"-)S"b1)S$)R8)S$)Q7#lQ/01#lndQi89)S,.9+sD1+sD"5+sD$)<+sHJ7+sHJ;+sHJq	B5 "!s   J%%
J4z)only works if there are undecodable pathsr3   zdoes not work on Windowsc           
      b   [         R                  n [        [        S5       nUR	                  S5        S S S 5        U R                  [        [        5        U R                  U" [        [        [        SS95      5        g ! , (       d  f       NQ= f! [         a    U R                  S5         NWf = f)Nr4   r!   z#undecodable paths are not supportedr"   r#   )r	   r6   r<   r   r=   r>   r   OSErrorskipTestr&   r   r'   )r.   r   r?   s      r   .test_run_fileexflags_with_undecodable_filename7CAPITest.test_run_fileexflags_with_undecodable_filenameh   s     ''	A($/2  0OOF$67 	#0-KL 0/  	AMM?@	As'   B A?"B ?
B	B B.-B.r   N)r   r   r   r   r0   r@   unittest
skipUnlessr   skipIfr9   r;   rE   r   r   r   r   r   r      sR    ,KBC> +-XY__RWW_&@AM B ZMr   r   __main__)r9   rG   collectionsr   test.supportr   test.support.os_helperr   r   r   r   r-   import_moduler	   Py_single_inputr   Py_eval_inputr'   r   TestCaser   r   mainr   r   r   <module>rS      s    	    & S S''4	++''''	4 	`Mx   `MF zMMO r   