open-swe/tests/dashboard/test_dashboard_admin.py

40 lines
1.5 KiB
Python
Raw Normal View History

from __future__ import annotations
import pytest
from agent.dashboard.admin import is_admin, is_observability_authorized
def test_is_admin_accepts_email_or_github_login(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("CONFIGURED_ADMINS", "Alice, bob@langchain.dev")
assert is_admin("bob@langchain.dev", login="not-bob") is True
assert is_admin("other@langchain.dev", login="alice") is True
assert is_admin("other@langchain.dev", login="ALICE") is True
assert is_admin("other@langchain.dev", login="mallory") is False
def test_is_admin_rejects_blank_identities(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("CONFIGURED_ADMINS", "alice")
assert is_admin(None, login=None) is False
assert is_admin("", login=" ") is False
def test_observability_authorized_treats_admin_login_as_admin(
monkeypatch: pytest.MonkeyPatch,
) -> None:
monkeypatch.setenv("CONFIGURED_ADMINS", "alice")
monkeypatch.delenv("OBSERVABILITY_AUTHORIZED_EMAILS", raising=False)
assert is_observability_authorized(None, login="alice") is True
assert is_observability_authorized("other@langchain.dev", login="mallory") is False
def test_observability_allowlist_still_uses_email(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("CONFIGURED_ADMINS", "")
monkeypatch.setenv("OBSERVABILITY_AUTHORIZED_EMAILS", "trusted@langchain.dev")
assert is_observability_authorized("trusted@langchain.dev", login="mallory") is True
assert is_observability_authorized("other@langchain.dev", login="trusted") is False