
    M/e!                        d Z ddlZddlZddlZddlZddlZddlmZ ddlZddlm	Z
 ddlmZ  G d dej                        Z G d d	ej                        Z G d
 dej                        Z G d dej                        Z G d dej                        Z G d dej                        Zedk(  r4 ej*                   ej,                  ej.                  dd egz                yy)z+Test :mod:`certbot._internal.display.util`.    N)mock)messages)errorsc                       e Zd Zd Zy)WrapLinesTestc                 n    ddl m} dj                  d      } ||      }|j                  d      dk(  sJ y )Nr   )
wrap_lineszThis is just a weak test{0}This function is only meant to be for easy viewing{0}Test a really really really really really really really really really really really really long line...
   )certbot._internal.display.utilr	   formatcount)selfr	   msgtexts       T/usr/lib/python3/dist-packages/certbot/_internal/tests/display/internal_util_test.pytest_wrap_lineszWrapLinesTest.test_wrap_lines   s=    =: ;A&, 	 #zz$1$$$    N)__name__
__module____qualname__r    r   r   r   r      s    %r   r   c                   (    e Zd Zed        Zd Zd Zy)PlaceParensTestc                     ddl m}  ||      S )Nr   )parens_around_char)r   r   )clslabelr   s      r   _callzPlaceParensTest._call   s    E!%((r   c                 0    d| j                  d      k(  sJ y )Nz(a)ar   r   s    r   test_single_letterz"PlaceParensTest.test_single_letter!   s    

3'''r   c                 \    d| j                  d      k(  sJ d| j                  d      k(  sJ y )Nz(L)abelLabelz(y)es pleasez
yes pleaser"   r#   s    r   test_multiplezPlaceParensTest.test_multiple$   s0    DJJw////L!9999r   N)r   r   r   classmethodr   r$   r'   r   r   r   r   r      s    ) )(:r   r   c                   d    e Zd ZdZed        Zd Zd	dZ ej                  d      d        Z
d Zy)
InputWithTimeoutTestz<Tests for certbot._internal.display.util.input_with_timeout.c                     ddl m}  ||i |S )Nr   )input_with_timeout)r   r,   )r   argskwargsr,   s       r   r   zInputWithTimeoutTest._call+   s    E!42622r   c                 ,   t        j                  d      5 }t        j                  d|      5  t	        j
                  t              5  | j                          d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzr+(certbot._internal.display.util.sys.stdin)new)tempfileTemporaryFiler   patchpytestraisesEOFErrorr   )r   fs     r   test_eofzInputWithTimeoutTest.test_eof0   sz    ##D) 	!QFAN !]]8, !JJL!!	! 	!! !! !	! 	!s:   B
A>A2A>!B
2A;7A>>B	B

BNc                     d}t        j                  |dz         }t        j                  d      5 }|gg g f|_        | j                  |      |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nzfoo barr
   z!certbot.compat.misc.select.select)ioStringIOr   r4   return_valuer   )r   promptexpectedstdinmock_selects        r   
test_inputzInputWithTimeoutTest.test_input6   se    HtO,ZZ;< 	2).R'9K$::f%111	2 	2 	2s   "AA%z)certbot._internal.display.util.sys.stdoutc                     d}| j                  |       |j                  j                  |       |j                  j                          y )Nztest prompt: )rB   writeassert_called_once_withflush)r   mock_stdoutr>   s      r   test_input_with_promptz+InputWithTimeoutTest.test_input_with_prompt=   s9     11&9113r   c                    t        j                   t         j                  t         j                        }|j                  d       |j	                  d       t        j                  d|      5  t        j                  t        j                        5  | j                  d       d d d        d d d        |j                          y # 1 sw Y   "xY w# 1 sw Y   &xY w)N) r      r0   gMbP?)timeout)socketAF_INETSOCK_STREAMbindlistenr   r4   r5   r6   r   Errorr   close)r   r@   s     r   test_timeoutz!InputWithTimeoutTest.test_timeoutD   s    fnnf.@.@A

7QZZBEJ 	*v||, *

5
)*	* 	* *	* 	*s$   +$CC"CC	CC)N)r   r   r   __doc__r(   r   r9   rB   r   r4   rH   rT   r   r   r   r*   r*   )   sF    F3 3!2 TZZ;<4 =4r   r*   c                   >    e Zd ZdZd Zed        Zd Zd Zd Z	d Z
y)	SeparateListInputTestzTest Module functions.c                     g d| _         y )N)r!   bctest)expr#   s    r   setUpzSeparateListInputTest.setUpP   s	    *r   c                     ddl m}  ||      S )Nr   )separate_list_input)r   r_   )r   input_r_   s      r   r   zSeparateListInputTest._callS   s    F"6**r   c                 D    | j                  d      | j                  k(  sJ y )Nz
a,b,c,testr   r\   r#   s    r   test_commasz!SeparateListInputTest.test_commasX       zz,'488333r   c                 D    | j                  d      | j                  k(  sJ y )Nz
a b c testrb   r#   s    r   test_spacesz!SeparateListInputTest.test_spaces[   rd   r   c                 D    | j                  d      | j                  k(  sJ y )Nza, b, c, testrb   r#   s    r   	test_bothzSeparateListInputTest.test_both^   s    zz/*dhh666r   c                     | j                  d      | j                  d      | j                  d      g}|D ]  }|| j                  k(  rJ  y )Nz  a , b    c 	 testz,a, ,, , b c  test  z,,,,, , a b,,, , c,testrb   )r   actualacts      r   	test_messzSeparateListInputTest.test_messa   sQ    JJ-.JJ-.JJ01
  	#C$((?"?	#r   N)r   r   r   rU   r]   r(   r   rc   rf   rh   rl   r   r   r   rW   rW   N   s2     + + +447#r   rW   c                   4    e Zd Zed        Zd Zd Zd Zd Zy)SummarizeDomainListTestc                     ddl m}  ||      S )Nr   )summarize_domain_list)r   rp   )r   domainsrp   s      r   r   zSummarizeDomainListTest._callm   s    H$W--r   c                 2    d| j                  dg      k(  sJ y )Nexample.comr"   r#   s    r   test_single_domainz*SummarizeDomainListTest.test_single_domainr   s    

M? ;;;;r   c                 4    d| j                  ddg      k(  sJ y )Nzexample.com and example.orgrs   example.orgr"   r#   s    r   test_two_domainsz(SummarizeDomainListTest.test_two_domainsu   s(    ,]M$BCD 	D Dr   c                 4    d| j                  g d      k(  sJ y )Nzexample.com and 2 more domains)rs   rv   za.example.comr"   r#   s    r   test_many_domainsz)SummarizeDomainListTest.test_many_domainsy   s$    /$STU 	U Ur   c                 0    d| j                  g       k(  sJ y )NrJ   r"   r#   s    r   test_empty_domainsz*SummarizeDomainListTest.test_empty_domains}   s    TZZ^###r   N)	r   r   r   r(   r   rt   rw   ry   r{   r   r   r   rn   rn   l   s*    . .<DU$r   rn   c                   J    e Zd Ze	 	 	 d
dededefd       Zd Zd Zd Zd Z	y	)DescribeACMEErrorTesttyptitledetailc                 J    ddl m}  |t        j                  |||            S )Nr   )describe_acme_errorr~   r   r   )r   r   acme_messagesrR   )r   r~   r   r   r   s        r   r   zDescribeACMEErrorTest._call   s)     	G"CuVDF 	Fr   c                 .    d| j                         k(  sJ y )Nz4Unacceptable CSR :: CSR contained unknown extensionsr"   r#   s    r   test_title_and_detailz+DescribeACMEErrorTest.test_title_and_detail   s    EUUUr   c                 2    d| j                  d       k(  sJ y )N CSR contained unknown extensions)r   r"   r#   s    r   test_detailz!DescribeACMEErrorTest.test_detail   s    1TZZdZ5KKKKr   c                 V    t         j                  d   | j                  d d       k(  sJ y )NbadCSR)r   r   )r   ERROR_CODESr   r#   s    r   test_descriptionz&DescribeACMEErrorTest.test_description   s)    ((2djjtTXj6YYYYr   c                 6    d| j                  dd d       k(  sJ y )Nz+urn:ietf:params:acme:error:unknownErrorTyper   r"   r#   s    r   test_unknown_typez'DescribeACMEErrorTest.test_unknown_type   s,    <JJHPT]aJbc 	c cr   N)z!urn:ietf:params:acme:error:badCSRzUnacceptable CSRr   )
r   r   r   r(   strr   r   r   r   r   r   r   r   r}   r}      sQ    A->F FFF FVLZcr   r}   __main__rK   )rU   r;   rM   sysr2   unittestr   r5   acmer   r   certbotr   TestCaser   r   r*   rW   rn   r}   r   exitmainargv__file__r   r   r   <module>r      s    1 	  
     * 	%H%% 	%:h'' :"8,, "J#H-- #<$h// $*cH-- c. zCHH[V[[!"
234 r   