
    M/ew                         d Z ddlZddlZddlmZ  G d d      Z G d d      Z G d d	      Z G d
 d      Ze	dk(  r4 ej                   ej                  ej                  dd egz                yy)z Tests for certbot.helpful_parser    N)HelpfulArgumentParserc                   "    e Zd ZdZd Zd Zd Zy)TestScanningFlagsz9Test the prescan_for_flag method of HelpfulArgumentParserc                     t        dgi       }|j                  dddg      }|du sJ |j                  ddg      }|du sJ y )Nrun--helpallcertonlyF-hzall, certonly)r   prescan_for_flagself
arg_parserdetected_flags      F/usr/lib/python3/dist-packages/certbot/_internal/tests/helpful_test.pytest_prescan_no_help_flagz+TestScanningFlags.test_prescan_no_help_flag   s`    *E7B7
"33H9>
8KM%%%"33D9H8IK%%%    c                     t        ddgi       }|j                  ddg      }|du sJ |j                  d|j                        }|du sJ y )Nr   r	   potatoTr   Fr   r   help_topicsr   s      r   test_prescan_unvalid_topicz,TestScanningFlags.test_prescan_unvalid_topic   sc    *He+<bA
"33H5=J@$$$"33D4>4J4JL%%%r   c                     t        ddgi       }|j                  d|j                        }|dk(  sJ |j                  d|j                        }|du sJ y )Nr   r	   r   Fr   r   s      r   test_prescan_valid_topicz*TestScanningFlags.test_prescan_valid_topic   sf    *D%="=
"33D4>4J4JL%%%"33H4>4J4JL%%%r   N)__name__
__module____qualname____doc__r   r   r    r   r   r   r   	   s    C&&&r   r   c                   "    e Zd ZdZd Zd Zd Zy)TestDetermineVerbsz9Tests for determine_verb methods of HelpfulArgumentParserc                 d    t        dgi       }|j                  dk(  sJ |j                  dgk(  sJ y )Nr   r   r   verbargsr   r   s     r   test_determine_verb_wrong_verbz1TestDetermineVerbs.test_determine_verb_wrong_verb(   s6    *H:r:
%'''8*,,,r   c                     t        ddgi       }|j                  dk(  sJ |j                  ddgk(  sJ t        g di       }|j                  dk(  sJ |j                  g dk(  sJ y )Nr   
everythinghelp)z-dsome_domainr   r	   r#   r&   s     r   test_determine_verb_helpz+TestDetermineVerbs.test_determine_verb_help-   s{    *Hl+CRH
&(((8\"::::* ,679;
&((( #6 6 	6 6r   c                    t        dgi       }|j                  dk(  sJ |j                  g k(  sJ t        dgi       }|j                  dk(  sJ |j                  g k(  sJ t        dgi       }|j                  dk(  sJ |j                  g k(  sJ y )Nr
   authr)   r   r#   r&   s     r   test_determine_verbz&TestDetermineVerbs.test_determine_verb7   s    *J<<
*,,,"$$$*F8R8
*,,,"$$$*L>2>
%'''"$$$r   N)r   r   r   r   r'   r,   r/   r   r   r   r!   r!   &   s    C-
6%r   r!   c                       e Zd ZdZd Zd Zy)TestAddz-Tests for add method in HelpfulArgumentParserc                     t        dgi       }|j                  d d       |j                  j                  ddg      }|j                  dk(  sJ t        |d      rJ y )Nr   z--hello-worldzHello World!r   )r   addparser
parse_argshello_worldhasattrr   r   parsed_argss      r   test_add_trivial_argumentz!TestAdd.test_add_trivial_argumentG   sg    *E7B7
t_- ''22O4B4D E&&.888;1111r   c                     t        ddgi       }|j                  g dddddd	       |j                  j                  dd g      }|j                  J t        |d      sJ y )
Nr   r   )Nr   r
   registerz	--eab-kideab_kidstoreEAB_KIDz+Key Identifier for External Account Binding)destactionmetavarr*   )r   r3   r4   r5   r=   r7   r8   s      r   test_add_expected_argumentz"TestAdd.test_add_expected_argumentO   st    *He+<bA
5)G!B	 	 	D
 !''22K3FG""***{I...r   N)r   r   r   r   r:   rC   r   r   r   r1   r1   E   s    72	/r   r1   c                   "    e Zd ZdZd Zd Zd Zy)TestAddGroupz.Test add_group method of HelpfulArgumentParserc                     t        dgi       }t        j                  t              5  |j	                          d d d        y # 1 sw Y   y xY w)Nr   )r   pytestraises	TypeError	add_groupr&   s     r   test_add_group_no_inputz$TestAddGroup.test_add_group_no_input]   s=    *E7B7
]]9% 	#  "	# 	# 	#s   AA
c                 h    t        ddgi       }|j                  dd       |j                  i k(  sJ y )Nr   r   r.   zdescription of authdescription)r   rJ   groupsr&   s     r    test_add_group_topic_not_visiblez-TestAddGroup.test_add_group_topic_not_visibleb   sB     +He+<bA
V5J 	 	L  B&&&r   c                    t        ddgi       }|j                  dd       |j                  d   sJ |j                  dd       t        j                  t
              5  |j                  d   du sJ 	 d d d        y # 1 sw Y   y xY w)Nr   r   zdescription of runrM   r
   zdescription of certonlyF)r   rJ   rO   rG   rH   KeyErrorr&   s     r   #test_add_group_topic_requested_helpz0TestAddGroup.test_add_group_topic_requested_helpj   s    *He+<bA
U5I 	 	K  '''Z5NO]]8$ 	:$$Z0E999	: 	: 	:s   A==BN)r   r   r   r   rK   rP   rS   r   r   r   rE   rE   [   s    8#
':r   rE   __main__   )r   sysrG   certbot._internal.clir   r   r!   r1   rE   r   exitmainargv__file__r   r   r   <module>r\      sr    & 
  7& &:% %>/ /,: :2 zCHH[V[[!"
234 r   