From df39d43e1c3e160ded00473a228de74892ecedf1 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 15 Jul 2024 12:58:44 -0400 Subject: [PATCH] test: update to the new route & fix playout tests --- program/tests/test_playout.py | 56 +++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/program/tests/test_playout.py b/program/tests/test_playout.py index f1e6db06..7c4a751a 100644 --- a/program/tests/test_playout.py +++ b/program/tests/test_playout.py @@ -7,9 +7,9 @@ pytestmark = pytest.mark.django_db def url(include_virtual=False): if include_virtual: - return "/api/v1/playout/?include_virtual=true" + return "/api/v1/program/playout/?include_virtual=true" - return "/api/v1/playout/" + return "/api/v1/program/playout/" def create_daily_schedule(admin_api_client, daily_rrule, show) -> None: @@ -33,18 +33,41 @@ def create_daily_schedule(admin_api_client, daily_rrule, show) -> None: admin_api_client.post("/api/v1/schedules/", data=data, format="json") +def assert_entry(entry, show) -> None: + """asserts the playout entry corresponds to the given show.""" + + assert entry["episode"] + assert entry["schedule"] + assert entry["show"] + assert entry["timeslot"] + assert entry["timeslotId"] + + assert entry["showId"] == entry["show"]["id"] == show.id + assert entry["show"]["name"] == show.name + + +def assert_virtual_entry(entry, fallback_show) -> None: + """asserts the playout entry is virtual and corresponds to given fallback show.""" + + assert entry["show"] + assert not entry["episode"] + assert not entry["schedule"] + assert not entry["timeslot"] + assert not entry["timeslotId"] + + assert entry["showId"] == entry["show"]["id"] == fallback_show.id + assert entry["show"]["name"] == fallback_show.name + + def test_playout(admin_api_client, api_client, daily_rrule, show): create_daily_schedule(admin_api_client, daily_rrule, show) response = api_client.get(url()) assert response.status_code == 200 - assert len(response.json()) == 7 + assert len(response.json()) == 1 - for entry in response.json(): - assert not entry["timeslot"]["isVirtual"] - assert entry["show"]["id"] == show.id - assert entry["show"]["name"] == show.name + assert_entry(response.json()[0], show) def test_playout_include_virtual( @@ -60,12 +83,13 @@ def test_playout_include_virtual( response = api_client.get(url(include_virtual=True)) assert response.status_code == 200 - assert len(response.json()) == 14 or 15 - - for entry in response.json(): - if entry["timeslot"]["isVirtual"]: - assert entry["show"]["id"] == fallback_show.id - assert entry["show"]["name"] == fallback_show.name - else: - assert entry["show"]["id"] == show.id - assert entry["show"]["name"] == show.name + assert len(response.json()) == 3 + + virtual_entry1, entry, virtual_entry2 = response.json() + + assert_virtual_entry(virtual_entry1, fallback_show) + assert_entry(entry, show) + assert_virtual_entry(virtual_entry2, fallback_show) + + assert virtual_entry1["end"] == entry["start"] + assert entry["end"] == virtual_entry2["start"] -- GitLab