mirror of https://github.com/astral-sh/uv
35 lines
1.1 KiB
Python
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])
|