
    dafG                         d dl Z d dlZd dlmZ d dlmZ d dlmZ  ej                  d      ZdZ	 G d de j                        Zedk(  r e j                          yy)	    N)UserDict)import_helper)	swap_attr	_testcapic                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	PyEval_EvalCodeExTestsc                 \   d }t         j                  }|j                  }| j                   ||t	        d            d       | j                  t        ||i        | j                  t        ||t        d             | j                  t        ||g        | j                  t        ||d       y )Nc                      t         S Na     ;/root/Python-3.12.4/Lib/test/test_capi/test_eval_code_ex.pyfz-PyEval_EvalCodeExTests.test_simple.<locals>.f   s    Hr      r   )	r   eval_code_ex__code__assertEqualdictassertRaises	NameErrorSystemErrorr   selfr   r   codes       r   test_simplez"PyEval_EvalCodeExTests.test_simple   s    	 !--zzdD1I6:)\4<+|T8a=I+|T2>+|T1=r   c           	         d fd}t        t        d|      5   G d d      }d d d        t        j                  }g }t	        d|      }| j                   ||             | j                  |dg       | j                   ||t	        d                   | j                  |dg       | j                   ||t        d	                   | j                  |d	g       | j                   ||i              | j                  |dg       | j                   ||t                     | j                  |dg       | j                  t        ||g        | j                  t        ||d       | j                  t        |t	        |
      i        | j                  t        |t	        |
      t               | j                  t        |t	        |
      g        | j                  t        |t	        |
      d       y # 1 sw Y   xY w)Nc                    | j                   y r   )r   )funcnamebaseskwdsr   s       r   build_classz>PyEval_EvalCodeExTests.test_custom_locals.<locals>.build_class$   s    ==Dr   __build_class__c                       e Zd Zegedd y)4PyEval_EvalCodeExTests.test_custom_locals.<locals>.AN)__name__
__module____qualname__r   rr   r   r   Ar'   )   s    s!r   r,   r   )r   r+      r      )r+   )r   builtinsr   r   r   assertIsNoner   r   NULLr   	TypeErrorr   )r   r$   r,   r   resultsgr   s         @r   test_custom_localsz)PyEval_EvalCodeExTests.test_custom_locals!   s   	! x!2K@ 	 	
 !--1 ,tQ/01#&,tQq	:;1#&,tQ1>?1#&,tQ341#&,tQ561#&)\4B?)\4A>)\4"M)\4$O)\4"M)\4!L1	 	s   HHc                     d }t         j                  }|j                  }| j                   ||i i d      d       | j	                  t
        ||i i d       | j	                  t
        ||i i d       y )Nc                     | S r   r   r   bcs      r   r   z0PyEval_EvalCodeExTests.test_with_args.<locals>.fC       Hr   )r   r-   r.   r   )r   r-   )r   r-   r.      r   r   r   r   r   r2   r   s       r   test_with_argsz%PyEval_EvalCodeExTests.test_with_argsB   sh    	 !--zzdBI>B)\4RH)\4RNr   c                 z   d }t         j                  }|j                  }| j                   ||i i dt	        ddd            d       | j                  t        ||i i dt	        dd             | j                  t        ||i i dt	        dd             | j                  t        ||i i dt	        dddd	             y )
Nc                     | S r   r   r8   s      r   r   z2PyEval_EvalCodeExTests.test_with_kwargs.<locals>.fM   r;   r   r   r   r-   r.   r8   r   r9   r<   )r   r9   r:   d)r   r   r   r   r   r   r2   r   s       r   test_with_kwargsz'PyEval_EvalCodeExTests.test_with_kwargsL   s    	 !--zzdBBqA8KLaP)\4RTAQR^T)\4RTAQR^T)\4RTAQRVW[\E]^r   c           
          d }t         j                  }|j                  }| j                   ||i i di d      d       | j	                  t
        ||i i di d       y )Nc                     | S r   r   r   s    r   r   z3PyEval_EvalCodeExTests.test_with_default.<locals>.fX   r;   r   r   )r   r   r=   r   s       r   test_with_defaultz(PyEval_EvalCodeExTests.test_with_defaultW   sX    	 !--zzdBBDA1E)\4RRLr   c                    d }t         j                  }|j                  }| j                   ||i i di dt	        d            d       | j                  t        ||i i di di 	       | j                  t        ||i i di dt        	       | j                  t        ||i i di dt        d      	       | j                  t        ||i i di dg 	       | j                  t        ||i i di dd	       y )Nc                     | S r   r   r   s    r   r   z9PyEval_EvalCodeExTests.test_with_kwarg_default.<locals>.fa   r;   r   r   r   r   )
r   r   r   r   r   r   r2   r1   r   r   r   s       r   test_with_kwarg_defaultz.PyEval_EvalCodeExTests.test_with_kwarg_default`   s    	 !--zzdBBBq	JAN)\4RRRP)\4RRTR+|T2r2r2xZ[}]+|T2r2r2rR+|T2r2r2qQr   c                    ddfd}t         j                  }|j                  }| j                   ||i i di di |j                        d       | j                   ||i i di di |j                  d d d         d       y )Nr   r-   c                        S r   r   rA   s   r   r   z3PyEval_EvalCodeExTests.test_with_closure.<locals>.fp   s    Hr   r   )r   r   r   r   __closure__)r   r   r   r   r   r9   s       @@r   test_with_closurez(PyEval_EvalCodeExTests.test_with_closurem   s    	 !--zzdBBBAMMRTUVdBBBAMMRVTVRVDWXZ[\r   N)
r(   r)   r*   r   r5   r>   rC   rF   rI   rN   r   r   r   r   r      s,    > MBO	_MR
]r   r   __main__)unittestr/   collectionsr   test.supportr   r   import_moduler   r1   TestCaser   r(   mainr   r   r   <module>rV      s^        & " (M''4	h]X.. h]\ zHMMO r   