Files
EvoScientist/tests/test_provider_admin.py
T

43 lines
1.4 KiB
Python

from __future__ import annotations
import os
from EvoScientist.config.provider_admin import (
get_provider_admin_token,
get_provider_admin_token_path,
)
def test_explicit_provider_admin_token_wins(monkeypatch, tmp_path):
monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path))
monkeypatch.setenv("EVOSCIENTIST_PROVIDER_ADMIN_TOKEN", "explicit-token")
assert get_provider_admin_token() == "explicit-token"
assert not get_provider_admin_token_path().exists()
def test_provider_admin_token_is_created_and_reused(monkeypatch, tmp_path):
monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path))
monkeypatch.delenv("EVOSCIENTIST_PROVIDER_ADMIN_TOKEN", raising=False)
first = get_provider_admin_token()
second = get_provider_admin_token()
path = get_provider_admin_token_path()
assert first
assert first == second
assert path.read_text(encoding="utf-8").strip() == first
if os.name != "nt":
assert path.parent.stat().st_mode & 0o777 == 0o700
assert path.stat().st_mode & 0o777 == 0o600
def test_provider_admin_token_reads_existing_file(monkeypatch, tmp_path):
monkeypatch.setenv("XDG_CONFIG_HOME", str(tmp_path))
monkeypatch.delenv("EVOSCIENTIST_PROVIDER_ADMIN_TOKEN", raising=False)
path = get_provider_admin_token_path()
path.parent.mkdir(parents=True)
path.write_text("shared-token\n", encoding="utf-8")
assert get_provider_admin_token() == "shared-token"