uv/scripts/packages/keyring_test_plugin/keyrings/test_keyring.py

35 lines
1.1 KiB
Python

import json
import os
import sys
from keyring import backend, credentials
class KeyringTest(backend.KeyringBackend):
priority = 9
def get_password(self, service, username):
print(f"Keyring request for {username}@{service}", file=sys.stderr)
entries = json.loads(os.environ.get("KEYRING_TEST_CREDENTIALS", "{}"))
return entries.get(service, {}).get(username)
def set_password(self, service, username, password):
raise NotImplementedError()
def delete_password(self, service, username):
raise NotImplementedError()
def get_credential(self, service, username):
print(f"Keyring request for {service}", file=sys.stderr)
entries = json.loads(os.environ.get("KEYRING_TEST_CREDENTIALS", "{}"))
service_entries = entries.get(service, {})
if not service_entries:
return None
if username:
password = service_entries.get(username)
if not password:
return None
return credentials.SimpleCredential(username, password)
else:
return credentials.SimpleCredential(*list(service_entries.items())[0])