Skip to content

Commit f3b14d0

Browse files
authored
Merge pull request #603 from lazka/libsecret-check-session
libsecret: skip if there is no secret service running
2 parents 8b18015 + c3eb39b commit f3b14d0

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

CHANGES.rst

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
v23.11.0
2+
--------
3+
4+
* #603: In ``libsecret``, check that the service is available before
5+
declaring viability.
6+
17
v23.10.0
28
--------
39

keyring/backends/libsecret.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from ..errors import (
88
PasswordDeleteError,
99
PasswordSetError,
10-
ExceptionRaisedContext,
1110
KeyringLocked,
1211
)
1312

@@ -50,10 +49,15 @@ def collection(self):
5049

5150
@properties.classproperty
5251
def priority(cls):
53-
with ExceptionRaisedContext() as exc:
54-
Secret.__name__
55-
if exc:
52+
if not available:
5653
raise RuntimeError("libsecret required")
54+
55+
# Make sure there is actually a secret service running
56+
try:
57+
Secret.Service.get_sync(Secret.ServiceFlags.OPEN_SESSION, None)
58+
except GLib.Error as error:
59+
raise RuntimeError("Can't open a session to the secret service") from error
60+
5761
return 4.8
5862

5963
def get_password(self, service, username):

0 commit comments

Comments
 (0)