Files
gps-denied-onboard/tests/unit/shared/test_config_errors_telemetry.py
Oleksandr Bezdieniezhnykh c3650d979d [AZ-221] [AZ-222] Add shared runtime helpers
Provide deterministic geometry/time-sync helpers and structured config, error, health, and telemetry primitives for downstream runtime components.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 14:01:04 +03:00

66 lines
2.0 KiB
Python

from shared.config import validate_runtime_profile
from shared.errors import ErrorEnvelope, ResultEnvelope
from shared.telemetry import HealthEvent, MetricsLabels
def test_missing_production_cache_dir_returns_readiness_failure() -> None:
# Arrange
payload = {
"environment": "production",
"config_dir": "/etc/gps-denied-onboard",
"fdr_dir": "/var/lib/gps-denied/fdr",
"database_url": "postgresql://localhost/gpsd",
"mavlink_url": "serial:/dev/ttyTHS1:921600",
"camera_source": "hardware",
"signing_key_ref": "secret-ref",
}
# Act
result = validate_runtime_profile("runtime", payload)
# Assert
assert result.ok is False
assert result.error is not None
assert result.error.component == "runtime"
assert result.error.category == "configuration"
assert result.error.severity == "critical"
assert result.error.retryable is False
def test_dependency_error_envelope_has_required_structured_fields() -> None:
# Act
result = ResultEnvelope.failure(
ErrorEnvelope(
component="tile_manager",
category="dependency",
message="postgis unavailable",
severity="error",
retryable=True,
cause="connection refused",
)
)
# Assert
assert result.ok is False
assert result.error is not None
assert result.error.component == "tile_manager"
assert result.error.category == "dependency"
assert result.error.severity == "error"
assert result.error.retryable is True
def test_health_event_and_metrics_labels_are_fdr_safe_metadata() -> None:
# Act
health = HealthEvent(
component="runtime",
timestamp_ns=1,
liveness="alive",
readiness="ready",
dependency_state={"postgis": "ready"},
)
labels = MetricsLabels(component="runtime", action="startup", status="ok")
# Assert
assert health.dependency_state["postgis"] == "ready"
assert labels.status == "ok"