56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from opensquilla.provider.protocol import (
|
|
ProviderConnectionConfig,
|
|
ProviderMetadata,
|
|
provider_connection_config,
|
|
provider_metadata,
|
|
)
|
|
from opensquilla.session.compaction import build_compaction_config_from_provider
|
|
|
|
|
|
class _MetadataProvider:
|
|
provider_name = "openai"
|
|
|
|
def provider_metadata(self) -> ProviderMetadata:
|
|
return ProviderMetadata(
|
|
provider_name="openai",
|
|
provider_kind="openrouter",
|
|
model="meta/model",
|
|
base_url="https://metadata.example/v1",
|
|
)
|
|
|
|
def provider_connection_config(self) -> ProviderConnectionConfig:
|
|
return ProviderConnectionConfig(
|
|
provider_kind="openrouter",
|
|
model="meta/model",
|
|
api_key="meta-key",
|
|
base_url="https://metadata.example/v1",
|
|
)
|
|
|
|
|
|
def test_provider_metadata_prefers_read_only_protocol() -> None:
|
|
provider = _MetadataProvider()
|
|
|
|
metadata = provider_metadata(provider)
|
|
|
|
assert metadata.provider_name == "openai"
|
|
assert metadata.provider_kind == "openrouter"
|
|
assert metadata.model == "meta/model"
|
|
assert "meta-key" not in repr(metadata)
|
|
|
|
|
|
def test_provider_connection_config_keeps_secret_out_of_repr() -> None:
|
|
config = provider_connection_config(_MetadataProvider())
|
|
|
|
assert config.api_key == "meta-key"
|
|
assert "meta-key" not in repr(config)
|
|
|
|
|
|
def test_compaction_config_uses_provider_connection_config_protocol() -> None:
|
|
cfg = build_compaction_config_from_provider(_MetadataProvider())
|
|
|
|
assert cfg.api_key == "meta-key"
|
|
assert cfg.model == "meta/model"
|
|
assert cfg.base_url == "https://metadata.example/v1"
|