mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-22 07:06:38 +00:00
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
import pytest
|
|
pytest.skip("Obsolete test file replaced by component-specific unit tests", allow_module_level=True)
|
|
|
|
from unittest.mock import Mock
|
|
|
|
from f02_flight_processing_engine import FlightProcessingEngine
|
|
|
|
@pytest.fixture
|
|
def mock_deps():
|
|
return {
|
|
"failure_coord": Mock(),
|
|
"chunk_manager": Mock(),
|
|
}
|
|
|
|
@pytest.fixture
|
|
def engine(mock_deps):
|
|
return FlightProcessingEngine(
|
|
vo_frontend=Mock(), factor_graph=Mock(), cvgl_backend=Mock(),
|
|
failure_coordinator=mock_deps["failure_coord"],
|
|
route_chunk_manager=mock_deps["chunk_manager"]
|
|
)
|
|
|
|
class TestTrackingLossRecovery:
|
|
"""Tests defined in 02.2.02_feature_tracking_loss_recovery.md"""
|
|
|
|
def test_handle_tracking_loss_starts_progressive_search(self, engine, mock_deps):
|
|
engine.flight_status = "PROCESSING"
|
|
|
|
mock_session = Mock()
|
|
mock_deps["failure_coord"].start_search.return_value = mock_session
|
|
|
|
result = engine.handle_tracking_loss("flight_123", 10)
|
|
|
|
mock_deps["failure_coord"].start_search.assert_called_once()
|
|
assert result == "BLOCKED"
|
|
assert engine.flight_status == "BLOCKED"
|
|
mock_deps["failure_coord"].create_user_input_request.assert_called_once()
|
|
|
|
def test_apply_user_fix_returns_success_and_resumes(self, engine, mock_deps):
|
|
engine.flight_status = "BLOCKED"
|
|
mock_deps["failure_coord"].apply_user_anchor.return_value = True
|
|
|
|
mock_fix_data = Mock(frame_id=10)
|
|
result = engine.apply_user_fix("flight_123", mock_fix_data)
|
|
|
|
assert result["status"] == "SUCCESS"
|
|
assert engine.flight_status == "PROCESSING"
|
|
|
|
def test_apply_user_fix_rejects_invalid_anchor(self, engine, mock_deps):
|
|
engine.flight_status = "BLOCKED"
|
|
mock_deps["failure_coord"].apply_user_anchor.return_value = False
|
|
|
|
mock_fix_data = Mock(frame_id=10)
|
|
result = engine.apply_user_fix("flight_123", mock_fix_data)
|
|
|
|
assert result["status"] == "ERROR"
|
|
assert engine.flight_status == "BLOCKED" # Status remains blocked |