Schweiz: alten Fahrplan ohne Trams nicht mehr laden, nur weil die Echtzeit noch auf ihn verweist

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X48pE4bzjHej8w9HyZXCjb
This commit is contained in:
Claude
2026-10-22 13:43:07 +02:00
parent e948a69c32
commit be0de5d619
3 changed files with 47 additions and 5 deletions
+31 -1
View File
@@ -222,8 +222,38 @@ def test_all():
assert shows("ch", both, 8.54, 47.378) and not shows("de", both, 8.54, 47.378)
assert shows("de", both, 11.40, 47.26) and shows("ch", both, 11.40, 47.26) # Ausland: beide
assert shows("de", both, 2.355, 48.881) # Frankreich ohne eigenen Fahrplan -> DE zeigt
print("alle Tests ok")
def test_feed_choice():
"""Echtzeit verweist auf alten Fahrplan ohne Trams -> trotzdem den neuen (mit Trams) laden."""
from trainpulse import server
with tempfile.TemporaryDirectory() as d:
for v, rtype in (("20261017", "102"), ("20261021", "900")):
p = Path(d) / "ch" / v
p.mkdir(parents=True)
(p / "meta.json").write_text("{}")
(p / "routes.txt").write_text(f"route_id,route_type\nR,{rtype}\n")
loaded = []
class Stub:
def __init__(self, path):
loaded.append(path.name)
self.version, self.meta, self.trip_ids = path.name, {}, []
def covers(self, day):
return True
old = server.C.FEEDS_DIR, server.Feed, server.compute_positions, dict(server.S.sources)
try:
server.C.FEEDS_DIR, server.Feed, server.compute_positions = Path(d), Stub, lambda: None
server.S.sources = {"ch": server.Source("ch")}
server.S.sources["ch"].rt_version = "20261017"
server.watch_feeds()
finally:
server.C.FEEDS_DIR, server.Feed, server.compute_positions, server.S.sources = old
assert loaded == ["20261021"], loaded
if __name__ == "__main__":
test_all()
test_feed_choice()
print("alle Tests ok")