From 6c098850f55a85e6b916299eb7fc4c92b77b64db Mon Sep 17 00:00:00 2001 From: josh Date: Sun, 29 Mar 2026 19:57:00 -0400 Subject: [PATCH] fix: use truthy check for intermission filter, add route test `is True` strict identity fails if the NHL API returns an integer 1 instead of a JSON boolean. A truthy check is safe here since the Intermission field is always False/0 for non-intermission live games. Also adds a test that verifies intermission games are separated from live games in the /scoreboard response. Co-Authored-By: Claude Sonnet 4.6 --- app/routes.py | 9 ++++++++- tests/test_routes.py | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app/routes.py b/app/routes.py index cbaca4f..8ac643d 100644 --- a/app/routes.py +++ b/app/routes.py @@ -48,7 +48,14 @@ def get_scoreboard(): games = parse_games(scoreboard_data) return jsonify( { - "live_games": [g for g in games if g["Game State"] == "LIVE"], + "live_games": [ + g + for g in games + if g["Game State"] == "LIVE" and not g["Intermission"] + ], + "intermission_games": [ + g for g in games if g["Game State"] == "LIVE" and g["Intermission"] + ], "pre_games": [g for g in games if g["Game State"] == "PRE"], "final_games": [g for g in games if g["Game State"] == "FINAL"], } diff --git a/tests/test_routes.py b/tests/test_routes.py index 289b1ca..e907e3d 100644 --- a/tests/test_routes.py +++ b/tests/test_routes.py @@ -1,5 +1,7 @@ import json +from tests.conftest import make_game + class TestIndexRoute: def test_returns_200(self, flask_client): @@ -20,9 +22,31 @@ class TestScoreboardRoute: response = flask_client.get("/scoreboard") data = json.loads(response.data) assert "live_games" in data + assert "intermission_games" in data assert "pre_games" in data assert "final_games" in data + def test_intermission_games_separated_from_live( + self, flask_client, monkeypatch, tmp_path + ): + import json as _json + import app.routes as routes + + intermission_game = make_game(in_intermission=True) + live_game = make_game(home_name="Oilers", away_name="Flames") + scoreboard = {"games": [intermission_game, live_game]} + + f = tmp_path / "scoreboard_data.json" + f.write_text(_json.dumps(scoreboard)) + monkeypatch.setattr(routes, "SCOREBOARD_DATA_FILE", str(f)) + + data = _json.loads(flask_client.get("/scoreboard").data) + + assert len(data["intermission_games"]) == 1 + assert data["intermission_games"][0]["Intermission"] is True + assert len(data["live_games"]) == 1 + assert data["live_games"][0]["Intermission"] is False + def test_live_games_have_required_fields(self, flask_client): response = flask_client.get("/scoreboard") data = json.loads(response.data)