def test_load_sector(tmpdir): data_dir = Path(tmpdir) Settings.DATA_DIR = data_dir mock_sim_controls = mock.Mock() mock_aircraft_controls = mock.Mock() proxy_simulator_controls = ProxySimulatorControls(mock_sim_controls, mock_aircraft_controls) # First test uploading a new sector # Test error handling from reset mock_sim_controls.reset.return_value = "Sim error (reset)" err = proxy_simulator_controls.load_sector(_TEST_SECTOR) assert err == "Sim error (reset)" # Test error handling from load_sector mock_sim_controls.reset.return_value = None mock_sim_controls.load_sector.return_value = "Sim error (load_sector)" err = proxy_simulator_controls.load_sector(_TEST_SECTOR) assert err == "Sim error (load_sector)" # Test valid response mock_sim_controls.load_sector.return_value = None err = proxy_simulator_controls.load_sector(_TEST_SECTOR) assert not err # Assert sector saved to file with open(data_dir / "sectors" / f"{_TEST_SECTOR.name}.geojson") as f: assert geojson.dumps(SectorElement.deserialise(f)) == geojson.dumps( _TEST_SECTOR.element) # Test load of existing sector by name existing_sector = Sector(_TEST_SECTOR.name, None) err = proxy_simulator_controls.load_sector(existing_sector) assert not err
def test_load_scenario(tmpdir): data_dir = Path(tmpdir) Settings.DATA_DIR = data_dir mock_sim_controls = mock.Mock() mock_aircraft_controls = mock.Mock() proxy_simulator_controls = ProxySimulatorControls(mock_sim_controls, mock_aircraft_controls) # Test error when no sector set res = proxy_simulator_controls.load_scenario(_TEST_SCENARIO) assert res == "No sector set" # First test uploading a new scenario # Test error handling from reset mock_sim_controls.reset.return_value = "Sim error (reset)" err = proxy_simulator_controls.load_sector(_TEST_SECTOR) assert err == "Sim error (reset)" # Test error handling from load_scenario proxy_simulator_controls.sector = _TEST_SECTOR mock_sim_controls.reset.return_value = None mock_sim_controls.load_scenario.return_value = "Sim error (load_scenario)" err = proxy_simulator_controls.load_scenario(_TEST_SCENARIO) assert err == "Sim error (load_scenario)" # Test valid response mock_sim_controls.load_scenario.return_value = None err = proxy_simulator_controls.load_scenario(_TEST_SCENARIO) assert not err # Assert scenario saved to file with open(data_dir / "scenarios" / f"{_TEST_SCENARIO.name}.json") as f: assert json.load(f) == _TEST_SCENARIO.content # Test load of existing scenario by name existing_scn = Scenario(_TEST_SCENARIO.name, None) err = proxy_simulator_controls.load_scenario(existing_scn) assert not err