cc11082ea7
CI / lint-test-build (push) Failing after 19s
- Added synthetic latency profiler scenarios and CLI scripts for baseline generation and regression checks. - Introduced latency baseline and threshold artifacts for CI enforcement. - Enhanced CI workflow with latency guardrail checks. - Updated documentation to include latency profiling commands and performance metrics. - Added unit tests for latency guardrail evaluation.
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from arbitrade.config.settings import Settings
|
|
|
|
|
|
def test_dashboard_auth_requires_both_fields() -> None:
|
|
with pytest.raises(ValidationError):
|
|
Settings(_env_file=None, DASHBOARD_AUTH_USERNAME="admin")
|
|
|
|
|
|
def test_kraken_api_auth_requires_key_and_secret() -> None:
|
|
with pytest.raises(ValidationError):
|
|
Settings(
|
|
_env_file=None,
|
|
KRAKEN_API_KEY="key-only",
|
|
KRAKEN_API_SECRET="",
|
|
)
|
|
|
|
|
|
def test_kraken_permissions_require_query_and_trade() -> None:
|
|
with pytest.raises(ValidationError):
|
|
Settings(
|
|
_env_file=None,
|
|
KRAKEN_API_KEY="k",
|
|
KRAKEN_API_SECRET="s",
|
|
KRAKEN_API_KEY_PERMISSIONS="query",
|
|
)
|
|
|
|
|
|
def test_kraken_permissions_forbid_withdrawal_scope() -> None:
|
|
with pytest.raises(ValidationError):
|
|
Settings(
|
|
_env_file=None,
|
|
KRAKEN_API_KEY="k",
|
|
KRAKEN_API_SECRET="s",
|
|
KRAKEN_API_KEY_PERMISSIONS="query,trade,withdraw",
|
|
)
|
|
|
|
|
|
def test_alert_min_severity_is_validated() -> None:
|
|
with pytest.raises(ValidationError):
|
|
Settings(_env_file=None, ALERT_MIN_SEVERITY="nope")
|
|
|
|
|
|
def test_valid_security_configuration_passes() -> None:
|
|
settings = Settings(
|
|
_env_file=None,
|
|
KRAKEN_API_KEY="k",
|
|
KRAKEN_API_SECRET="s",
|
|
KRAKEN_API_KEY_PERMISSIONS="query,trade",
|
|
ALERT_MIN_SEVERITY="warning",
|
|
)
|
|
|
|
assert settings.kraken_api_key_permissions == "query,trade"
|