emma-hermes/tests/gateway/test_openwebui_runs_proxy_h...

79 lines
3.3 KiB
Python

import importlib.util
from pathlib import Path
def _load_proxy_module():
path = Path("/Users/hermes/.hermes/scripts/openwebui_runs_proxy.py")
spec = importlib.util.spec_from_file_location("openwebui_runs_proxy", path)
module = importlib.util.module_from_spec(spec)
assert spec and spec.loader
spec.loader.exec_module(module)
return module
def test_live_verified_email_handoff_requires_exact_match(monkeypatch):
proxy = _load_proxy_module()
class _Store:
def bound_email_matches_source(self, source, email, explicit_user_requested=False):
return email == "vivian@bremen.com.tw"
def get_verified_email_for_source(self, source):
return "vivian@bremen.com.tw"
monkeypatch.setattr("gateway.user_verification.GatewayUserStore", lambda: _Store())
identity = {"user_id": "openwebui-user-42", "name": "Vivian"}
assert proxy._resolve_live_verified_email_for_handoff(identity, "vivian@bremen.com.tw") == "vivian@bremen.com.tw"
assert proxy._resolve_live_verified_email_for_handoff(identity, "dk96@bremen.com.tw") is None
def test_live_verified_email_handoff_fails_closed_without_runtime_identity():
proxy = _load_proxy_module()
assert proxy._resolve_live_verified_email_for_handoff({}, "vivian@bremen.com.tw") is None
def test_upstream_identity_headers_include_standardized_identity_fields():
proxy = _load_proxy_module()
headers = proxy._upstream_identity_headers(
{
"user_id": "openwebui-user-42",
"user_email": "Vivian@Bremen.com.tw",
"name": "Vivian",
},
session_key="stable-session-key",
)
assert headers["X-Hermes-Session-Key"] == "stable-session-key"
assert headers["X-Hermes-User-Id"] == "openwebui-user-42"
assert headers["X-Hermes-User-Email"] == "vivian@bremen.com.tw"
assert headers["X-Hermes-User-Name"] == "Vivian"
def test_extract_download_link_mode_accepts_top_level_and_metadata_hermes():
proxy = _load_proxy_module()
assert proxy._extract_download_link_mode({"download_link_mode": "public"}) == "public"
assert proxy._extract_download_link_mode({"metadata": {"hermes": {"download_link_mode": "private"}}}) == "private"
def test_rewrite_local_paths_to_download_links_passes_owner_metadata_and_link_mode(monkeypatch):
proxy = _load_proxy_module()
seen = {}
def _fake_build_public_download_url(path, *, owner_metadata=None, link_mode=None):
seen["path"] = path
seen["owner_metadata"] = owner_metadata
seen["link_mode"] = link_mode
return "https://hermesadmin.bremen.com.tw/downloads/s-demo"
monkeypatch.setattr(proxy, "build_public_download_url", _fake_build_public_download_url)
rewritten, links = proxy._rewrite_local_paths_to_download_links(
"/Users/hermes/result.pdf",
owner_metadata={"email": "vivian@bremen.com.tw", "external_user_id": "openwebui-user-42"},
link_mode="private",
)
assert rewritten == "[result.pdf](https://hermesadmin.bremen.com.tw/downloads/s-demo)"
assert links == [("result.pdf", "https://hermesadmin.bremen.com.tw/downloads/s-demo")]
assert seen["path"] == "/Users/hermes/result.pdf"
assert seen["owner_metadata"]["email"] == "vivian@bremen.com.tw"
assert seen["link_mode"] == "private"