From 5d0a375b1a347dfb1f263a256876e08cd1ec437e 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 | 2 +- tests/backends/test_libsecret.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/keyring/backends/libsecret.py b/keyring/backends/libsecret.py index 9142fd3e..5b4fbd96 100644 --- a/keyring/backends/libsecret.py +++ b/keyring/backends/libsecret.py @@ -77,7 +77,7 @@ 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