
    ce                         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dd	giddd
d	ddd
dddd
dgiddddd	gidZdZ	dZ
dZdZ G d dej                        Zy)    )mock)base)cfg)fixture)	validatoroptsopt   )namedefault   zfoo-barfoo_bar)r   destr   zbar-foobar_foo)foobarr      )optionsdeprecated_optionsz5
[foo]
opt = 1
[bar]
opt = 3
foo-bar = 3
bar_foo = 3
z
[bar]
opt = value
z
[foo]
opts = value
z
[oo]
opt = value
c                   t    e Zd Z fdZ ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z ej
                  d      d        Z	 ej
                  d      d        Z
 ej
                  d      d        Z ej
                  d      d	        Zd
 Z xZS )TestValidatorc                     t         t        |           t        j                         | _        | j                  t        j                  | j
                              | _	        t        j                  | j
                         y N)superr   setUpr   
ConfigOptsconf
useFixturer   Configconf_fixturer   _register_cli_opts)self	__class__s    B/usr/lib/python3/dist-packages/oslo_config/tests/test_validator.pyr   zTestValidator.setUpU   sN    mT(*NN$	 OOGNN499,EF$$TYY/    z#oslo_config.validator.load_opt_datac                 <   t         |_        | j                  j                  dd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY wNmocked.yamlmocked.confopt_data
input_file	read_databuiltins.openr   OPT_DATAreturn_valuer    configr   	mock_open
VALID_CONFpatchassertEqualr   	_validater   r"   mock_lodms      r$   test_passingzTestValidator.test_passing[   s|     (  -,9 	! 	;NNZ0ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@   0BBc                 <   t         |_        | j                  j                  dd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY wr'   r1   r2   r    r3   r   r4   DEPRECATED_CONFr6   r7   r   r8   r   r9   s      r$   test_deprecatedzTestValidator.test_deprecatedd   s|     (  -,9 	! 	;NN_5ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@r=   c                 >   t         |_        | j                  j                  ddd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY w)Nr(   r)   T)r+   r,   fatal_warningsr-   r/   r
   r?   r9   s      r$   test_deprecated_fatal_warningsz,TestValidator.test_deprecated_fatal_warningsm   s     (  -,904 	! 	6 NN_5ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@   0BBc                 <   t         |_        | j                  j                  dd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY wNr(   r)   r*   r-   r/   r
   )r1   r2   r    r3   r   r4   INVALID_CONFr6   r7   r   r8   r   r9   s      r$   test_missingzTestValidator.test_missingw   s|     (  -,9 	! 	;NN\2ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@r=   c                 <   t         |_        | j                  j                  dd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY wrG   r1   r2   r    r3   r   r4   MISSING_GROUP_CONFr6   r7   r   r8   r   r9   s      r$   test_missing_groupz TestValidator.test_missing_group   s}     (  -,9 	! 	;NN%78ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@r=   c                 @   t         |_        | j                  j                  dddg       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY w)Nr(   r)   oo)r+   r,   exclude_groupr-   r/   r   rK   r9   s      r$   test_exclude_groupsz!TestValidator.test_exclude_groups   s     (  -,904v 	! 	7 NN%78ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@s   0BBc                 >   t         |_        | j                  j                  ddd       t	        j
                  t              }t	        j                  d|      5  | j                  dt        j                  | j                               d d d        y # 1 sw Y   y xY w)Nr(   r)   T)r+   r,   check_defaultsr-   r/   r   r0   r9   s      r$   test_check_defaultsz!TestValidator.test_check_defaults   s     (  -,904 	! 	6 NNZ0ZZ+ 	@Q	 3 3DII >?	@ 	@ 	@rE   c                 b    | j                  t        t        j                  | j                         y r   )assertRaisesRuntimeErrorr   r8   r   )r"   s    r$   test_invalid_optionsz"TestValidator.test_invalid_options   s    ,	(;(;TYYGr%   )__name__
__module____qualname__r   r   r6   r<   rA   rD   rI   rM   rQ   rT   rX   __classcell__)r#   s   @r$   r   r   T   s    0 TZZ56@ 7@ TZZ56@ 7@ TZZ56@ 7@ TZZ56@ 7@ TZZ56@ 7@ TZZ56@ 7@ TZZ56@ 7@Hr%   r   N)unittestr   oslotestr   oslo_configr   r   r   r1   r5   r@   rH   rL   BaseTestCaser    r%   r$   <module>rb      s        ! 	
 	

 	
 	
: 
;%L
 JHD%% JHr%   