o
    ÑtPf  ã                   @   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   ú[/var/www/html/humari/django-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$ÿ