mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-23 01:46:38 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
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
|
||||
Reference in New Issue
Block a user