U
    ÝÁ]J  ã                   @   sv   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z G dd	„ d	ejƒZed
krre ¡  dS )z Tests for certbot.configuration.é    N)Ú	constants)Úerrors)Úmisc)Úos)Úutilc                       s|   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Ze 	d
¡dd„ ƒZ
dd„ Ze 	d
¡dd„ ƒZdd„ Zdd„ Zdd„ Z‡  ZS )ÚNamespaceConfigTestz0Tests for certbot.configuration.NamespaceConfig.c                    s2   t t| ƒ ¡  d| j_d| j_d| j_d| j_d S )NÚbarzhttps://acme-server.org:443/newiÒ  éá  )Úsuperr   ÚsetUpÚconfigÚfooÚserverÚ
https_portÚhttp01_port©Úself©Ú	__class__© úB/usr/lib/python3/dist-packages/certbot/tests/configuration_test.pyr      s
    zNamespaceConfigTest.setUpc                 C   s.   d| j j_ddlm} |  tj|| j j¡ d S )Nr	   r   ©ÚNamespaceConfig)r   Ú	namespacer   Úcertbot.configurationr   ZassertRaisesr   ÚError)r   r   r   r   r   Útest_init_same_ports   s    
z(NamespaceConfigTest.test_init_same_portsc                 C   s0   |   | jjd¡ |   | jjtj | jd¡¡ d S )Nr   Zwork)ÚassertEqualr   r   Úwork_dirr   ÚpathÚjoinZtempdirr   r   r   r   Útest_proxy_getattr   s    z&NamespaceConfigTest.test_proxy_getattrc                 C   sP   |   ddg| jj tjj¡¡ d| jj_|   dddddg| jj tjj¡¡ d S )	Nzacme-server.org:443ÚnewzBhttp://user:pass@acme.server:443/p/a/t/h;parameters?query#fragmentzuser:pass@acme.server:443ÚpÚaÚtÚh)	r   r   Zserver_pathÚsplitr   r   Úsepr   r   r   r   r   r   Útest_server_path    s    
ÿ
ÿz$NamespaceConfigTest.test_server_pathzcertbot.configuration.constantsc              	   C   sF  d|_ d|_d|_d|_d|_d|_t d¡}|  t	j
 | jj¡t	j
 t	j
 | jj|¡¡¡ |  t	j
 | jj¡t	j
 t	j
 | jjd¡¡¡ |  t	j
 | jj¡t	j
 t	j
 | jjd¡¡¡ |  t	j
 | jj¡t	j
 t	j
 | jjd¡¡¡ |  t	j
 | jj¡t	j
 t	j
 | jjd¡¡¡ |  t	j
 | jj¡t	j
 t	j
 | jjd¡¡¡ d S )NZaccZbackupsZcsrz../pÚkeysr%   zacc/acme-server.org:443/new)ZACCOUNTS_DIRZ
BACKUP_DIRZCSR_DIRZIN_PROGRESS_DIRZKEY_DIRZTEMP_CHECKPOINT_DIRr   Z.underscores_for_unsupported_characters_in_pathr   r   r   Únormpathr   Úaccounts_dirr    Ú
config_dirÚ
backup_dirr   Úcsr_dirÚin_progress_dirÚkey_dirÚtemp_checkpoint_dir)r   Úmock_constantsZref_pathr   r   r   Útest_dynamic_dirs)   sB    ÿþþþþþþz%NamespaceConfigTest.test_dynamic_dirsc                 C   sb  ddl m} d}d}d}d}tjddd	d
dddgd}||_||_||_||_||ƒ}|  t	j
 |j¡¡ |  |jt	j
 t	 ¡ |¡¡ |  t	j
 |j¡¡ |  |jt	j
 t	 ¡ |¡¡ |  t	j
 |j¡¡ |  |jt	j
 t	 ¡ |¡¡ |  t	j
 |j¡¡ |  t	j
 |j¡¡ |  t	j
 |j¡¡ |  t	j
 |j¡¡ |  t	j
 |j¡¡ |  t	j
 |j¡¡ d S )Nr   r   r   r   Úbazzmock.serverr-   r   Úlogs_dirr   r   Údomainsr   ©Úspec)r   r   ÚmockÚ	MagicMockr-   r   r6   r   Ú
assertTruer   r   Úisabsr   r    Úgetcwdr,   r.   r/   r0   r1   r2   )r   r   Úconfig_baseÚ	work_baseÚ	logs_baser   Úmock_namespacer   r   r   r   Útest_absolute_pathsH   sF      ýÿÿÿz'NamespaceConfigTest.test_absolute_pathsc                 C   sp   d|_ d|_d|_|  | jjtj | jj	d¡¡ |  | jj
tj | jj	d¡¡ |  | jjtj | jj	d¡¡ d S )Nr$   ÚlZrenewal_configs)ZARCHIVE_DIRZLIVE_DIRZRENEWAL_CONFIGS_DIRr   r   Údefault_archive_dirr   r   r    r-   Úlive_dirÚrenewal_configs_dir)r   r3   r   r   r   Útest_renewal_dynamic_dirsj   s$     ÿ ÿ  ÿÿz-NamespaceConfigTest.test_renewal_dynamic_dirsc                 C   sŒ   ddl m} d}d}d}tjdddd	d
ddgd}||_||_||_||ƒ}|  tj	 
|j¡¡ |  tj	 
|j¡¡ |  tj	 
|j¡¡ d S )Nr   r   r   r   r5   r-   r   r6   r   r   r7   r   r8   )r   r   r:   r;   r-   r   r6   r<   r   r   r=   rE   rF   rG   )r   r   r?   r@   rA   rB   r   r   r   r   Útest_renewal_absolute_pathsx   s$      ýz/NamespaceConfigTest.test_renewal_absolute_pathsc                 C   s8   d| j _|  | j jjd¡ d| j j_|  | j jd¡ d S )Né*   i9  )r   r   r   r   r   r   r   r   r   Útest_get_and_set_attrŒ   s    
z)NamespaceConfigTest.test_get_and_set_attrc                 C   s„   |   | jjtj | jjtj¡¡ |   | jj	tj | jjtj
¡¡ |   | jjtj | jjtj¡¡ |   | jjtj | jjtj¡¡ d S )N)r   r   Zrenewal_hooks_dirr   r   r    r-   r   ZRENEWAL_HOOKS_DIRZrenewal_pre_hooks_dirZRENEWAL_PRE_HOOKS_DIRZrenewal_deploy_hooks_dirZRENEWAL_DEPLOY_HOOKS_DIRZrenewal_post_hooks_dirZRENEWAL_POST_HOOKS_DIRr   r   r   r   Útest_hook_directories’   s(    
ÿÿ
ÿÿ
ÿÿ
ÿÿz)NamespaceConfigTest.test_hook_directories)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r)   r:   Zpatchr4   rC   rH   rI   rK   rL   Ú__classcell__r   r   r   r   r      s   	
"
r   Ú__main__)rP   Zunittestr:   Zcertbotr   r   Zcertbot.compatr   r   Zcertbot.testsr   Z	test_utilZConfigTestCaser   rM   Úmainr   r   r   r   Ú<module>   s    