/usr/lib/python2.7/dist-packages/keyring/tests/backends/test_kwallet.py is in python-keyring 10.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import unittest
from keyring.backends import kwallet
from ..test_backend import BackendBasicTests
@unittest.skipUnless(kwallet.DBusKeyring.viable, "KWallet5 unavailable")
class DBusKWalletTestCase(BackendBasicTests, unittest.TestCase):
# Remove '@' from service name as this is not supported in service names
# '@' will cause troubles during migration of kwallet entries
DIFFICULT_CHARS = BackendBasicTests.DIFFICULT_CHARS.replace('@', '')
def init_keyring(self):
return kwallet.DBusKeyring()
def tearDown(self):
for item in self.credentials_created:
# Suppress errors, as only one pre/post migration item will be present
try:
self.keyring.delete_password(*item)
except:
pass
# TODO Remove empty folders created during tests
def set_password(self, service, username, password, old_format=False):
# set the password and save the result so the test runner can clean
# up after if necessary.
self.credentials_created.add((service, username))
if old_format:
username = username+'@'+service
service = 'Python'
super(DBusKWalletTestCase, self).set_password(service, username, password)
def check_set_get(self, service, username, password):
keyring = self.keyring
# for the non-existent password
self.assertEqual(keyring.get_password(service, username), None)
# common usage
self.set_password(service, username, password, True)
# re-init keyring to force migration
self.keyring = keyring = self.init_keyring()
ret_password = keyring.get_password(service, username)
self.assertEqual(
ret_password, password,
"Incorrect password for username: '%s' on service: '%s'. '%s' != '%s'"
% (service, username, ret_password, password))
# for the empty password
self.set_password(service, username, "", True)
# re-init keyring to force migration
self.keyring = keyring = self.init_keyring()
ret_password = keyring.get_password(service, username)
self.assertEqual(
ret_password, "",
"Incorrect password for username: '%s' on service: '%s'. '%s' != '%s'"
% (service, username, ret_password, ""))
ret_password = keyring.get_password('Python', username+'@'+service)
self.assertEqual(
ret_password, None,
"Not 'None' password returned for username: '%s' on service: '%s'. '%s' != '%s'. Passwords from old folder should be deleted during migration."
% (service, username, ret_password, None))
@unittest.skipUnless(kwallet.DBusKeyringKWallet4.viable,
"KWallet4 unavailable")
class DBusKWallet4TestCase(DBusKWalletTestCase):
def init_keyring(self):
return kwallet.DBusKeyringKWallet4()
|