
    ce:                         d dl 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	 G d d	ej                        Z
y)
    N)mock)base)cfg)	sphinxextc                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)FormatGroupTestc                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )N
opt_name!this appears in the default grouphelp	namespace
group_name	group_objopt_listz
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``

          this appears in the default group
        
joinlistr   _format_group_optsr   StrOptassertEqualtextwrapdedentlstripselfresultss     B/usr/lib/python3/dist-packages/oslo_config/tests/test_sphinxext.pytest_none_in_defaultz$FormatGroupTest.test_none_in_default   so    ))D!=!=

: CE	"
   	 	* 	 VXw		     c                     dj                  t        t        j                  d d d t	        j
                  ddd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   zthis is the defaultr   )defaultr   r   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``this is the default``

          this appears in the default group
        r   r   s     r    test_with_default_valuez'FormatGroupTest.test_with_default_value.   sr    ))D!=!=

:#8 CE		"
 	 	 	 	* 	 VXw		 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r      minr   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
          :Minimum Value: 1
        
r   r   r   r   r   IntOptr   r   r   r   r   s     r    test_with_minzFormatGroupTest.test_with_minD   n    ))D!=!=

: "	"
   	 *  VXw	 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   r   r(   r   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
          :Minimum Value: 0
        r*   r   s     r    test_with_min_0zFormatGroupTest.test_with_min_0X   r-   r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   r'   maxr   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
          :Maximum Value: 1
        r*   r   s     r    test_with_maxzFormatGroupTest.test_with_maxl   r-   r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   r   r1   r   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
          :Maximum Value: 0
        r*   r   s     r    test_with_max_0zFormatGroupTest.test_with_max_0   r-   r"   c                     dj                  t        t        j                  d d d t	        j
                  dg d      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   )abcN choicesr   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
          :Valid Values: a, b, c, <None>, ''
        r   r   s     r    test_with_choicesz!FormatGroupTest.test_with_choices   sn    ))D!=!=

:#<>	"
   	 *  VXw	 r"   c                     dj                  t        t        j                  d d d t	        j
                  dg d      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   ))r7   za is the best)r8   zActually, may-b I am better)r9   zc, I am clearly the greatest)NzI am having none of this)r:   r:   r;   r   a  
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
          :Valid Values: a, b, c, <None>, ''

          .. rubric:: Possible values

          a
            a is the best

          b
            Actually, may-b I am better

          c
            c, I am clearly the greatest

          <None>
            I am having none of this

          ''
            <No description provided>
        r   r   s     r    #test_with_choices_with_descriptionsz3FormatGroupTest.test_with_choices_with_descriptions   sq    ))D!=!=

"#		"
   	 * 2 VXw3	 r"   c                    dj                  t        t        j                  d dt	        j
                  d      t	        j                  d      g                  }| j                  t        j                  d      j                         |       y )Nr
   groupr   r   z
        .. oslo.config:group:: group

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
        r   r   r   r   r   OptGroupr   r   r   r   r   r   s     r    test_group_obj_without_helpz+FormatGroupTest.test_group_obj_without_help   sp    ))D!=!=ll7+jj,-	"
   	 *  VXw	 r"   c                    dj                  t        t        j                  d dt	        j
                  dd      t	        j                  d      g                  }| j                  t        j                  d      j                         |       y )Nr
   rA   z
group helpr   r   r   z
        .. oslo.config:group:: group

          group help

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
        rB   r   s     r    test_group_obj_with_helpz(FormatGroupTest.test_group_obj_with_help   sr    ))D!=!=ll7>jj,-	"
   	 	* 	 VXw		 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   deprecated_name)rH   r   aH  
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``

          .. list-table:: Deprecated Variations
             :header-rows: 1

             - * Group
               * Name
             - * DEFAULT
               * deprecated_name
        r   r   s     r    -test_deprecated_opts_without_deprecated_groupz=FormatGroupTest.test_deprecated_opts_without_deprecated_group   sn    ))D!=!=

:+<		"
 	 	 	 *  VXw	 r"   c                     dj                  t        t        j                  d d d t	        j
                  ddd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   rH   deprecated_group)rH   rK   r   aQ  
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``

          .. list-table:: Deprecated Variations
             :header-rows: 1

             - * Group
               * Name
             - * deprecated_group
               * deprecated_name
        r   r   s     r    *test_deprecated_opts_with_deprecated_groupz:FormatGroupTest.test_deprecated_opts_with_deprecated_group  sq    ))D!=!=

:+<,>	
"
 
 
 	 *  VXw	 r"   c                    dj                  t        t        j                  d d d t	        j
                  dddd      g                  }| j                  d|       | j                  d|       | j                  d	|       y )
Nr
   r   Tzbecause I said soz13.0)deprecated_for_removaldeprecated_reasondeprecated_sincer   z.. warning::z
since 13.0)r   r   r   r   r   r   assertInr   s     r    test_deprecated_for_removalz+FormatGroupTest.test_deprecated_for_removal0  sv    ))D!=!=

:26-@,2	"
   	ng.)73lG,r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   Tmutabler   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
          :Mutable: This option can be changed without restarting.
        r*   r   s     r    test_mutablezFormatGroupTest.test_mutableA  sn    ))D!=!=

:#')	"
   	 *  VXw	 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   FrT   r   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: integer
          :Default: ``<None>``
        r*   r   s     r    test_not_mutablez FormatGroupTest.test_not_mutableU  sn    ))D!=!=

:#(*	"
   	 *  VXw	 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   Tadvancedr   aR  
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
          :Advanced Option: Intended for advanced users and not used
              by the majority of users, and might have a significant
              effect on stability and/or performance.
        r   r   s     r    test_advancedzFormatGroupTest.test_advancedh  sn    ))D!=!=

:$(*	"
   	 
* 
 VXw
	 r"   c                     dj                  t        t        j                  d d d t	        j
                  dd      g                  }| j                  t        j                  d      j                         |       y )Nr
   r   FrZ   r   z
        .. oslo.config:group:: DEFAULT

        .. oslo.config:option:: opt_name

          :Type: string
          :Default: ``<None>``
        r   r   s     r    test_not_advancedz!FormatGroupTest.test_not_advanced~  sn    ))D!=!=

:$)+	"
   	 *  VXw	 r"   N)__name__
__module____qualname__r!   r%   r,   r/   r3   r5   r=   r?   rD   rF   rI   rL   rR   rV   rX   r\   r^    r"   r    r   r      sX     , , ( ( ( ( () V " & 8 :-" ( & , r"   r   c                   t   e Zd Z ej                  d       ej                  d      d               Z ej                  d       ej                  d      d               Z ej                  d       ej                  d      d               Z ej                  d       ej                  d      d               Zy)FormatOptionHelpTestz oslo_config.generator._list_optsz(oslo_config.sphinxext._format_group_optsc                     dd dgfgfdd dgfgfg|_         t        t        j                  ddgd             |j	                  ddd dg       |j	                  ddd dg       y )	N
namespace1opt1
namespace2opt2T
namespacessplit_namespacesDEFAULTr   )return_valuer   r   _format_option_helpassert_any_callr   r   
_list_optss      r    test_split_namespacesz*FormatOptionHelpTest.test_split_namespaces  s     TF8,-.TF8,-.#

 	Y**$l3!# 	$ 	**" X	 	+ 	
 	**" X	 	+ 	
r"   c                     dd dgfgfdd dgfgfg|_         t        t        j                  ddgd             |j	                  d dd ddg       y )	Nrf   rg   rh   ri   Frj   rm   r   )rn   r   r   ro   assert_called_once_withrq   s      r    test_dont_split_namespacesz/FormatOptionHelpTest.test_dont_split_namespaces  sz     TF8,-.TF8,-.#

 	Y**$l3"$ 	% 	22 f%	 	3 	
r"   c                     t        j                  d      }d|dgfgfdddgfgfg|_        t        t	        j
                  ddgd             |j                  d d|ddg       y )	Ngrp1rf   rg   rh   ri   Frj   r   )r   rC   rn   r   r   ro   rp   r   r   rr   grp_objs       r    %test_dont_split_namespaces_with_groupz:FormatOptionHelpTest.test_dont_split_namespaces_with_group  s     ,,v&Wvh/01VfX./0#

 	Y**$l3"$ 	% 	**f%	 	+ 	
r"   c                    t        j                  d      }d|dgfgfdddgfgfg|_        t        t	        j
                  ddgd             t        |j                         |j                  dd|dg       |j                  ddd dg       y )	Nrx   rf   rg   rh   ri   Trj   r   )	r   rC   rn   r   r   ro   printcall_args_listrp   ry   s       r     test_split_namespaces_with_groupz5FormatOptionHelpTest.test_split_namespaces_with_group  s     ,,v&Wvh/01VfX./0#

 	Y**$l3!# 	$ 	 //0**"X	 	+ 	
 	**"X	 	+ 	
r"   N)	r_   r`   ra   r   patchrs   rv   r{   r   rb   r"   r    rd   rd     s    TZZ23TZZ:;
 < 4
* TZZ23TZZ:;
 < 4
 TZZ23TZZ:;
 < 4
" TZZ23TZZ:;
 < 4
r"   rd   )r   unittestr   oslotestr   oslo_configr   r   BaseTestCaser   rd   rb   r"   r    <module>r      s?        !y d'' y xU
4,, U
r"   