import sys from unittest.mock import MagicMock def pytest_configure(config): """ This hook runs at the start of the pytest session, before any tests are collected. It mocks heavy or unavailable modules to prevent ImportErrors. """ # --- Mock spade and spade-bdi --- mock_spade = MagicMock() mock_spade.agent = MagicMock() mock_spade.behaviour = MagicMock() mock_spade_bdi = MagicMock() mock_spade_bdi.bdi = MagicMock() mock_spade.agent.Message = MagicMock() mock_spade.behaviour.CyclicBehaviour = type("CyclicBehaviour", (object,), {}) mock_spade_bdi.bdi.BDIAgent = type("BDIAgent", (object,), {}) sys.modules["spade"] = mock_spade sys.modules["spade.agent"] = mock_spade.agent sys.modules["spade.behaviour"] = mock_spade.behaviour sys.modules["spade_bdi"] = mock_spade_bdi sys.modules["spade_bdi.bdi"] = mock_spade_bdi.bdi # --- Mock the config module to prevent Pydantic ImportError --- mock_config_module = MagicMock() # The code under test does `from ... import settings`, so our mock module # must have a `settings` attribute. We'll make it a MagicMock so we can # configure it later in our tests using mocker.patch. mock_config_module.settings = MagicMock() sys.modules["control_backend.core.config"] = mock_config_module