a }|g!@sdZddlZddlZddlZddlZddlZddlmZddlZddlm Z ddl m Z Gdddej ZGdd d ej ZGd d d ej ZGd d d ej ZGdddej ZGdddej ZedkreeejddegdS)z+Test :mod:`certbot._internal.display.util`.N)mock)messages)errorsc@seZdZddZdS) WrapLinesTestcCs4ddlm}dd}||}|ddks0JdS)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.utilrformatcount)selfrmsgtextrV/usr/lib/python3.9/site-packages/certbot/_internal/tests/display/internal_util_test.pytest_wrap_liness  zWrapLinesTest.test_wrap_linesN)__name__ __module__ __qualname__rrrrrrsrc@s(eZdZeddZddZddZdS)PlaceParensTestcCsddlm}||S)Nr)parens_around_char)r r)clsZlabelrrrr_calls zPlaceParensTest._callcCsd|dksJdS)Nz(a)arr rrrtest_single_letter!sz"PlaceParensTest.test_single_lettercCs(d|dksJd|dks$JdS)Nz(L)abelZLabelz (y)es pleasez yes pleaserrrrr test_multiple$szPlaceParensTest.test_multipleN)rrr classmethodrrrrrrrrs rc@sHeZdZdZeddZddZdddZe d d d Z d d Z dS)InputWithTimeoutTestzJWdn1sR0YdS)Nzfoo barrz!certbot.compat.misc.select.select)ioStringIOrr&Z return_valuer)r promptZexpectedstdinZ mock_selectrrr test_input6s  zInputWithTimeoutTest.test_inputz)certbot._internal.display.util.sys.stdoutcCs(d}|||j||jdS)Nz test prompt: )r0writeZassert_called_once_withflush)r Z mock_stdoutr.rrrtest_input_with_prompt=s  z+InputWithTimeoutTest.test_input_with_promptc Csttjtj}|d|dtd|Htt j |j ddWdn1s`0YWdn1s~0Y| dS)N)rr#gMbP?)timeout) socketZAF_INETZ SOCK_STREAMZbindZlistenrr&r'r(rErrorrclose)r r/rrr test_timeoutDs  Hz!InputWithTimeoutTest.test_timeout)N) rrr__doc__rrr+r0rr&r3r:rrrrr)s   rc@sDeZdZdZddZeddZddZdd Zd d Z d d Z dS)SeparateListInputTestzTest Module functions.cCsgd|_dS)N)rbctest)exprrrrsetUpPszSeparateListInputTest.setUpcCsddlm}||S)Nr)separate_list_input)r rB)rZinput_rBrrrrSs zSeparateListInputTest._callcCs|d|jksJdS)Nz a,b,c,testrr@rrrr test_commasXsz!SeparateListInputTest.test_commascCs|d|jksJdS)Nz a b c testrCrrrr test_spaces[sz!SeparateListInputTest.test_spacescCs|d|jksJdS)Nz a, b, c, testrCrrrr test_both^szSeparateListInputTest.test_bothcCs8|d|d|dg}|D]}||jks Jq dS)Nz a , b c testz,a, ,, , b c test z,,,,, , a b,,, , c,testrC)r actualZactrrr test_messas zSeparateListInputTest.test_messN) rrrr;rArrrDrErFrHrrrrr<Ns r<c@s8eZdZeddZddZddZddZd d Zd S) SummarizeDomainListTestcCsddlm}||S)Nr)summarize_domain_list)r rJ)rZdomainsrJrrrrms zSummarizeDomainListTest._callcCsd|dgksJdS)N example.comrrrrrtest_single_domainrsz*SummarizeDomainListTest.test_single_domaincCsd|ddgksJdS)Nzexample.com and example.orgrK example.orgrrrrrtest_two_domainsus z(SummarizeDomainListTest.test_two_domainscCsd|gdksJdS)Nzexample.com and 2 more domains)rKrMz a.example.comrrrrrtest_many_domainsys z)SummarizeDomainListTest.test_many_domainscCsd|gksJdS)Nr4rrrrrtest_empty_domains}sz*SummarizeDomainListTest.test_empty_domainsN) rrrrrrLrNrOrPrrrrrIls  rIc@sDeZdZedeeedddZddZd d Zd d Zd dZ dS)DescribeACMEErrorTest!urn:ietf:params:acme:error:badCSRUnacceptable CSR CSR contained unknown extensionstyptitledetailcCs ddlm}|tj|||dS)Nr)describe_acme_errorrU)r rY acme_messagesr8)rrVrWrXrYrrrrs zDescribeACMEErrorTest._callcCsd|ksJdS)Nz4Unacceptable CSR :: CSR contained unknown extensionsrrrrrtest_title_and_detailsz+DescribeACMEErrorTest.test_title_and_detailcCsd|jddksJdS)NrT)rWrrrrr test_detailsz!DescribeACMEErrorTest.test_detailcCs tjd|jdddksJdS)NZbadCSR)rWrX)rZZ ERROR_CODESrrrrrtest_descriptionsz&DescribeACMEErrorTest.test_descriptioncCsd|jddddksJdS)Nz+urn:ietf:params:acme:error:unknownErrorTyperUrrrrrtest_unknown_typesz'DescribeACMEErrorTest.test_unknown_typeN)rRrSrT) rrrrstrrr[r\r]r^rrrrrQsrQ__main__r5)r;r,r7sysr%Zunittestrr'ZacmerrZZcertbotrZTestCaserrrr<rIrQrexitmainargv__file__rrrrs"    %