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