
    M/e                     $   d Z ddlZddlZddlm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 dd	lmZ dd
lmZ  G d dej&                        Zedk(  r4 ej,                   ej.                  ej0                  dd egz                yy)z Tests for certbot.configuration.    N)mock)errors)cli)	constants)disco)misc)os)utilc                        e Zd ZdZ fdZd Zd Zd Z ej                  d      d        Z
d Z ej                  d      d	        Zd
 Zd Zd Zd Zd Zd Z xZS )NamespaceConfigTestz0Tests for certbot.configuration.NamespaceConfig.c                     t         |           d| j                  _        d| j                  _        d| j                  _        d| j                  _        y )Nbarzhttps://acme-server.org:443/newi    )supersetUpconfigfooserver
https_porthttp01_port)self	__class__s    L/usr/lib/python3/dist-packages/certbot/_internal/tests/configuration_test.pyr   zNamespaceConfigTest.setUp   s;    >!%"&    c                     d| j                   _        ddlm} t	        j
                  t        j                        5   || j                   j                         d d d        y # 1 sw Y   y xY w)Nr   r   NamespaceConfig)	r   r   certbot.configurationr   pytestraisesr   Error	namespace)r   r   s     r   test_init_same_portsz(NamespaceConfigTest.test_init_same_ports   sH    !%9]]6<<( 	3DKK112	3 	3 	3s   A!!A*c                     | j                   j                  dk(  sJ | j                   j                  t        j                  j                  | j                  d      k(  sJ y )Nr   work)r   r   work_dirr	   pathjointempdirr   s    r   test_proxy_getattrz&NamespaceConfigTest.test_proxy_getattr"   sC    {{%'''{{##rww||DLL&'IIIIr   c                 6   ddg| j                   j                  j                  t        j                  j
                        k(  sJ d| j                   _        g d| j                   j                  j                  t        j                  j
                        k(  sJ y )Nzacme-server.org:443newzBhttp://user:pass@acme.server:443/p/a/t/h;parameters?query#fragment)zuser:pass@acme.server:443path)r   server_pathsplitr	   r'   sepr   r*   s    r   test_server_pathz$NamespaceConfigTest.test_server_path&   s    %u-0066rww{{CD 	D DF@0066rww{{CD 	D Dr   zcertbot.configuration.constantsc                 `   d|_         d|_        d|_        d|_        d|_        d|_        t        j                  d      }t        j                  j                  | j                  j                        t        j                  j                  t        j                  j                  | j                  j                  |            k(  sJ t        j                  j                  | j                  j                        t        j                  j                  t        j                  j                  | j                  j                   d            k(  sJ t#        j$                         5  t#        j&                  dt(               t        j                  j                  | j                  j*                        t        j                  j                  t        j                  j                  | j                  j                  d            k(  sJ t        j                  j                  | j                  j,                        t        j                  j                  t        j                  j                  | j                  j                  d            k(  sJ 	 d d d        t        j                  j                  | j                  j.                        t        j                  j                  t        j                  j                  | j                  j                   d            k(  sJ t        j                  j                  | j                  j0                        t        j                  j                  t        j                  j                  | j                  j                   d            k(  sJ y # 1 sw Y   xY w)	Naccbackupscsrz../pkeysr0   zacc/acme-server.org:443/newignore)ACCOUNTS_DIR
BACKUP_DIRCSR_DIRIN_PROGRESS_DIRKEY_DIRTEMP_CHECKPOINT_DIRr   .underscores_for_unsupported_characters_in_pathr	   r'   normpathr   accounts_dirr(   
config_dir
backup_dirr&   warningscatch_warningssimplefilterDeprecationWarningcsr_dirkey_dirin_progress_dirtemp_checkpoint_dir)r   mock_constantsref_paths      r   test_dynamic_dirsz%NamespaceConfigTest.test_dynamic_dirs/   s   &+#$-!!&)/&!'-0*FF)+ww 8 89GGRWW\\$++*@*@(KLM 	M Mww 6 67GGRWW\\$++*>*>	JKL 	L L$$& 	O!!(,>?77##DKK$7$78  dkk.D.De!LMN N N77##DKK$7$78  dkk.D.Df!MNO O O		O ww ; ;<GGRWW\\$++*>*>GHI 	I Iww ? ?@GGRWW\\$++*>*>DEF 	F F	O 	Os   "D)N##N-c                    ddl m} d}d}d}d}t        j                  g d      }||_        ||_        ||_        ||_         ||      }t        j                  j                  |j                        sJ |j                  t        j                  j                  t        j                         |      k(  sJ t        j                  j                  |j
                        sJ |j
                  t        j                  j                  t        j                         |      k(  sJ t        j                  j                  |j                        sJ |j                  t        j                  j                  t        j                         |      k(  sJ t        j                  j                  |j                        sJ t        j                  j                  |j                        sJ t        j                          5  t        j"                  d	t$               t        j                  j                  |j&                        sJ t        j                  j                  |j(                        sJ 	 d d d        t        j                  j                  |j*                        sJ t        j                  j                  |j,                        sJ y # 1 sw Y   `xY w)
Nr   r   r   r   bazzmock.serverrE   r&   logs_dirr   r   domainsr   specr;   )r   r   r   	MagicMockrE   r&   rU   r   r	   r'   isabsr(   getcwdrD   rF   rG   rH   rI   rJ   rK   rL   rM   rN   )r   r   config_base	work_base	logs_baser   mock_namespacer   s           r   test_absolute_pathsz'NamespaceConfigTest.test_absolute_pathsJ   s   9		 .C D %0!"+"+ & 0ww}}V..///  biik;?@ 	@ @ww}}V__---biik9=> 	> >ww}}V__---biik9=> 	> >ww}}V00111ww}}V..///$$& 	1!!(,>?77==00077==000	1 ww}}V33444ww}}V77888	1 	1s   9A1K

Kc                    d|_         d|_        d|_        | j                  j                  t
        j                  j                  | j                  j                  d      k(  sJ | j                  j                  t
        j                  j                  | j                  j                  d      k(  sJ | j                  j                  t
        j                  j                  | j                  j                  d      k(  sJ y )Nr/   lrenewal_configs)ARCHIVE_DIRLIVE_DIRRENEWAL_CONFIGS_DIRr   default_archive_dirr	   r'   r(   rE   live_dirrenewal_configs_dir)r   rO   s     r   test_renewal_dynamic_dirsz-NamespaceConfigTest.test_renewal_dynamic_dirsn   s    %(""%->*{{.."'',,t{{?U?UWZ2[[[[{{##rww||DKK4J4JC'PPPP{{.."'',,KK**,=3? ? 	? ?r   c                    ddl m} d}d}d}t        j                  g d      }||_        ||_        ||_         ||      }t        j                  j                  |j                        sJ t        j                  j                  |j                        sJ t        j                  j                  |j                        sJ y )Nr   r   r   r   rS   rT   rW   )r   r   r   rY   rE   r&   rU   r	   r'   rZ   rg   rh   ri   )r   r   r\   r]   r^   r_   r   s          r   test_renewal_absolute_pathsz/NamespaceConfigTest.test_renewal_absolute_pathsy   s    9		 .C D %0!"+"+ 0ww}}V77888ww}}V__---ww}}V77888r   c                     d| j                   _        | j                   j                  j                  dk(  sJ d| j                   j                  _        | j                   j                  dk(  sJ y )N*   i9  )r   r   r"   r   r*   s    r   test_get_and_set_attrz)NamespaceConfigTest.test_get_and_set_attr   sS    {{$$((B...$(!{{$&&&r   c                    | j                   j                  t        j                  j	                  | j                   j
                  t        j                        k(  sJ | j                   j                  t        j                  j	                  | j                   j                  t        j                        k(  sJ | j                   j                  t        j                  j	                  | j                   j                  t        j                        k(  sJ | j                   j                  t        j                  j	                  | j                   j                  t        j                        k(  sJ y )N)r   renewal_hooks_dirr	   r'   r(   rE   r   RENEWAL_HOOKS_DIRrenewal_pre_hooks_dirRENEWAL_PRE_HOOKS_DIRrenewal_deploy_hooks_dirRENEWAL_DEPLOY_HOOKS_DIRrenewal_post_hooks_dirRENEWAL_POST_HOOKS_DIRr*   s    r   test_hook_directoriesz)NamespaceConfigTest.test_hook_directories   s   {{,,dkk&<&<&/&A&ACC 	C C {{00dkk&C&C&/&E&EGG 	G G {{33dkk&C&C&/&H&HJJ 	J J {{11dkk&C&C&/&F&FHH 	H Hr   c                     | j                   j                  d      rJ d| j                   _        | j                   j                  d      sJ y )N	somethingza value)r   set_by_userr{   r*   s    r   "test_set_by_user_runtime_overridesz6NamespaceConfigTest.test_set_by_user_runtime_overrides   s>    ;;**;777 ){{&&{333r   c                    ddl m}  || j                  j                        }t	        j
                  t              5  |j                  d       d d d        |j                  i        |j                  d      rJ y # 1 sw Y   .xY w)Nr   r   whatever)	r   r   r   r"   r   r    RuntimeErrorr|   set_argument_sources)r   r   r   s      r   test_set_by_user_exceptionz.NamespaceConfigTest.test_set_by_user_exception   sq    9 !!6!67]]<( 	+z*	+ 	##B'%%j1111	+ 	+s   A;;Bc                     | j                   j                  d      rJ | j                   j                  j                  d       | j                   j                  d      sJ y )NrV   zexample.org)r   r|   rV   appendr*   s    r   test_set_by_user_mutablesz-NamespaceConfigTest.test_set_by_user_mutables   sJ    ;;**9555""=1{{&&y111r   )__name__
__module____qualname____doc__r   r#   r+   r5   r   patchrQ   r`   rj   rl   ro   ry   r}   r   r   __classcell__)r   s   @r   r   r      s    :'3JD TZZ12F 3F4"9H TZZ12? 3?9('H4
22r   r   __main__   )r   sysunittestr   rG   r   certbotr   certbot._internalr   r   certbot._internal.pluginsr   certbot.compatr   r	   certbot.testsr
   	test_utilConfigTestCaser   r   exitmainargv__file__ r   r   <module>r      sz    & 
      ! ' +   +d2)22 d2N zCHH[V[[!"
234 r   