This commit is contained in:
@@ -50,8 +50,7 @@ def test_network_snapshot_prefers_repository_data(
|
||||
track = sample_entities["track"]
|
||||
train = sample_entities["train"]
|
||||
|
||||
monkeypatch.setattr(StationRepository, "list_active",
|
||||
lambda self: [station])
|
||||
monkeypatch.setattr(StationRepository, "list_active", lambda self: [station])
|
||||
monkeypatch.setattr(TrackRepository, "list_all", lambda self: [track])
|
||||
monkeypatch.setattr(TrainRepository, "list_all", lambda self: [train])
|
||||
|
||||
@@ -59,8 +58,7 @@ def test_network_snapshot_prefers_repository_data(
|
||||
|
||||
assert snapshot["stations"]
|
||||
assert snapshot["stations"][0]["name"] == station.name
|
||||
assert snapshot["tracks"][0]["lengthMeters"] == pytest.approx(
|
||||
track.length_meters)
|
||||
assert snapshot["tracks"][0]["lengthMeters"] == pytest.approx(track.length_meters)
|
||||
assert snapshot["trains"][0]["designation"] == train.designation
|
||||
assert snapshot["trains"][0]["operatingTrackIds"] == []
|
||||
|
||||
@@ -76,5 +74,4 @@ def test_network_snapshot_falls_back_when_repositories_empty(
|
||||
|
||||
assert snapshot["stations"]
|
||||
assert snapshot["trains"]
|
||||
assert any(station["name"] ==
|
||||
"Central" for station in snapshot["stations"])
|
||||
assert any(station["name"] == "Central" for station in snapshot["stations"])
|
||||
|
||||
@@ -58,7 +58,9 @@ def test_build_stage_plan_respects_skip_flags(tmp_path: Path) -> None:
|
||||
assert labels == ["Load stations", "Load tracks"]
|
||||
|
||||
|
||||
def test_main_dry_run_lists_plan(monkeypatch: pytest.MonkeyPatch, tmp_path: Path, capsys: pytest.CaptureFixture[str]) -> None:
|
||||
def test_main_dry_run_lists_plan(
|
||||
monkeypatch: pytest.MonkeyPatch, tmp_path: Path, capsys: pytest.CaptureFixture[str]
|
||||
) -> None:
|
||||
def fail(_args: list[str] | None) -> int: # pragma: no cover - defensive
|
||||
raise AssertionError("runner should not be invoked during dry run")
|
||||
|
||||
@@ -76,7 +78,9 @@ def test_main_dry_run_lists_plan(monkeypatch: pytest.MonkeyPatch, tmp_path: Path
|
||||
assert "Load tracks" in captured
|
||||
|
||||
|
||||
def test_main_executes_stages_in_order(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
|
||||
def test_main_executes_stages_in_order(
|
||||
monkeypatch: pytest.MonkeyPatch, tmp_path: Path
|
||||
) -> None:
|
||||
calls: list[str] = []
|
||||
|
||||
def make_import(name: str):
|
||||
@@ -98,14 +102,12 @@ def test_main_executes_stages_in_order(monkeypatch: pytest.MonkeyPatch, tmp_path
|
||||
|
||||
return runner
|
||||
|
||||
monkeypatch.setattr(osm_refresh.stations_import, "main",
|
||||
make_import("stations_import"))
|
||||
monkeypatch.setattr(osm_refresh.tracks_import, "main",
|
||||
make_import("tracks_import"))
|
||||
monkeypatch.setattr(osm_refresh.stations_load, "main",
|
||||
make_load("stations_load"))
|
||||
monkeypatch.setattr(osm_refresh.tracks_load, "main",
|
||||
make_load("tracks_load"))
|
||||
monkeypatch.setattr(
|
||||
osm_refresh.stations_import, "main", make_import("stations_import")
|
||||
)
|
||||
monkeypatch.setattr(osm_refresh.tracks_import, "main", make_import("tracks_import"))
|
||||
monkeypatch.setattr(osm_refresh.stations_load, "main", make_load("stations_load"))
|
||||
monkeypatch.setattr(osm_refresh.tracks_load, "main", make_load("tracks_load"))
|
||||
|
||||
exit_code = osm_refresh.main(["--output-dir", str(tmp_path)])
|
||||
|
||||
@@ -118,7 +120,9 @@ def test_main_executes_stages_in_order(monkeypatch: pytest.MonkeyPatch, tmp_path
|
||||
]
|
||||
|
||||
|
||||
def test_main_skip_import_flags(monkeypatch: pytest.MonkeyPatch, tmp_path: Path) -> None:
|
||||
def test_main_skip_import_flags(
|
||||
monkeypatch: pytest.MonkeyPatch, tmp_path: Path
|
||||
) -> None:
|
||||
station_json = tmp_path / "stations.json"
|
||||
station_json.write_text("{}", encoding="utf-8")
|
||||
track_json = tmp_path / "tracks.json"
|
||||
@@ -139,8 +143,7 @@ def test_main_skip_import_flags(monkeypatch: pytest.MonkeyPatch, tmp_path: Path)
|
||||
|
||||
monkeypatch.setattr(osm_refresh.stations_import, "main", fail)
|
||||
monkeypatch.setattr(osm_refresh.tracks_import, "main", fail)
|
||||
monkeypatch.setattr(osm_refresh.stations_load,
|
||||
"main", record("stations_load"))
|
||||
monkeypatch.setattr(osm_refresh.stations_load, "main", record("stations_load"))
|
||||
monkeypatch.setattr(osm_refresh.tracks_load, "main", record("tracks_load"))
|
||||
|
||||
exit_code = osm_refresh.main(
|
||||
|
||||
@@ -103,10 +103,12 @@ def test_load_tracks_creates_entries(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
track_repo_instance = DummyTrackRepository(session_instance)
|
||||
|
||||
monkeypatch.setattr(tracks_load, "SessionLocal", lambda: session_instance)
|
||||
monkeypatch.setattr(tracks_load, "StationRepository",
|
||||
lambda session: station_repo_instance)
|
||||
monkeypatch.setattr(tracks_load, "TrackRepository",
|
||||
lambda session: track_repo_instance)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "StationRepository", lambda session: station_repo_instance
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "TrackRepository", lambda session: track_repo_instance
|
||||
)
|
||||
|
||||
parsed = tracks_load._parse_track_entries(
|
||||
[
|
||||
@@ -137,20 +139,26 @@ def test_load_tracks_skips_existing_pairs(monkeypatch: pytest.MonkeyPatch) -> No
|
||||
DummyStation(id="station-b", location=_point(52.6, 13.5)),
|
||||
],
|
||||
)
|
||||
existing_track = type("ExistingTrack", (), {
|
||||
"start_station_id": "station-a",
|
||||
"end_station_id": "station-b",
|
||||
})
|
||||
existing_track = type(
|
||||
"ExistingTrack",
|
||||
(),
|
||||
{
|
||||
"start_station_id": "station-a",
|
||||
"end_station_id": "station-b",
|
||||
},
|
||||
)
|
||||
track_repo_instance = DummyTrackRepository(
|
||||
session_instance,
|
||||
existing=[existing_track],
|
||||
)
|
||||
|
||||
monkeypatch.setattr(tracks_load, "SessionLocal", lambda: session_instance)
|
||||
monkeypatch.setattr(tracks_load, "StationRepository",
|
||||
lambda session: station_repo_instance)
|
||||
monkeypatch.setattr(tracks_load, "TrackRepository",
|
||||
lambda session: track_repo_instance)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "StationRepository", lambda session: station_repo_instance
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "TrackRepository", lambda session: track_repo_instance
|
||||
)
|
||||
|
||||
parsed = tracks_load._parse_track_entries(
|
||||
[
|
||||
@@ -168,7 +176,9 @@ def test_load_tracks_skips_existing_pairs(monkeypatch: pytest.MonkeyPatch) -> No
|
||||
assert not track_repo_instance.created
|
||||
|
||||
|
||||
def test_load_tracks_skips_when_station_too_far(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
def test_load_tracks_skips_when_station_too_far(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
session_instance = DummySession()
|
||||
station_repo_instance = DummyStationRepository(
|
||||
session_instance,
|
||||
@@ -179,10 +189,12 @@ def test_load_tracks_skips_when_station_too_far(monkeypatch: pytest.MonkeyPatch)
|
||||
track_repo_instance = DummyTrackRepository(session_instance)
|
||||
|
||||
monkeypatch.setattr(tracks_load, "SessionLocal", lambda: session_instance)
|
||||
monkeypatch.setattr(tracks_load, "StationRepository",
|
||||
lambda session: station_repo_instance)
|
||||
monkeypatch.setattr(tracks_load, "TrackRepository",
|
||||
lambda session: track_repo_instance)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "StationRepository", lambda session: station_repo_instance
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
tracks_load, "TrackRepository", lambda session: track_repo_instance
|
||||
)
|
||||
|
||||
parsed = tracks_load._parse_track_entries(
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user