From 9048fac0f3318eec9f23c26d464f19e8efb4b713 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Fri, 22 Mar 2024 18:02:26 -0400
Subject: [PATCH] test: update tests after removing nested routes

---
 program/tests/test_schedules.py | 62 ++++++++++++++++-----------------
 program/tests/test_timeslots.py | 10 ++----
 2 files changed, 32 insertions(+), 40 deletions(-)

diff --git a/program/tests/test_schedules.py b/program/tests/test_schedules.py
index c72ca43c..bee9458a 100644
--- a/program/tests/test_schedules.py
+++ b/program/tests/test_schedules.py
@@ -1,4 +1,5 @@
 from datetime import datetime, timedelta
+from typing import Any
 
 import pytest
 
@@ -9,18 +10,14 @@ from program.tests.factories import RRuleFactory, ScheduleFactory
 pytestmark = pytest.mark.django_db
 
 
-def url(show=None, schedule=None) -> str:
-    if show and schedule:
-        return f"/api/v1/shows/{show.id}/schedules/{schedule.id}/"
-    elif show and not schedule:
-        return f"/api/v1/shows/{show.id}/schedules/"
-    elif not show and schedule:
+def url(schedule=None) -> str:
+    if schedule:
         return f"/api/v1/schedules/{schedule.id}/"
     else:
         return "/api/v1/schedules/"
 
 
-def schedule_data(rrule) -> dict[str, dict[str | int]]:
+def schedule_data(rrule, show) -> dict[str, dict[str, str | Any]]:
     now = datetime.now()
     in_an_hour = now + timedelta(hours=1)
     in_a_year = now + timedelta(days=365)
@@ -31,15 +28,16 @@ def schedule_data(rrule) -> dict[str, dict[str | int]]:
             "first_date": now.strftime("%Y-%m-%d"),
             "last_date": in_a_year.strftime("%Y-%m-%d"),
             "rrule_id": rrule.id,
+            "show_id": show.id,
             "start_time": now.strftime("%H:%M:%S"),
         },
     }
 
 
 def test_create_once_schedule(admin_api_client, once_rrule, show):
-    data = schedule_data(once_rrule)
+    data = schedule_data(once_rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 1
@@ -49,9 +47,9 @@ def test_create_once_schedule(admin_api_client, once_rrule, show):
 
 def test_create_daily_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=3)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 365 or 366
@@ -61,9 +59,9 @@ def test_create_daily_schedule(admin_api_client, show):
 
 def test_create_business_days_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=2, by_weekdays="0,1,2,3,4")
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 261 or 262
@@ -73,9 +71,9 @@ def test_create_business_days_schedule(admin_api_client, show):
 
 def test_create_weekends_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=2, by_weekdays="5,6")
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 104 or 105
@@ -85,9 +83,9 @@ def test_create_weekends_schedule(admin_api_client, show):
 
 def test_create_weekly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=2)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 52 or 53
@@ -97,9 +95,9 @@ def test_create_weekly_schedule(admin_api_client, show):
 
 def test_create_2weekly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=2, interval=2)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 26 or 27
@@ -109,9 +107,9 @@ def test_create_2weekly_schedule(admin_api_client, show):
 
 def test_create_4weekly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=2, interval=4)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 13 or 14
@@ -121,9 +119,9 @@ def test_create_4weekly_schedule(admin_api_client, show):
 
 def test_create_monthly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=1)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 12 or 13
@@ -133,9 +131,9 @@ def test_create_monthly_schedule(admin_api_client, show):
 
 def test_create_2monthly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=1, interval=2)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 6 or 7
@@ -145,9 +143,9 @@ def test_create_2monthly_schedule(admin_api_client, show):
 
 def test_create_3monthly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=1, interval=3)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 4 or 5
@@ -157,9 +155,9 @@ def test_create_3monthly_schedule(admin_api_client, show):
 
 def test_create_4monthly_schedule(admin_api_client, show):
     rrule = RRuleFactory(freq=1, interval=4)
-    data = schedule_data(rrule)
+    data = schedule_data(rrule, show)
 
-    response = admin_api_client.post(url(show=show), data=data, format="json")
+    response = admin_api_client.post(url(), data=data, format="json")
 
     assert response.status_code == 201
     assert TimeSlot.objects.all().count() == 3 or 4
@@ -168,9 +166,9 @@ def test_create_4monthly_schedule(admin_api_client, show):
 
 
 def test_create_schedule_forbidden_for_common_user(common_api_client1, once_rrule, show):
-    data = schedule_data(once_rrule)
+    data = schedule_data(once_rrule, show)
 
-    response = common_api_client1.post(url(show=show), data=data, format="json")
+    response = common_api_client1.post(url(), data=data, format="json")
 
     assert response.status_code == 403
 
@@ -191,7 +189,7 @@ def test_list_schedules(api_client, once_rrule, show):
     SCHEDULES = 3
     ScheduleFactory.create_batch(size=SCHEDULES, show=show, rrule=once_rrule)
 
-    response = api_client.get(url(show=show))
+    response = api_client.get(url())
 
     assert response.status_code == 200
     assert len(response.data) == 3
diff --git a/program/tests/test_timeslots.py b/program/tests/test_timeslots.py
index 51489899..3390da89 100644
--- a/program/tests/test_timeslots.py
+++ b/program/tests/test_timeslots.py
@@ -3,14 +3,8 @@ import pytest
 pytestmark = pytest.mark.django_db
 
 
-def url(show=None, schedule=None, timeslot=None) -> str:
-    if show and schedule and timeslot:
-        return f"/api/v1/shows/{show.id}/schedules/{schedule.id}/timeslots/{timeslot.id}/"
-    elif show and schedule:
-        return f"/api/v1/shows/{show.id}/schedules/{schedule.id}/timeslots/"
-    elif show:
-        return f"/api/v1/shows/{show.id}/schedules/"
-    elif timeslot:
+def url(timeslot=None) -> str:
+    if timeslot:
         return f"/api/v1/timeslots/{timeslot.id}/"
     else:
         return "/api/v1/timeslots/"
-- 
GitLab