o
    g4"                     @   sX   d dl Z d dlZd dlZd dlZejdkZdZG dd dejZe	dkr*e
  dS dS )    Nntl    c                   @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )SetConfigTestsc                 C   s   t  | _ttj| _d S N)_testinternalcapiZ
get_config
old_configdictsys__dict__sys_copyself r   Q/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/_test_embed_set_config.pysetUp   s   
zSetConfigTests.setUpc                 C   s(   t | j tj  tj| j d S r   )r   
set_configr   r   r	   clearupdater
   r   r   r   r   tearDown   s   
zSetConfigTests.tearDownc                 K   s   t | j|B  d S r   )r   r   r   )r   kwargsr   r   r   r      s   zSetConfigTests.set_configc                 K   s>   | j di | | D ]\}}| tt||||f qd S )Nr   )r   itemsassertEqualgetattrr   )r   r   keyvaluer   r   r   check   s   zSetConfigTests.checkc                 C   s  d}d }|}d|dg}g }ddddt d fg}g d	}tr"|d
 |D ]}|||f ||df ||df q$dD ]}|||f ||df ||df q>dD ]'}|||f ||df ||df ||dgf ||dgf qXtr|d
|f t|ft|ffD ]D\}	}
|
D ]=\}}| j||iB }| j|||	d" | |	 t	| W d    n1 sw   Y  W d    q1 sw   Y  qqd S )Nabcdef)_config_initr   )r      )	hash_seedr   r       )r   isolateduse_environmentdev_modeZinstall_signal_handlersuse_hash_seedfaulthandlertracemallocZimport_timeZshow_ref_countZ	dump_refsZmalloc_stats
parse_argvsite_importbytes_warninginspectinteractiveoptimization_levelparser_debugwrite_bytecodeverbosequietuser_site_directoryZconfigure_c_stdioZbuffered_stdioZpathconfig_warningsmodule_search_paths_setZskip_source_first_lineZ_install_importlibZ
_init_mainZ_isolated_interpreterZlegacy_windows_stdiog       @)Zfilesystem_encodingZfilesystem_errorsZstdio_encodingZstdio_errorsZcheck_hash_pycs_modeZprogram_name
platlibdirs   bytes{   )	orig_argvargvxoptionswarnoptionsmodule_search_paths)r   r   exc_type)
MAX_HASH_SEED
MS_WINDOWSappend
ValueError	TypeErrorr   subTestZassertRaisesr   r   )r   Zinvalid_uintZNULLZinvalid_wstrZinvalid_wstrlistZ
type_testsZvalue_testsoptionsr   r;   Ztestsr   Zconfigr   r   r   test_set_invalid$   sT   


!
zSetConfigTests.test_set_invalidc              	   C   s  dD ]3\}}}| j |||d | jdi ||ddi | ttj|| W d    q1 s0w   Y  q| jdd | tjjd | tjd | jdd | tjjd | tjd | jddd	 | tjjd | jddd	 | tjjd | jdd
 | tjjd | jdd
 | tjjd | jdd | tjj	d | jdd | tjj	d | jddd | tjj
d | jddd | tjj
d | jddd | tjjd | jddd | tjjd | jddd | tjjd d S )N))debugr.   r!   )r+   r+      )r,   r,      )optimizer-   r   )r0   r0   r!   )r*   r*   
   )r1   r1      )r"   r"      )r   r   r   r(   r   )r/   Tr!   F)r2   r"   )r)   )r$   )r#   r"   )r%   r    r5   r   )rA   r   r   r   r   flagsdont_write_bytecodeno_user_siteno_siter$   ignore_environmenthash_randomization)r   Zsys_attrr   r   r   r   r   
test_flags   sB   
zSetConfigTests.test_flagsc                 C   s^   | j g d | j ddgd | jg d | tji  | jddgd | tjddd	 d S )
N)r9   defaultignore)r8   devztracemalloc=5T5)rT   r'   )r   r   r   r   	_xoptionsr   r   r   r   test_options   s   zSetConfigTests.test_optionsc                 C   st   | j ddddddd | jdd	 | tjd | jdddd d d d
 | tjd | tjd | tjd d S )N
executableprefixbase_prefixexec_prefixbase_exec_prefixr4   )rX   rY   rZ   r[   r\   r4   base_executable)r]   )rX   rY   r[   r]   rZ   r\   )r   r   r   r   _base_executablerZ   r\   r   r   r   r   test_pathconfig   s*   zSetConfigTests.test_pathconfigc                 C   sJ   | j dg dd | tjg d | j ddgd | tjg d d S )Nr!   )abc)r3   r:   r   new_path)r   r   r   pathr   r   r   r   	test_path   s   zSetConfigTests.test_pathc                 C   sn   | j dddgddgd | tjddg | tjddg | j dg g d | tjdg | tjg  d S )Nr   Zpython_programargsZorigZ	orig_args)r(   r7   r6    )r   r   r   r7   r6   r   r   r   r   	test_argv   s   zSetConfigTests.test_argvc                 C   s   | j d d | j dd d S )N)pycache_prefixri   )r   r   r   r   r   test_pycache_prefix   s   z"SetConfigTests.test_pycache_prefixN)__name__
__module____qualname__r   r   r   r   rC   rQ   rW   r_   re   rh   rj   r   r   r   r   r      s    q2	
r   __main__)r   osr   Zunittestnamer=   r<   ZTestCaser   rk   mainr   r   r   r   <module>   s   
 t