o
    U˟i                     @   s   d dl Z d dlZd dlZd dlmZ G dd dejZG dd dejZG dd dejZG d	d
 d
ejZ	e
dkr@e  dS dS )    N)_configc                   @   sX   e Zd 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S )TestResolverNc                 C   s&   dt jv rt jd | _t jd= d S d S NGEVENT_RESOLVER)osenvironold_resolverself r   b/var/www/apps/myagent/mysuperagent/venv/lib/python3.10/site-packages/gevent/tests/test___config.pysetUp   s   
zTestResolver.setUpc                 C   s   | j r| j tjd< d S d S r   )r   r   r   r	   r   r   r   tearDown   s   zTestResolver.tearDownc                 C   s   |  tjjd d S r   )assertEqualr   Resolverenvironment_keyr	   r   r   r   test_key   s   zTestResolver.test_keyc                 C   s(   ddl m} t }| | | d S Nr   r   )gevent.resolver.threadr   r   r   getr
   r   confr   r   r   test_default   s   zTestResolver.test_defaultc                 C   s   ddl m} dtjd< t }| | | dtjd< | | | zddlm} W n ty?   dd l	}|
d Y d S w t }| | | d S )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   r   r   r   test_env   s   

zTestResolver.test_envc                 C   2   ddl m} t }|d | | | d S )Nr   r   z!gevent.resolver.blocking.Resolverr   r   r   setr   r   r   r   r   r   test_set_str_long8      
zTestResolver.test_set_str_longc                 C   r"   Nr   r   blockr#   r   r   r   r   test_set_str_short?   r&   zTestResolver.test_set_str_shortc                 C   s2   ddl m} t }|| | | | d S r   r#   r   r   r   r   test_set_classF   r&   zTestResolver.test_set_classc                 C   sF   ddl m} ddlm} t }| |j| d|_| |j| d S r'   )r   r   r   r   Configr   resolver)r
   Defaultr   r   r   r   r   test_set_through_configN   s   z$TestResolver.test_set_through_config)__name__
__module____qualname__r   r   r   r   r   r!   r%   r)   r*   r.   r   r   r   r   r   	   s    r   c                   @   s   e Zd Zdd Zdd ZdS )TestFunctionsc                 C   s   |  td |  td | td | td | td | t td W d    d S 1 s>w   Y  d S )Non1off0 z hmm )
assertTruer   validate_boolassertFalseassertRaises
ValueErrorr	   r   r   r   test_validate_boolZ   s   "z TestFunctions.test_validate_boolc                 C   s:   |  t t|  W d    d S 1 sw   Y  d S N)r;   r<   r   validate_invalidr	   r   r   r   test_validate_invalidd   s   "z#TestFunctions.test_validate_invalidN)r/   r0   r1   r=   r@   r   r   r   r   r2   X   s    
r2   c                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestConfigc                 C   s"   |  ttjjtttj d S r>   )r   sortedr   configsettingsdirr	   r   r   r   test__dir__j   s   zTestConfig.test__dir__c                 C   s   |  tjd d S )Nr,   )assertIsNotNoner   rD   __getattr__r	   r   r   r   test_getattrn   s   zTestConfig.test_getattrc                 C   s<   |  t ttjd W d    d S 1 sw   Y  d S )Nno_such_setting)r;   AttributeErrorgetattrr   rD   r	   r   r   r   test__getattr__invalidr   s   "z!TestConfig.test__getattr__invalidc                 C   s>   |  t tjdd W d    d S 1 sw   Y  d S )Nzno such settingT)r;   rL   r   rD   r$   r	   r   r   r   test_set_invalidv   s   "zTestConfig.test_set_invalidN)r/   r0   r1   rG   rJ   rN   rO   r   r   r   r   rB   h   s
    rB   c                   @   rA   )
TestImportableSettingc                 C   sD   t  }| td |g  W d    d S 1 sw   Y  d S )NzCannot import from empty list)r   ImportableSettingassertRaisesRegexr   _import_one_ofr
   ir   r   r   test_empty_list|   s   "z%TestImportableSetting.test_empty_listc              	   C   s   dd l }t }ttj}|jdd(}|d | t	d |
d W d    n1 s/w   Y  W d    n1 s>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   rQ   listsyspathcatch_warningssimplefilterrR   r   _import_oner   len)r
   r   rU   r[   wr   r   r   test_path_not_supported   s   

z-TestImportableSetting.test_path_not_supportedc                 C   s   t  }| || |  d S r>   )r   rQ   assertIsr^   rT   r   r   r   test_non_string   s   z%TestImportableSetting.test_non_stringc                 C   s:   t  }| i |  ddi|_| }| d| d S )Nfoozbad/path)r   rQ   r   get_optionsshortname_mapassertIn)r
   rU   optionsr   r   r   test_get_options   s
   
z&TestImportableSetting.test_get_optionsN)r/   r0   r1   rV   ra   rc   ri   r   r   r   r   rP   z   s
    rP   __main__)r   unittestrZ   geventr   TestCaser   r2   rB   rP   r/   mainr   r   r   r   <module>   s   O$