45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import json
|
|
|
|
|
|
class TestIndexRoute:
|
|
def test_returns_200(self, flask_client):
|
|
response = flask_client.get("/")
|
|
assert response.status_code == 200
|
|
|
|
def test_returns_html(self, flask_client):
|
|
response = flask_client.get("/")
|
|
assert b"NHL Scoreboard" in response.data
|
|
|
|
|
|
class TestScoreboardRoute:
|
|
def test_returns_200(self, flask_client):
|
|
response = flask_client.get("/scoreboard")
|
|
assert response.status_code == 200
|
|
|
|
def test_returns_json_with_expected_keys(self, flask_client):
|
|
response = flask_client.get("/scoreboard")
|
|
data = json.loads(response.data)
|
|
assert "live_games" in data
|
|
assert "pre_games" in data
|
|
assert "final_games" in data
|
|
|
|
def test_live_games_have_required_fields(self, flask_client):
|
|
response = flask_client.get("/scoreboard")
|
|
data = json.loads(response.data)
|
|
if data["live_games"]:
|
|
game = data["live_games"][0]
|
|
assert "Home Team" in game
|
|
assert "Away Team" in game
|
|
assert "Home Score" in game
|
|
assert "Away Score" in game
|
|
assert "Game State" in game
|
|
assert game["Game State"] == "LIVE"
|
|
|
|
def test_missing_file_returns_error(self, flask_client, monkeypatch):
|
|
import app.routes as routes
|
|
|
|
monkeypatch.setattr(routes, "SCOREBOARD_DATA_FILE", "/nonexistent/path.json")
|
|
response = flask_client.get("/scoreboard")
|
|
data = json.loads(response.data)
|
|
assert "error" in data
|