From 2e7aa266727d97a6f0a4d30a0afa9a300d99db44 Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Sat, 11 Sep 2021 22:07:09 +0300 Subject: [PATCH] Use Session collection for testing libsecret backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is specific to GNOME Keyring, but we do the same for testing SecretStorage backend. The login collection is not available in a clean environment, which results in this error: No such interface “org.freedesktop.Secret.Collection” on object at path /org/freedesktop/secrets/collection/login --- keyring/backends/libsecret.py | 3 ++- tests/backends/test_libsecret.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyring/backends/libsecret.py b/keyring/backends/libsecret.py index 9142fd3e..6d110c1c 100644 --- a/keyring/backends/libsecret.py +++ b/keyring/backends/libsecret.py @@ -77,7 +77,8 @@ def get_password(self, service, username): def set_password(self, service, username, password): """Set password for the username of the service""" - collection = Secret.COLLECTION_DEFAULT + collection = getattr(self, 'preferred_collection', + Secret.COLLECTION_DEFAULT) attributes = { "application": self.appid, "service": service, diff --git a/tests/backends/test_libsecret.py b/tests/backends/test_libsecret.py index 9b8a633a..a4cf7901 100644 --- a/tests/backends/test_libsecret.py +++ b/tests/backends/test_libsecret.py @@ -18,6 +18,7 @@ def init_keyring(self): "password prompts are for this keyring" ) keyring = libsecret.Keyring() + keyring.preferred_collection = 'session' return keyring