a }|g3O@sdZddlZddlZddlmZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZdd lmZdd lmZddlmmZejed ZGd ddejZGdddej Z!GdddejZ"GdddejZ#GdddejZ$GdddejZ%GdddejZ&GdddejZ'GdddejZ(e)de)d Gd!d"d"ejZ*e+d#kre,e-ej.d$de/gdS)%zTest certbot.display.ops.N)mock)messages)errors)account)obj) filesystem)os)ops)utilzrsa512_key.pemc@s|eZdZdZeddZeddZeddZ edd Z ed d Z ed d Z eddZ dS) GetEmailTestz(Tests for certbot.display.ops.get_email.cKsddlm}|fi|S)Nr) get_email)certbot.display.opsr )clskwargsr rL/usr/lib/python3.9/site-packages/certbot/_internal/tests/display/ops_test.py_calls zGetEmailTest._callcCs|j}tjdf|_ttj|Wdn1s>0Yttj|jddWdn1sv0YdS)N foo@bar.bazFZoptional) input display_utilCANCEL return_valuepytestraisesrErrorr)selfmock_get_utility mock_inputrrrtest_cancel_nones  &zGetEmailTest.test_cancel_nonecCsX|j}tjdf|_td&}d|_|dks6JWdn1sJ0YdS)Nr#certbot.display.ops.util.safe_emailT)rrOKrrpatchrrrrmock_safe_emailrrr test_ok_safe(s   zGetEmailTest.test_ok_safecCs\|j}tjdf|_td*}ddg|_|dks:JWdn1sN0YdS)Nrr FT)rrr!rrr" side_effectrr#rrrtest_ok_not_safe0s    zGetEmailTest.test_ok_not_safecCsd}|j}tjdf|_tdV}d|_|||jddvsHJ|jdd||jddvsjJWdn1s~0YdS)NThere seem to be problemsrr TrZinvalid)rrr!rrr"r call_argsrrZ invalid_txtrr$rrrtest_invalid_flag8s   zGetEmailTest.test_invalid_flagcCsx|j}tjdf|_tdF}ddg|_|jdd|jD]}d|ddvsz;ChooseNamesTest.test_sort_names_trivial..csg|] }|qSrrrrrrrr)r rysorted)rryZ some_domainsunsorted_shortZ unsorted_long sorted_shortZ sorted_longrrrtest_sort_names_trivials z'ChooseNamesTest.test_sort_names_trivialc Csddlm}gd}gd}gd}g}|D]}|D]}|||q4q,g}t|D]}|D]}|||q^qV|||ksJdS)Nrrx)z.cx.comz.bx.comz.ax.comz.dx.com)wwwbnother.long.subdomainr~a.long.subdomainrb)r~rrrrr)r ryappendr) rryZunsorted_domainsrrZto_sortZshortrvZsortdrrrtest_sort_names_manys  z$ChooseNamesTest.test_sort_names_manycCsNdh|jj_tjdgf|j_||j}|dgks8J|jjdksJJdSrs)rmrurrr! checklistrrprrSnamesrrrtest_filter_names_valid_returns   z.ChooseNamesTest.test_filter_names_valid_returncCsjdh|jj_tjdgf|j_||jd}|dgks:J|jjdksLJ|jjdddksfJdS)NraZCustomrVr) rmrurrr!rrrpr*rrrr$test_filter_namees_override_questions  z4ChooseNamesTest.test_filter_namees_override_questioncCs4dh|jj_tjgf|j_||jgks0JdSNra)rmrurrr!rrrRrrr"test_filter_names_nothing_selected s z2ChooseNamesTest.test_filter_names_nothing_selectedcCs6dh|jj_tjdgf|j_||jgks2JdSr)rmrurrrrrrRrrrtest_filter_names_cancels  z(ChooseNamesTest.test_filter_names_cancelcCs\ddlm}gd}ddg}gd}|||ks4J||gksDJt||dksXJdS)Nr)get_valid_domains)razsecond.example.comalso.example.comunder_score.example.comjusttldz*.wildcard.comu öóòps.net uniçodé.com)rauúniçøde.comr)r rlen)rrZ all_validZ all_invalidZ two_validrrrtest_get_valid_domainss z&ChooseNamesTest.test_get_valid_domainscCsddlm}|}d|j_tjdf|j_|gks6Jtd4}t ddddd}||_ |gksfJWdn1sz0Ytjd f|j_|gd ksJdS) Nr_choose_names_manuallyFrz=certbot.display.ops.internal_display_util.separate_list_inputrr^rVz=example.com,under_score.example.com,justtld,valid.example.com)rarrzvalid.example.com) r ryesnorrr!rrr"UnicodeEncodeErrorr&)rrSr utility_mockZmock_sliZ unicode_errorrrrtest_choose_manually#s( ,z$ChooseNamesTest.test_choose_manuallycCsFddlm}|}tjdf|j_gd|j_||jjdksBJdS)Nrrr)TTF) r rrr!rrrr&rp)rrSrrrrrtest_choose_manually_retry>s  z*ChooseNamesTest.test_choose_manually_retry)N)r1r2r3r4r?r5rrr"rqr6r7rrrwrrrrrrrrrrrrrrls2          rlc@s6eZdZdZeddZee dddZ dS)SuccessInstallationTestz&Test the success installation message.cCsddlm}||dS)Nr)success_installation)r r)rrrrrrrLs zSuccessInstallationTest._callcertbot.display.util.notifycCsVd|j_ddg}|||jdks*J|jddd}|D]}||vs@Jq@dS)Nraabc.comrVr) notificationrrrpr-)r mock_notify mock_displayrargnamerrrtest_success_installationQs  z1SuccessInstallationTest.test_success_installationN) r1r2r3r4r5rr6r7rr"rrrrrrJs  rc@s6eZdZdZeddZee dddZ dS)SuccessRenewalTestz!Test the success renewal message.cCsddlm}||dS)Nr)success_renewal)r r)rrrrrrrbs zSuccessRenewalTest._callrcCs.d|j_ddg}|||jdks*JdS)NrarrV)rrrrp)rrrrrrrtest_success_renewalgs  z'SuccessRenewalTest.test_success_renewalN) r1r2r3r4r5rr6r7rr"rrrrrr`s  rc@s6eZdZdZeddZee dddZ dS)SuccessRevocationTestz$Test the success revocation message.cCsddlm}||dS)Nr)success_revocation)r r)rrErrrrrts zSuccessRevocationTest._callrcCs"d}|||d|dS)Nz/path/to/cert.pemzWCongratulations! You have successfully revoked the certificate that was located at {0}.)rZassert_called_once_withrf)rrZunused_mock_displayrErrrtest_success_revocationys z-SuccessRevocationTest.test_success_revocationN) r1r2r3r4r5rr6r7rr"rrrrrrrs  rc@seZdZdZdZdZdZeddZe ddZ e d d Z e d d Z e d dZe ddZe ddZe ddZdS)ValidatorTestsz6Tests for `validated_input` and `validated_directory`.zMust be non-emptyZasdfz /var/www/htmlcCs|dkrttjdSr])rZ PluginErrorr_ValidatorTests__ERROR)mrrrZ __validatorszValidatorTests.__validatorcCsrtjdftjdftjdftj|jfg|j_tj|jddd}tj |j j ddksZJ|tj|jfksnJdS)Nr^messageTZforce_interactiver) rr! valid_inputrr&r validated_input_ValidatorTests__validatorrrrr*rrSZreturnedrrrtest_input_blank_with_validators z.ValidatorTests.test_input_blank_with_validatorcCs>tj|jfg|j_tj|jddd}|tj|jfks:JdSNmsgotherdefault)rr!rrr&r rrrrrr"test_input_validation_with_defaultsz1ValidatorTests.test_input_validation_with_defaultcCsTtj|jfg|j_tt"tj |j dddWdn1sF0YdSNrr^r) rr!rrr&rrAssertionErrorr rrrRrrr&test_input_validation_with_bad_defaults z5ValidatorTests.test_input_validation_with_bad_defaultcCs:tjdfg|j_tj|jddd\}}|tjks6JdS)Nr^rTr)rrrr&r rr)rrScodeZ unused_rawrrr test_input_cancel_with_validatorsz/ValidatorTests.test_input_cancel_with_validatorcCsbtjdftj|jfg|j_tj|jddd}tj |j j ddksJJ|tj|jfks^JdS)Nr^rTrr) rr!valid_directorydirectory_selectr&r validated_directoryrrrrr*rrrr test_directory_select_validations  z/ValidatorTests.test_directory_select_validationcCs>tj|jfg|j_tj|jddd}|tj|jfks:JdSr)rr!rrr&r rrrrrr-test_directory_select_validation_with_defaultszs<         B+-E%