
    daf"                         d dl Z d dlZd dlZd dlZd dlmZ dZ G d dej                        Ze	dk(  r ej                          yy)    N)
MS_WINDOWSl    c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)SetConfigTestsc                 r    t        j                         | _        t        t        j
                        | _        y N)_testinternalcapi
get_config
old_configdictsys__dict__sys_copyselfs    6/root/Python-3.12.4/Lib/test/_test_embed_set_config.pysetUpzSetConfigTests.setUp   s"    +668S\\*    c                     t        j                          t        j                  | j                         t        j
                  j                          t        j
                  j                  | j                         y r   )	r   reset_path_config
set_configr
   r   r   clearupdater   r   s    r   tearDownzSetConfigTests.tearDown   sF    ++-$$T__5DMM*r   c                 H    t        j                  | j                  |z         y r   )r   r   r
   )r   kwargss     r   r   zSetConfigTests.set_config   s    $$T__v%=>r   c                      | j                   di | |j                         D ](  \  }}| j                  t        t        |      |||f       * y )N )r   itemsassertEqualgetattrr   )r   r   keyvalues       r   checkzSetConfigTests.check   sL    !&! ,,. 	+JCWS#.!5\+	+r   c           	         d}d }|}d|dg}g }ddddt         dz   fg}g d	}t        r|j                  d
       |D ];  }|j                  ||f       |j                  |df       |j                  |df       = dD ];  }|j                  ||f       |j                  |df       |j                  |df       = dD ]c  }|j                  ||f       |j                  |df       |j                  |df       |j                  |dgf       |j                  |dgf       e t        r|j                  d
|f       t        |ft        |ffD ]l  \  }	}
|
D ]b  \  }}| j
                  ||iz  }| j                  |||	      5  | j                  |	      5  t        j                  |       d d d        d d d        d n y # 1 sw Y   xY w# 1 sw Y   }xY w)Nabcdef)_config_initr   )r(      )	hash_seedr%   r*      )r(   isolateduse_environmentdev_modeinstall_signal_handlersuse_hash_seedfaulthandlertracemallocimport_timecode_debug_rangesshow_ref_count	dump_refsmalloc_stats
parse_argvsite_importbytes_warninginspectinteractiveoptimization_levelparser_debugwrite_bytecodeverbosequietuser_site_directoryconfigure_c_stdiobuffered_stdiopathconfig_warningsmodule_search_paths_setskip_source_first_line_install_importlib
_init_mainlegacy_windows_stdiog       @)filesystem_encodingfilesystem_errorsstdio_encodingstdio_errorscheck_hash_pycs_modeprogram_name
platlibdirs   bytes{   )	orig_argvargvxoptionswarnoptionsmodule_search_paths)r!   r"   exc_type)
MAX_HASH_SEEDr   append
ValueError	TypeErrorr
   subTestassertRaisesr   r   )r   invalid_uintNULLinvalid_wstrinvalid_wstrlist
type_testsvalue_testsoptionsr!   rX   testsr"   configs                r   test_set_invalidzSetConfigTests.test_set_invalid%   s$   !4/
  -!+,
 
B NN12 	*C\23sEl+sCj)	*
 	*C, \23sHo.sCj)1	*6
 	1C %567sCj)sEl+sSEl+sXJ/0	1  6EF %
# 
 	=OHe $ =
UC<7\\c\J =**84 =)44V<== ==		== == =s$   <GF9	$G9G>GGc           
         dD ]c  \  }}}| j                  |||      5   | j                  di ||ddi | j                  t        t        j
                  |      |       d d d        e | j                  d       | j                  t        j
                  j                  d       | j                  t        j                  d       | j                  d       | j                  t        j
                  j                  d       | j                  t        j                  d       | j                  dd	       | j                  t        j
                  j                  d       | j                  dd	       | j                  t        j
                  j                  d       | j                  d
       | j                  t        j
                  j                  d       | j                  d
       | j                  t        j
                  j                  d       | j                  d       | j                  t        j
                  j                  d       | j                  d       | j                  t        j
                  j                  d       | j                  dd       | j                  t        j
                  j                  d       | j                  dd       | j                  t        j
                  j                  d       | j                  dd       | j                  t        j
                  j                  d       | j                  dd       | j                  t        j
                  j                  d       | j                  dd       | j                  t        j
                  j                  d       y # 1 sw Y   xY w)N))debugr>   r+   )r;   r;      )r<   r<      )optimizer=   r)   )r@   r@   r+   )r:   r:   
   )rA   rA      )r,   r,      )r   r!   r"   r8   r   )r?   Tr+   F)rB   r,   )r9   )r.   )r-   r,   )r0   r*   rR   r   )r]   r   r   r    r   flagsdont_write_bytecodeno_user_siteno_siter.   ignore_environmenthash_randomization)r   sys_attrr!   r"   s       r   
test_flagszSetConfigTests.test_flags   s   	%
 	F Hc5 (5A F@3|Q"?@  H!=uEF F	F 	q)66=00$7q)66>00%8A://3A://3A&**A.A&**A.#++U3#++T2A655q9A655q9a1555q9a1555q9a3755q9KF Fs   AN==O	c                 "   | j                  g        | j                  ddg       | j                  g        | j                  t        j                  i        | j                  ddg       | j                  t        j                  ddd	       y )
N)rV   defaultignore)rU   devztracemalloc=5T5)r|   r2   )r#   r   r   r   	_xoptionsr   s    r   test_optionszSetConfigTests.test_options   sq    

r
"

	84
5$+%!9:S(IJr   c                    | j                  dddddd       | j                  d	       | j                  t        j                  d       | j                  dddd d d 
       | j                  t        j                  d       | j                  t        j
                  d       | j                  t        j                  d       y )N
executableprefixbase_prefixexec_prefixbase_exec_prefixrQ   )r   r   r   r   r   rQ   base_executable)r   )r   r   r   r   r   r   )r#   r   r   r   _base_executabler   r   r   s    r   test_pathconfigzSetConfigTests.test_pathconfig   s    

#%%/# 	 	% 	(9:--/@A 	#% ! 	 	# 	--|<(3--}=r   c                     | j                  dg d       | j                  t        j                  g d       | j                  ddg       | j	                  t        j                  g d       | j	                  t        j                  dg       y )Nr+   )abc)rF   rW   r   new_path)r   r   r   pathassertNotEqualr   s    r   	test_pathzSetConfigTests.test_path   sp    ,; 	 	=?3 	-7L 	 	:CHHo6CHHzl3r   c                 f   | j                  dddgddg       | j                  t        j                  ddg       | j                  t        j                  ddg       | j                  dg g        | j                  t        j                  dg       | j                  t        j                  g        y )Nr   python_programargsorig	orig_args)r8   rT   rS    )r   r   r   rT   rS   r   s    r   	test_argvzSetConfigTests.test_argv   s    1.7#);"7 	 	9 	$4f#=>(=>1"$ 	 	& 	B4(+r   c                 L    | j                  d        | j                  d       y )N)pycache_prefixr   )r#   r   s    r   test_pycache_prefixz"SetConfigTests.test_pycache_prefix  s    

$
'

"2
3r   N)__name__
__module____qualname__r   r   r   r#   rh   rx   r   r   r   r   r   r   r   r   r   r      s=    ++?+o=b0:dK>0	4,4r   r   __main__)r   osr   unittesttest.supportr   rY   TestCaser   r   mainr   r   r   <module>r      sL     	 
  # r4X&& r4j zHMMO r   