o a@sldZddlZddlZddlZddlmZddlmZdZe ddeDd ks)Jd d Z Gd d d Z dS)z) Common test functionality for backends. N) random_string)errorsuHזהכיףסתםלשמועאיךתנצחקרפדעץטובבגןξεσκεπάζωτηνψυχοφθόραβδελυγμίαСъешьжеещёэтихмягкихфранцузскихбулокдавыпейчаюЖълтатадюлябешещастливачепухъткойтоцъфназамръзнакатогьонccs|]}t|VqdSNord).0charr 9/usr/lib/python3/dist-packages/keyring/testing/backend.py sr cCstdd|DS)Ncss,|]}dt|kodknVqdS) r Nr)rcr r r r s*z%is_ascii_printable..)all)sr r r is_ascii_printablesrc@seZdZdZejejZej ddddZ ddZ dd Z d d Z d d ZddZddZddZddZddZddZddZddZddZd d!Zd"S)#BackendBasicTestszETest for the keyring's basic functions. password_set and password_getT)autousecCs"||_t|_||jdSr) init_keyringkeyringsetcredentials_created addfinalizercleanup)selfrequestr r r _init_properties&s z"BackendBasicTests._init_propertiescCs|jD]}|jj|qdSr)rrdelete_password)ritemr r r r,s zBackendBasicTests.cleanupcCs$|j||||j||fdSr)r set_passwordradd)rserviceusernamepasswordr r r r 0szBackendBasicTests.set_passwordcCsb|j}|||dus J||||||||ksJ|||d|||dks/JdS)N)r get_passwordr )rr"r#r$rr r r check_set_get6s zBackendBasicTests.check_set_getcCs*td}td}td}||||dSN)rr'rr$r#r"r r r test_password_set_getDsz'BackendBasicTests.test_password_set_getcCs6td|j}td|j}td|j}||||dSr()rDIFFICULT_CHARSr'r*r r r test_difficult_charsJs   z&BackendBasicTests.test_difficult_charscCs\td|j}td|j}td|j}|j||||j|||j||dus,JdSr(rr,rr rr&r*r r r test_delete_presentPs   z%BackendBasicTests.test_delete_presentcCsXtd|j}td|j}ttj|j||WddS1s%wYdSr()rr,pytestraisesrPasswordDeleteErrorrr)rr#r"r r r test_delete_not_presentXs  "z)BackendBasicTests.test_delete_not_presentcCsvtd|j}td|j}td|j}td|j}|j||||||||j|||j|||ks9JdSr(r.)r username1 username2r$r"r r r test_delete_one_in_group^s    z*BackendBasicTests.test_delete_one_in_groupcCst|jjsJdSr)rrname)rr r r test_name_propertyhsz$BackendBasicTests.test_name_propertycCs0tdt}tdt}tdt}||||dSr()r UNICODE_CHARSr'r*r r r test_unicode_charsks   z$BackendBasicTests.test_unicode_charscCsNtdttdtd|j}td|}td|}td|}||||dS)N r))rr9r,r')rsourcer$r#r"r r r test_unicode_and_ascii_charsqs    z.BackendBasicTests.test_unicode_and_ascii_charscCsp|j}|ddd|ddd|dddksJ|dddks%J|ddd|dddks6Jd S) z Issue #47 reports that WinVault isn't storing passwords for multiple users. This test exercises that test for each of the backends. service1user1 password1user2 password2service2user3 password3N)rr r&)rrr r r test_different_user|sz%BackendBasicTests.test_different_usercCs|j}|dd}|dusJ|ddd|ddd|dd}|dus1|j|jfdvs1J|dd}|dus=J|j|jfdvsGJdS)Nr"r>r?r@rArB))r?r@)rArB)rget_credentialr r#r$)rrcredr r r test_credentials     z!BackendBasicTests.test_credentialcCs8tddd}|td||j|jjdksJdS)Nz fizz buzzz ignore me)KEYRING_PROPERTY_FOO_BAR OTHER_SETTINGenviron)dictsetattrosrset_properties_from_envfoo_bar)r monkeypatchenvr r r test_set_propertiess  z%BackendBasicTests.test_set_propertiesN)__name__ __module__ __qualname____doc__string whitespace punctuationr,r0fixturerrr r'r+r-r/r3r6r8r:r=rFrIrTr r r r r!s&      r) rXrOrYr0utilrrrr9minrrr r r r s