← Files Soprano ConnectARCHIVED FILE
tests/test_connection.py
5.98 KB · Nov 3, 2026 · 19:13 UTC
from __future__ import annotations
import pytest
from mems_mcp.connection import (
HEADER_API_ID,
HEADER_API_KEY,
HEADER_AUTH_METHOD,
HEADER_CLIENT_ID,
HEADER_CLIENT_SECRET,
HEADER_DOMAIN_URL,
HEADER_PASSWORD,
HEADER_SESSION_COOKIE,
HEADER_USERNAME,
connection_from_env,
connection_from_headers,
derive_domain_from_host,
)
from mems_mcp.auth.api_key import ApiKeyAuth
from mems_mcp.auth.basic import BasicAuth
from mems_mcp.auth.legacy_oauth2 import LegacyOAuth2Auth
from mems_mcp.auth.oauth2 import OAuth2Auth
from mems_mcp.auth.session_cookie import SessionCookieAuth
from mems_mcp.exceptions import ConnectionConfigError
DOMAIN = "https://aus.sopranodesign.com"
def test_missing_domain_url_raises() -> None:
with pytest.raises(ConnectionConfigError, match=HEADER_DOMAIN_URL):
connection_from_headers({HEADER_AUTH_METHOD: "api_key"})
def test_derive_domain_from_host_strips_mcp_prefix() -> None:
assert derive_domain_from_host("mcp-aus.sopranodesign.com") == DOMAIN
def test_derive_domain_from_host_ignores_port() -> None:
assert derive_domain_from_host("mcp-aus.sopranodesign.com:8000") == DOMAIN
def test_derive_domain_from_host_returns_none_without_mcp_prefix() -> None:
assert derive_domain_from_host("aus.sopranodesign.com") is None
def test_derive_domain_from_host_returns_none_for_single_label_host() -> None:
assert derive_domain_from_host("localhost") is None
def test_missing_auth_method_raises() -> None:
with pytest.raises(ConnectionConfigError, match=HEADER_AUTH_METHOD):
connection_from_headers({HEADER_DOMAIN_URL: DOMAIN})
def test_invalid_auth_method_raises() -> None:
with pytest.raises(ConnectionConfigError, match="Invalid"):
connection_from_headers({HEADER_DOMAIN_URL: DOMAIN, HEADER_AUTH_METHOD: "not-a-method"})
def test_domain_url_trailing_slash_is_stripped() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: f"{DOMAIN}/",
HEADER_AUTH_METHOD: "api_key",
HEADER_API_ID: "12345",
HEADER_API_KEY: "secret",
}
)
assert connection.domain_url == DOMAIN
def test_api_key_method_builds_api_key_auth() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "api_key",
HEADER_API_ID: "12345",
HEADER_API_KEY: "secret",
}
)
assert isinstance(connection.auth_strategy, ApiKeyAuth)
assert connection.auth_strategy.api_id == "12345"
assert connection.auth_strategy.api_key == "secret"
def test_api_key_method_missing_credentials_raises() -> None:
with pytest.raises(ConnectionConfigError, match=HEADER_API_KEY):
connection_from_headers(
{HEADER_DOMAIN_URL: DOMAIN, HEADER_AUTH_METHOD: "api_key", HEADER_API_ID: "12345"}
)
def test_oauth2_method_builds_oauth2_auth() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "oauth2",
HEADER_CLIENT_ID: "cid",
HEADER_CLIENT_SECRET: "csecret",
}
)
assert isinstance(connection.auth_strategy, OAuth2Auth)
assert connection.auth_strategy.client_id == "cid"
def test_basic_method_builds_basic_auth() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "basic",
HEADER_USERNAME: "user@url.com",
HEADER_PASSWORD: "pwd",
}
)
assert isinstance(connection.auth_strategy, BasicAuth)
def test_legacy_oauth2_method_builds_legacy_auth() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "legacy_oauth2",
HEADER_USERNAME: "user@url.com",
HEADER_PASSWORD: "pwd",
}
)
assert isinstance(connection.auth_strategy, LegacyOAuth2Auth)
def test_auth_method_is_case_insensitive() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "API_KEY",
HEADER_API_ID: "12345",
HEADER_API_KEY: "secret",
}
)
assert isinstance(connection.auth_strategy, ApiKeyAuth)
def test_connection_from_env_builds_connection() -> None:
env = {
"SOPRANO_DOMAIN_URL": DOMAIN,
"SOPRANO_AUTH_METHOD": "api_key",
"SOPRANO_API_ID": "12345",
"SOPRANO_API_KEY": "secret",
}
connection = connection_from_env(env)
assert connection.domain_url == DOMAIN
assert isinstance(connection.auth_strategy, ApiKeyAuth)
def test_connection_from_env_missing_domain_url_raises() -> None:
with pytest.raises(ConnectionConfigError, match=HEADER_DOMAIN_URL):
connection_from_env({"SOPRANO_AUTH_METHOD": "api_key"})
def test_connection_from_env_mentions_env_var_in_error() -> None:
with pytest.raises(ConnectionConfigError, match="SOPRANO_DOMAIN_URL"):
connection_from_env({"SOPRANO_AUTH_METHOD": "api_key"})
def test_session_cookie_method_builds_session_cookie_auth() -> None:
connection = connection_from_headers(
{
HEADER_DOMAIN_URL: DOMAIN,
HEADER_AUTH_METHOD: "session_cookie",
HEADER_SESSION_COOKIE: "ABC123DEF456",
}
)
assert isinstance(connection.auth_strategy, SessionCookieAuth)
assert connection.auth_strategy.session_cookie == "ABC123DEF456"
def test_session_cookie_method_missing_cookie_raises() -> None:
with pytest.raises(ConnectionConfigError, match=HEADER_SESSION_COOKIE):
connection_from_headers({HEADER_DOMAIN_URL: DOMAIN, HEADER_AUTH_METHOD: "session_cookie"})
def test_connection_from_env_builds_session_cookie_auth() -> None:
env = {
"SOPRANO_DOMAIN_URL": DOMAIN,
"SOPRANO_AUTH_METHOD": "session_cookie",
"SOPRANO_SESSION_COOKIE": "ABC123DEF456",
}
connection = connection_from_env(env)
assert isinstance(connection.auth_strategy, SessionCookieAuth)
SHA-256: 383b14db2b7bb3ebed2958aaa472740127322f32f13dba718f08f140a7dce3f8