a }|ägÀ7ã@sdZddlZddlZddlZddlmZddlZddlZddlZddl m Z ddl m Z ddl mZddl mZddl mZddlmmZej e d ¡¡ZGd d „d ejƒZGd d „d ejƒZGdd„dejƒZGdd„dejƒZedkre  e !ej"dd…e#g¡¡dS)z$Tests for certbot._internal.account.éN)Úmock)Úmessages)Úerrors)Ú filesystem)Úmisc)Úoszrsa512_key.pemc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) Ú AccountTestz,Tests for certbot._internal.account.Account.c CsÚddlm}t ¡|_|jdtjddddddtjd d |_ ||jt |j ƒ|_ tjd d |j_ t  d ¡^}d|j_t  d¡,}|j j|jj_||jt ƒ|_Wdƒn1s®0YWdƒn1sÌ0YdS)Nr©ÚAccountztest.certbot.orgißéééé ©Ztzinfo©Ú creation_hostÚ creation_dtZ i_am_a_regr)Ú return_valuez certbot._internal.account.socketz"certbot._internal.account.datetime)Úcertbot._internal.accountr rÚ MagicMockÚregrÚMetaÚdatetimeÚpytzÚUTCÚmetaÚKEYÚaccÚ__repr__ÚpatchZgetfqdnrrZnowÚ acc_no_meta)Úselfr Z mock_socketZmock_dt©r"úH/usr/lib/python3.9/site-packages/certbot/_internal/tests/account_test.pyÚsetUps  ÿþ  zAccountTest.setUpcCs8|j|jjksJ‚t|jjks"J‚|j|jjks4J‚dS©N)rrrÚkeyrr ©r!r"r"r#Ú test_init(szAccountTest.test_initcCs|jjdksJ‚dS)NZ 7adac10320f585ddf118429c0c4af2cd)rÚidr'r"r"r#Útest_id-szAccountTest.test_idcCs|jjdksJ‚dS)Nz,test.certbot.org@2015-07-04T14:04:10Z (7ada))rZslugr'r"r"r#Ú test_slug0szAccountTest.test_slugcCst|jƒ d¡sJ‚dS)Nz=„Z#d?d@„Z$‡Z%S)AÚAccountFileStorageTestz7Tests for certbot._internal.account.AccountFileStorage.c s~tƒ ¡ddlm}||jƒ|_ddlm}|jdtjddddd d t j d d }|t j dt   ¡d t|d|_t ¡|_dS)Nr©ÚAccountFileStorager ztest.example.orgiåéér r rrr)ZuriÚbody)rr&r)Úsuperr$rrFÚconfigr:r rrrrrZRegistrationResourceZ RegistrationrrrrÚ mock_client)r!rFr r©Ú __class__r"r#r$hs$    ÿþÿüzAccountFileStorageTest.setUpcCstj t |jj¡¡sJ‚dSr%)rÚpathÚisdirrZ.underscores_for_unsupported_characters_in_pathrKÚ accounts_dirr'r"r"r#Útest_init_creates_dirzs ÿz,AccountFileStorageTest.test_init_creates_dircCs˜|j |j|j¡tj |jj|jj ¡}tj  |¡s8J‚dD]}tj  tj ||¡¡srr?r:r@r'r"r"r#Ú#test_load_non_existent_raises_error°sz:AccountFileStorageTest.test_load_non_existent_raises_errorcCs$||j_ddlm}||jƒ|_dS)NrrE)rKÚserverrrFr:)r!rlrFr"r"r#Ú _set_server´s z"AccountFileStorageTest._set_servercCsF| d¡g|j ¡ksJ‚g|j ¡ks.J‚tj |jj¡rBJ‚dS©Nú6https://acme-staging-v02.api.letsencrypt.org/directory)rmr:r<rrOÚislinkrKrQr'r"r"r#Útest_find_all_neither_exists¹s z3AccountFileStorageTest.test_find_all_neither_existscCsŽ| d¡g|j ¡ksJ‚|j |j|j¡|jg|j ¡ksDJ‚|jg|j ¡ksZJ‚tj |j j ¡rnJ‚d}tj  |j   |¡¡rŠJ‚dS©Nroú2https://acme-staging.api.letsencrypt.org/directory) rmr:r<rArrLrrOrprKrQrPÚaccounts_dir_for_server_path©r!Zprev_server_pathr"r"r#Útest_find_all_find_before_save¿s z5AccountFileStorageTest.test_find_all_find_before_savecCs| d¡|j |j|j¡|jg|j ¡ks2J‚|jg|j ¡ksHJ‚tj |j j ¡r\J‚tj  |j j ¡spJ‚d}tj  |j   |¡¡rŒJ‚dSrr) rmr:rArrLr<rrOrprKrQrPrtrur"r"r#Útest_find_all_save_before_findÊs z5AccountFileStorageTest.test_find_all_save_before_findcCsd| d¡g|j ¡ksJ‚|j |j|j¡|jg|j ¡ksDJ‚| d¡g|j ¡ks`J‚dSrr)rmr:r<rArrLr'r"r"r#Útest_find_all_server_downgradeÔs   z5AccountFileStorageTest.test_find_all_server_downgradecCs@| d¡|j |j|j¡| d¡|jg|j ¡ksrrgr@r)©r!r„r"r"r#Útest_load_ioerrors z(AccountFileStorageTest.test_load_ioerrorc Cs|t ¡}t|_t d|¡Nt tj¡"|j   |j |j ¡Wdƒn1sP0YWdƒn1sn0YdSrƒ) rr„r…rerr=r>rrgr:rArrLr†r"r"r#Útest_save_ioerrors s z)AccountFileStorageTest.test_save_ioerrorscCsb|j |j|j¡|j |jj¡t tj ¡ |j  |jj¡Wdƒn1sT0YdSr%) r:rArrLÚdeleter)r=r>rr?r@r'r"r"r#Ú test_deletesz"AccountFileStorageTest.test_deletecCs@t tj¡ |j |jj¡Wdƒn1s20YdSr%)r=r>rr?r:r‰rr)r'r"r"r#Útest_delete_no_accountsz-AccountFileStorageTest.test_delete_no_accountc Cs’| d¡|j |j|j¡t di¡V| d¡t t j ¡ |j  |jj ¡Wdƒn1sf0YWdƒn1s„0YdS)Nrsz,certbot._internal.constants.LE_REUSE_SERVERSro) rmr:rArrLrrr=r>rr?r@r)r'r"r"r#Ú!_assert_symlinked_account_removeds   z8AccountFileStorageTest._assert_symlinked_account_removedcCsà| d¡|j |j|j¡| d¡|j |jj¡| |¡|j |jj¡| d¡t  t j ¡ |j |jj¡Wdƒn1sŒ0Y| d¡t  t j ¡ |j |jj¡Wdƒn1sÒ0YdSry) rmr:rArrLr@r)r‰r=r>rr?)r!Z server_urlr"r"r#Ú_test_delete_folders's    . z+AccountFileStorageTest._test_delete_folderscCs| d¡| ¡dS)Nrs©rrŒr'r"r"r#Útest_delete_folders_up:s z-AccountFileStorageTest.test_delete_folders_upcCs| d¡| ¡dSrnrŽr'r"r"r#Útest_delete_folders_down>s z/AccountFileStorageTest.test_delete_folders_downcCsP| |¡ttj |jjd¡dƒ}| d¡Wdƒn1sB0YdS)NZfooÚwZbar)rmÚopenrrOrWrKrQÚwrite)r!Z server_pathÚfr"r"r#rBs z3AccountFileStorageTest._set_server_and_stop_symlinkcCs| d¡| d¡dSrr©rrr'r"r"r#Útest_delete_shared_account_upGs z4AccountFileStorageTest.test_delete_shared_account_upcCs| d¡| d¡dSrnr•r'r"r"r#Útest_delete_shared_account_downKs z6AccountFileStorageTest.test_delete_shared_account_down)&r/r0r1r2r$rRr[r]r^r_r`rbrirkrmrqrvrwrxr{r|rrr~r€r‚r‡rˆrŠr‹rŒrrrrr–r—Ú __classcell__r"r"rMr#rDesB         rDÚ__main__rG)$r2rÚsysZunittestrZjosepyZjoser=rZacmerZcertbotrZcertbot.compatrrrZcertbot.tests.utilZtestsÚutilZ test_utilZJWKRSAr@Z load_vectorrZTestCaserr3r8ZConfigTestCaserDr/ÚexitÚmainÚargvÚ__file__r"r"r"r#Ús*      #l