
    i                         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                     dS dS )    N)_configc                   H    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S )TestResolverNc                 n    dt           j        v r&t           j        d         | _        t           j        d= d S d S NGEVENT_RESOLVER)osenvironold_resolverselfs    E/usr/local/lib/python3.11/dist-packages/gevent/tests/test___config.pysetUpzTestResolver.setUp   s8    
** "
+< =D
,--- +*    c                 @    | j         r| j         t          j        d<   d S d S r   )r   r	   r
   r   s    r   tearDownzTestResolver.tearDown   s-     	>,0,=BJ()))	> 	>r   c                 P    |                      t          j        j        d           d S r   )assertEqualr   Resolverenvironment_keyr   s    r   test_keyzTestResolver.test_key   s%    )9;LMMMMMr   c                     ddl m} t          j                    }|                     |                                |           d S Nr   r   )gevent.resolver.threadr   r   r   getr   r   confs      r   test_defaultzTestResolver.test_default   sF    333333!!X.....r   c                    ddl m} dt          j        d<   t	          j                    }|                     |                                |           dt          j        d<   |                     |                                |           	 ddlm} t	          j                    }|                     |                                |           d S # t          $ r dd l	}|
                    d           Y d S 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55555(A
$%!!X...(3
$% 	X...		4GGGGGG #%%DTXXZZ33333  	5 	5 	5OOOMM3444444	5s   	C #C32C3c                     ddl m} t          j                    }|                    d           |                     |                                |           d S )Nr   r   z!gevent.resolver.blocking.Resolverr"   r   r   setr   r   r   s      r   test_set_str_longzTestResolver.test_set_str_long8   sY    555555!!4555X.....r   c                     ddl m} t          j                    }|                    d           |                     |                                |           d S Nr   r   blockr*   r   s      r   test_set_str_shortzTestResolver.test_set_str_short?   sX    555555!!X.....r   c                     ddl m} t          j                    }|                    |           |                     |                                |           d S r   r*   r   s      r   test_set_classzTestResolver.test_set_classF   sX    555555!!X.....r   c                     ddl m} ddlm} t          j                    }|                     |j        |           d|_        |                     |j        |           d S r.   )r   r   r"   r   Configr   resolver)r   Defaultr   r   s       r   test_set_through_configz$TestResolver.test_set_through_configN   sp    >>>>>>555555~00011111r   )__name__
__module____qualname__r   r   r   r   r   r(   r,   r0   r2   r7    r   r   r   r   	   s        L. . .
> > >N N N/ / /4 4 42/ / // / // / /2 2 2 2 2r   r   c                       e Zd Zd Zd ZdS )TestFunctionsc                    |                      t          j        d                     |                      t          j        d                     |                     t          j        d                     |                     t          j        d                     |                     t          j        d                     |                     t
                    5  t          j        d           d d d            d S # 1 swxY w Y   d S )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3444-c22333.u55666.s33444.r22333z** 	+ 	+!'***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   D  DDc                     |                      t                    5  t          j        |            d d d            d S # 1 swxY w Y   d S N)rG   rH   r   validate_invalidr   s    r   test_validate_invalidz#TestFunctions.test_validate_invalidd   s    z** 	+ 	+$T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   =AAN)r8   r9   r:   rI   rM   r;   r   r   r=   r=   X   s2        + + ++ + + + +r   r=   c                   &    e Zd Zd Zd Zd Zd ZdS )
TestConfigc                     |                      t          t          j        j                  t          t          t          j                                       d S rK   )r   sortedr   configsettingsdirr   s    r   test__dir__zTestConfig.test__dir__j   sH     788GN 3 344	6 	6 	6 	6 	6r   c                 j    |                      t          j                            d                     d S )Nr5   )assertIsNotNoner   rR   __getattr__r   s    r   test_getattrzTestConfig.test_getattrn   s,    W^77
CCDDDDDr   c                     |                      t                    5  t          t          j        d           d d d            d S # 1 swxY w Y   d S )Nno_such_setting)rG   AttributeErrorgetattrr   rR   r   s    r   test__getattr__invalidz!TestConfig.test__getattr__invalidr   s    ~.. 	7 	7GN$5666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   AA
Ac                     |                      t                    5  t          j                            dd           d d d            d S # 1 swxY w Y   d S )Nzno such settingT)rG   r\   r   rR   r+   r   s    r   test_set_invalidzTestConfig.test_set_invalidv   s    ~.. 	8 	8N0$777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   !A		AAN)r8   r9   r:   rU   rY   r^   r`   r;   r   r   rO   rO   h   sS        6 6 6E E E7 7 78 8 8 8 8r   rO   c                   &    e Zd Zd Zd Zd Zd ZdS )TestImportableSettingc                     t          j                    }|                     t          d          5  |                    g            d d d            d S # 1 swxY w Y   d S )NzCannot import from empty list)r   ImportableSettingassertRaisesRegexr$   _import_one_ofr   is     r   test_empty_listz%TestImportableSetting.test_empty_list|   s    %''##K$CE E 	! 	!R   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   AAAc                    dd l }t          j                    }t          t          j                  }|                    d          5 }|                    d           |                     t          d          5  |
                    d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |t          j                   |                     t          |          d           d S )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   sf   %''CH~~$$D$11 	?Q!!(+++''(WY Y ? ?=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	sx((( 	Q#####s6   1B18BB1B	B1!B	"B11B58B5c                 ~    t          j                    }|                     |                    |           |            d S rK   )r   rd   assertIsrr   rg   s     r   test_non_stringz%TestImportableSetting.test_non_string   s6    %''ammD))400000r   c                     t          j                    }|                     i |                                           ddi|_        |                                }|                     d|           d S )Nfoozbad/path)r   rd   r   get_optionsshortname_mapassertIn)r   rh   optionss      r   test_get_optionsz&TestImportableSetting.test_get_options   sa    %''Q]]__--- *---//eW%%%%%r   N)r8   r9   r:   ri   ru   rx   r   r;   r   r   rb   rb   z   sP        ! ! !$ $ $ 1 1 1& & & & &r   rb   __main__)r	   unittestrn   geventr   TestCaser   r=   rO   rb   r8   mainr;   r   r   <module>r      s   
			  



      M2 M2 M2 M2 M28$ M2 M2 M2^+ + + + +H% + + + 8 8 8 8 8" 8 8 8$"& "& "& "& "&H- "& "& "&H zHMOOOOO r   