a ‚oe3Oã@sªdZddlZddlZddlmZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZdd lmZdd lmZddlmmZej e d ¡¡ZGd d„dejƒZGdd„dej ƒZ!Gdd„dejƒZ"Gdd„dejƒZ#Gdd„dejƒZ$Gdd„dejƒZ%Gdd„dejƒZ&Gdd„dejƒZ'Gdd„dejƒZ(e )d¡e )d ¡Gd!d"„d"ejƒƒƒZ*e+d#k�r¦e ,e -ej.d$d…e/g¡¡dS)%zTest certbot.display.ops.éN)Úmock)Úmessages)Úerrors)Úaccount)Úobj)Ú filesystem)Úos)Úops)Úutilzrsa512_key.pemc@s|eZdZdZedd„ƒZe ¡dd„ƒZe ¡dd„ƒZ e ¡dd „ƒZ e ¡d d „ƒZ e ¡d d „ƒZ e ¡dd„ƒZ dS)Ú GetEmailTestz(Tests for certbot.display.ops.get_email.cKsddlm}|fi|¤ŽS)Nr)Ú get_email)Úcertbot.display.opsr )ÚclsÚkwargsr ©rúIC:\Program Files\Certbot\pkgs\certbot\_internal\tests\display\ops_test.pyÚ_calls zGetEmailTest._callcCs„|ƒj}tjdf|_t tj¡�| ¡Wdƒn1s>0Yt tj¡�|jdd�Wdƒn1sv0YdS)Nú foo@bar.bazF©Zoptional) ÚinputÚ display_utilÚCANCELÚ return_valueÚpytestÚraisesrÚErrorr)ÚselfÚmock_get_utilityÚ mock_inputrrrÚtest_cancel_nones  &zGetEmailTest.test_cancel_nonecCsX|ƒj}tjdf|_t d¡�&}d|_| ¡dks6J‚Wdƒn1sJ0YdS)Nrú#certbot.display.ops.util.safe_emailT)rrÚOKrrÚpatchr©rrrÚmock_safe_emailrrrÚ test_ok_safe(s   zGetEmailTest.test_ok_safecCs\|ƒj}tjdf|_t d¡�*}ddg|_| ¡dks:J‚Wdƒn1sN0YdS)Nrr FT)rrr!rrr"Ú side_effectrr#rrrÚtest_ok_not_safe0s    zGetEmailTest.test_ok_not_safecCsŒd}|ƒj}tjdf|_t d¡�V}d|_| ¡||jddvsHJ‚|jdd�||jddvsjJ‚Wdƒn1s~0YdS)NúThere seem to be problemsrr Tr©Zinvalid)rrr!rrr"rÚ call_args©rrZ invalid_txtrr$rrrÚtest_invalid_flag8s   zGetEmailTest.test_invalid_flagcCsx|ƒj}tjdf|_t d¡�F}ddg|_|jdd�|jD]}d|ddvsÝóz;ChooseNamesTest.test_sort_names_trivial..csg|] }|ˆ‘qSrrr�r„rrr…àr†)r ryÚsorted)rryZ some_domainsÚunsorted_shortZ unsorted_longÚ sorted_shortZ sorted_longrr„rÚtest_sort_names_trivialÐs z'ChooseNamesTest.test_sort_names_trivialc Csˆddlm}gd¢}gd¢}gd¢}g}|D]}|D]}| ||¡q4q,g}t|ƒD]}|D]}| ||¡q^qV||ƒ|ks„J‚dS)Nrrx)z.cx.comz.bx.comz.ax.comz.dx.com)Úwwwúbnother.long.subdomainr~úa.long.subdomainrÚb)r~rŽr�rŒr‹r)r ryÚappendr‡) rryZunsorted_domainsrˆr‰Zto_sortZshortrvZsortdrrrÚtest_sort_names_manyäs  z$ChooseNamesTest.test_sort_names_manycCsNdh|jj_tjdgf|ƒj_| |j¡}|dgks8J‚|ƒjjdksJJ‚dSrs)rmrurrr!Ú checklistrrp©rrSÚnamesrrrÚtest_filter_names_valid_return÷s   z.ChooseNamesTest.test_filter_names_valid_returncCsjdh|jj_tjdgf|ƒj_| |jd¡}|dgks:J‚|ƒjjdksLJ‚|ƒjjdddksfJ‚dS)NraZCustomrVr) rmrurrr!r‘rrpr*r’rrrÚ$test_filter_namees_override_questions  z4ChooseNamesTest.test_filter_namees_override_questioncCs4dh|jj_tjgf|ƒj_| |j¡gks0J‚dS©Nra)rmrurrr!r‘rrRrrrÚ"test_filter_names_nothing_selected s z2ChooseNamesTest.test_filter_names_nothing_selectedcCs6dh|jj_tjdgf|ƒj_| |j¡gks2J‚dSr–)rmrurrrr‘rrRrrrÚtest_filter_names_cancels ÿ z(ChooseNamesTest.test_filter_names_cancelcCs\ddlm}gd¢}ddg}gd¢}||ƒ|ks4J‚||ƒgksDJ‚t||ƒƒdksXJ‚dS)Nr)Úget_valid_domains)razsecond.example.comúalso.example.comúunder_score.example.comÚjusttldz*.wildcard.comu öóòps.netõ uniçodé.com)rauúniçøde.comršé)r r™Úlen)rr™Z all_validZ all_invalidZ two_validrrrÚtest_get_valid_domainss z&ChooseNamesTest.test_get_valid_domainscCs¨ddlm}|ƒ}d|j_tjdf|j_|ƒgks6J‚t d¡�4}t dddddƒ}||_ |ƒgksfJ‚Wdƒn1sz0Ytjd f|j_|ƒgd ¢ks¤J‚dS) Nr©Ú_choose_names_manuallyFr�z=certbot.display.ops.internal_display_util.separate_list_inputrr^rVz=example.com,under_score.example.com,justtld,valid.example.com)rar›rœzvalid.example.com) r r¢Úyesnorrr!rrr"ÚUnicodeEncodeErrorr&)rrSr¢Ú utility_mockZmock_sliZ unicode_errorrrrÚtest_choose_manually#s( ÿÿ,ÿÿz$ChooseNamesTest.test_choose_manuallycCsFddlm}|ƒ}tjdf|j_gd¢|j_|ƒ|jjdksBJ‚dS)Nrr¡r�)TTFé) r r¢rr!rrr£r&rp)rrSr¢r¥rrrÚtest_choose_manually_retry>s ÿ z*ChooseNamesTest.test_choose_manually_retry)N)r1r2r3r4r?r5rrr"rqr6r7rrrwrŠr�r”r•r—r˜r r¦r¨rrrrrl±s2          rlc@s6eZdZdZedd„ƒZe ¡e  d¡dd„ƒƒZ dS)ÚSuccessInstallationTestz&Test the success installation message.cCsddlm}||ƒdS)Nr)Úsuccess_installation)r rª)rr“rªrrrrLs zSuccessInstallationTest._callúcertbot.display.util.notifycCsVd|ƒj_ddg}| |¡|jdks*J‚|jddd}|D]}||vs@J‚q@dS)Nraúabc.comrVr)Ú notificationrrrpr-)rÚ mock_notifyÚ mock_displayr“ÚargÚnamerrrÚtest_success_installationQs  z1SuccessInstallationTest.test_success_installationN) r1r2r3r4r5rr6r7rr"r²rrrrr©Js  r©c@s6eZdZdZedd„ƒZe ¡e  d¡dd„ƒƒZ dS)ÚSuccessRenewalTestz!Test the success renewal message.cCsddlm}||ƒdS)Nr)Úsuccess_renewal)r r´)rr“r´rrrrbs zSuccessRenewalTest._callr«cCs.d|ƒj_ddg}| |¡|jdks*J‚dS)Nrar¬rV)r­rrrp)rr®r¯r“rrrÚtest_success_renewalgs  z'SuccessRenewalTest.test_success_renewalN) r1r2r3r4r5rr6r7rr"rµrrrrr³`s  r³c@s6eZdZdZedd„ƒZe ¡e  d¡dd„ƒƒZ dS)ÚSuccessRevocationTestz$Test the success revocation message.cCsddlm}||ƒdS)Nr)Úsuccess_revocation)r r·)rrEr·rrrrts zSuccessRevocationTest._callr«cCs"d}| |¡| d |¡¡dS)Nz/path/to/cert.pemzWCongratulations! You have successfully revoked the certificate that was located at {0}.)rZassert_called_once_withrf)rr®Zunused_mock_displayrErrrÚtest_success_revocationys ÿÿz-SuccessRevocationTest.test_success_revocationN) r1r2r3r4r5rr6r7rr"r¸rrrrr¶rs  r¶c@s˜eZdZdZdZdZdZedd„ƒZe   ¡dd„ƒZ e   ¡d d „ƒZ e   ¡d d „ƒZ e   ¡d d„ƒZe   ¡dd„ƒZe   ¡dd„ƒZe   ¡dd„ƒZdS)ÚValidatorTestsz6Tests for `validated_input` and `validated_directory`.zMust be non-emptyZasdfz /var/www/htmlcCs|dkrt tj¡‚dSr])rZ PluginErrorr¹Ú_ValidatorTests__ERROR)ÚmrrrZ __validatorŒszValidatorTests.__validatorcCsrtjdftjdftjdftj|jfg|ƒj_tj|jddd�}tj |ƒj j ddksZJ‚|tj|jfksnJ‚dS)Nr^ÚmessageT©Zforce_interactiver) rr!Ú valid_inputrr&r Úvalidated_inputÚ_ValidatorTests__validatorr¹rºr­r*©rrSZreturnedrrrÚtest_input_blank_with_validator‘s ý z.ValidatorTests.test_input_blank_with_validatorcCs>tj|jfg|ƒj_tj|jddd�}|tj|jfks:J‚dS©NÚmsgÚother©Údefault)rr!r¾rr&r r¿rÀrÁrrrÚ"test_input_validation_with_defaultœsz1ValidatorTests.test_input_validation_with_defaultcCsTtj|jfg|ƒj_t t¡�"tj |j ddd�Wdƒn1sF0YdS©NrÄr^rÆ) rr!r¾rr&rrÚAssertionErrorr r¿rÀrRrrrÚ&test_input_validation_with_bad_default£s z5ValidatorTests.test_input_validation_with_bad_defaultcCs:tjdfg|ƒj_tj|jddd�\}}|tjks6J‚dS)Nr^r¼Tr½)rrrr&r r¿rÀ)rrSÚcodeZ unused_rawrrrÚ test_input_cancel_with_validatorªsz/ValidatorTests.test_input_cancel_with_validatorcCsbtjdftj|jfg|ƒj_tj|jddd�}tj |ƒj j ddksJJ‚|tj|jfks^J‚dS)Nr^rÄTr½r) rr!Úvalid_directoryÚdirectory_selectr&r Úvalidated_directoryrÀr¹rºr­r*rÁrrrÚ test_directory_select_validation±s  ÿ z/ValidatorTests.test_directory_select_validationcCs>tj|jfg|ƒj_tj|jddd�}|tj|jfks:J‚dSrÃ)rr!rÎrÏr&r rÐrÀrÁrrrÚ-test_directory_select_validation_with_defaultºszs<         B+-E%