
    <|h                         d dl Z d dlZd dlZd dlmZ  G d dej
                        Z G d dej
                        Z G d dej
                        Z G d	 d
ej
                        Z	e
dk(  r ej                          yy)    N)_configc                   F    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestResolverNc                 |    dt         j                  v r*t         j                  d   | _        t         j                  d= y y NGEVENT_RESOLVER)osenvironold_resolverselfs    Y/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test___config.pysetUpzTestResolver.setUp   s2    

* "

+< =D

,- +    c                 X    | j                   r| j                   t        j                  d<   y y r   )r   r	   r
   r   s    r   tearDownzTestResolver.tearDown   s%    ,0,=,=BJJ() r   c                 X    | j                  t        j                  j                  d       y r   )assertEqualr   Resolverenvironment_keyr   s    r   test_keyzTestResolver.test_key   s    ))99;LMr   c                 x    ddl m} t        j                         }| j                  |j	                         |       y Nr   r   )gevent.resolver.threadr   r   r   getr   r   confs      r   test_defaultzTestResolver.test_default   s)    3!X.r   c                    ddl m} dt        j                  d<   t	        j                         }| j                  |j                         |       dt        j                  d<   | j                  |j                         |       	 ddlm} t	        j                         }| j                  |j                         |       y # t        $ r dd l	}|j                  d       Y y w xY w)Nr   r   zfoo,bar,block,dnspythonr   	dnspythonzdnspython not installed)gevent.resolver.blockingr   r	   r
   r   r   r   gevent.resolver.dnspythonImportErrorwarningswarn)r   r   r   	DResolverr%   s        r   test_envzTestResolver.test_env   s    5(A

$%!X.(3

$% 	X.		4G ##%DTXXZ3  	5MM34	5s   B= =CCc                     ddl m} t        j                         }|j                  d       | j	                  |j                         |       y )Nr   r   z!gevent.resolver.blocking.Resolverr"   r   r   setr   r   r   s      r   test_set_str_longzTestResolver.test_set_str_long8   s6    5!45X.r   c                     ddl m} t        j                         }|j                  d       | j	                  |j                         |       y Nr   r   blockr*   r   s      r   test_set_str_shortzTestResolver.test_set_str_short?   s5    5!X.r   c                     ddl m} t        j                         }|j                  |       | j	                  |j                         |       y r   r*   r   s      r   test_set_classzTestResolver.test_set_classF   s5    5!X.r   c                     ddl m} ddlm} t        j                         }| j                  |j                  |       d|_        | j                  |j                  |       y r.   )r   r   r"   r   Configr   resolver)r   Defaultr   r   s       r   test_set_through_configz$TestResolver.test_set_through_configN   sC    >5~~01r   )__name__
__module____qualname__r   r   r   r   r   r(   r,   r0   r2   r7    r   r   r   r   	   s5    L.
>N/42///2r   r   c                       e Zd Zd Zd Zy)TestFunctionsc                    | j                  t        j                  d             | j                  t        j                  d             | j                  t        j                  d             | j                  t        j                  d             | j                  t        j                  d             | j	                  t
              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Non1off0 z hmm )
assertTruer   validate_boolassertFalseassertRaises
ValueErrorr   s    r   test_validate_boolz TestFunctions.test_validate_boolZ   s    --d34--c23..u56..s34..r23z* 	+!!'*	+ 	+ 	+s   
C))C2c                     | j                  t              5  t        j                  |        d d d        y # 1 sw Y   y xY wN)rG   rH   r   validate_invalidr   s    r   test_validate_invalidz#TestFunctions.test_validate_invalidd   s3    z* 	+$$T*	+ 	+ 	+s   5>N)r8   r9   r:   rI   rM   r;   r   r   r=   r=   X   s    ++r   r=   c                   $    e Zd Zd Zd Zd Zd Zy)
TestConfigc                     | j                  t        t        j                  j                        t        t        t        j                                     y rK   )r   sortedr   configsettingsdirr   s    r   test__dir__zTestConfig.test__dir__j   s2     7 78GNN 34	6r   c                 `    | j                  t        j                  j                  d             y )Nr5   )assertIsNotNoner   rR   __getattr__r   s    r   test_getattrzTestConfig.test_getattrn   s    W^^77
CDr   c                     | j                  t              5  t        t        j                  d       d d d        y # 1 sw Y   y xY w)Nno_such_setting)rG   AttributeErrorgetattrr   rR   r   s    r   test__getattr__invalidz!TestConfig.test__getattr__invalidr   s4    ~. 	7GNN$56	7 	7 	7s	   :Ac                     | j                  t              5  t        j                  j	                  dd       d d d        y # 1 sw Y   y xY w)Nzno such settingT)rG   r\   r   rR   r+   r   s    r   test_set_invalidzTestConfig.test_set_invalidv   s:    ~. 	8NN0$7	8 	8 	8s   !A  A	N)r8   r9   r:   rU   rY   r^   r`   r;   r   r   rO   rO   h   s    6E78r   rO   c                   $    e Zd Zd Zd Zd Zd Zy)TestImportableSettingc                     t        j                         }| j                  t        d      5  |j	                  g        d d d        y # 1 sw Y   y xY w)NzCannot import from empty list)r   ImportableSettingassertRaisesRegexr$   _import_one_ofr   is     r   test_empty_listz%TestImportableSetting.test_empty_list|   sG    %%'##K$CE 	!R 	! 	! 	!s   AAc                    dd l }t        j                         }t        t        j
                        }|j                  d      5 }|j                  d       | j                  t        d      5  |j                  d       d d d        d d d        | j                  |t        j
                         | j                  t              d       y # 1 sw Y   MxY w# 1 sw Y   QxY w)Nr   T)recordalwaysz-Cannot import 'foo/bar/gevent.no_such_module'zfoo/bar/gevent.no_such_module)r%   r   rd   listsyspathcatch_warningssimplefilterre   r$   _import_oner   len)r   r%   rh   ro   ws        r   test_path_not_supportedz-TestImportableSetting.test_path_not_supported   s    %%'CHH~$$D$1 	?Q!!(+''(WY ?=>?	? 	sxx( 	Q#? ?	? 	?s$   (C,C
>C
C	CCc                 n    t        j                         }| j                  |j                  |       |        y rK   )r   rd   assertIsrr   rg   s     r   test_non_stringz%TestImportableSetting.test_non_string   s'    %%'ammD)40r   c                     t        j                         }| j                  i |j                                ddi|_        |j                         }| j                  d|       y )Nfoozbad/path)r   rd   r   get_optionsshortname_mapassertIn)r   rh   optionss      r   test_get_optionsz&TestImportableSetting.test_get_options   sK    %%'Q]]_- *---/eW%r   N)r8   r9   r:   ri   ru   rx   r   r;   r   r   rb   rb   z   s    !$ 1&r   rb   __main__)r	   unittestrn   geventr   TestCaser   r=   rO   rb   r8   mainr;   r   r   <module>r      sy    
  
 M28$$ M2^+H%% + 8"" 8$"&H-- "&H zHMMO r   