Skip to content
Snippets Groups Projects
Verified Commit 9048fac0 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

test: update tests after removing nested routes

parent 2f0d963b
No related branches found
No related tags found
No related merge requests found
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Any
import pytest import pytest
...@@ -9,18 +10,14 @@ from program.tests.factories import RRuleFactory, ScheduleFactory ...@@ -9,18 +10,14 @@ from program.tests.factories import RRuleFactory, ScheduleFactory
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db
def url(show=None, schedule=None) -> str: def url(schedule=None) -> str:
if show and schedule: if 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:
return f"/api/v1/schedules/{schedule.id}/" return f"/api/v1/schedules/{schedule.id}/"
else: else:
return "/api/v1/schedules/" 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() now = datetime.now()
in_an_hour = now + timedelta(hours=1) in_an_hour = now + timedelta(hours=1)
in_a_year = now + timedelta(days=365) in_a_year = now + timedelta(days=365)
...@@ -31,15 +28,16 @@ def schedule_data(rrule) -> dict[str, dict[str | int]]: ...@@ -31,15 +28,16 @@ def schedule_data(rrule) -> dict[str, dict[str | int]]:
"first_date": now.strftime("%Y-%m-%d"), "first_date": now.strftime("%Y-%m-%d"),
"last_date": in_a_year.strftime("%Y-%m-%d"), "last_date": in_a_year.strftime("%Y-%m-%d"),
"rrule_id": rrule.id, "rrule_id": rrule.id,
"show_id": show.id,
"start_time": now.strftime("%H:%M:%S"), "start_time": now.strftime("%H:%M:%S"),
}, },
} }
def test_create_once_schedule(admin_api_client, once_rrule, show): 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 1 assert TimeSlot.objects.all().count() == 1
...@@ -49,9 +47,9 @@ def test_create_once_schedule(admin_api_client, once_rrule, show): ...@@ -49,9 +47,9 @@ def test_create_once_schedule(admin_api_client, once_rrule, show):
def test_create_daily_schedule(admin_api_client, show): def test_create_daily_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=3) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 365 or 366 assert TimeSlot.objects.all().count() == 365 or 366
...@@ -61,9 +59,9 @@ def test_create_daily_schedule(admin_api_client, show): ...@@ -61,9 +59,9 @@ def test_create_daily_schedule(admin_api_client, show):
def test_create_business_days_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") 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 261 or 262 assert TimeSlot.objects.all().count() == 261 or 262
...@@ -73,9 +71,9 @@ def test_create_business_days_schedule(admin_api_client, show): ...@@ -73,9 +71,9 @@ def test_create_business_days_schedule(admin_api_client, show):
def test_create_weekends_schedule(admin_api_client, show): def test_create_weekends_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=2, by_weekdays="5,6") 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 104 or 105 assert TimeSlot.objects.all().count() == 104 or 105
...@@ -85,9 +83,9 @@ def test_create_weekends_schedule(admin_api_client, show): ...@@ -85,9 +83,9 @@ def test_create_weekends_schedule(admin_api_client, show):
def test_create_weekly_schedule(admin_api_client, show): def test_create_weekly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=2) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 52 or 53 assert TimeSlot.objects.all().count() == 52 or 53
...@@ -97,9 +95,9 @@ def test_create_weekly_schedule(admin_api_client, show): ...@@ -97,9 +95,9 @@ def test_create_weekly_schedule(admin_api_client, show):
def test_create_2weekly_schedule(admin_api_client, show): def test_create_2weekly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=2, interval=2) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 26 or 27 assert TimeSlot.objects.all().count() == 26 or 27
...@@ -109,9 +107,9 @@ def test_create_2weekly_schedule(admin_api_client, show): ...@@ -109,9 +107,9 @@ def test_create_2weekly_schedule(admin_api_client, show):
def test_create_4weekly_schedule(admin_api_client, show): def test_create_4weekly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=2, interval=4) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 13 or 14 assert TimeSlot.objects.all().count() == 13 or 14
...@@ -121,9 +119,9 @@ def test_create_4weekly_schedule(admin_api_client, show): ...@@ -121,9 +119,9 @@ def test_create_4weekly_schedule(admin_api_client, show):
def test_create_monthly_schedule(admin_api_client, show): def test_create_monthly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=1) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 12 or 13 assert TimeSlot.objects.all().count() == 12 or 13
...@@ -133,9 +131,9 @@ def test_create_monthly_schedule(admin_api_client, show): ...@@ -133,9 +131,9 @@ def test_create_monthly_schedule(admin_api_client, show):
def test_create_2monthly_schedule(admin_api_client, show): def test_create_2monthly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=1, interval=2) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 6 or 7 assert TimeSlot.objects.all().count() == 6 or 7
...@@ -145,9 +143,9 @@ def test_create_2monthly_schedule(admin_api_client, show): ...@@ -145,9 +143,9 @@ def test_create_2monthly_schedule(admin_api_client, show):
def test_create_3monthly_schedule(admin_api_client, show): def test_create_3monthly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=1, interval=3) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 4 or 5 assert TimeSlot.objects.all().count() == 4 or 5
...@@ -157,9 +155,9 @@ def test_create_3monthly_schedule(admin_api_client, show): ...@@ -157,9 +155,9 @@ def test_create_3monthly_schedule(admin_api_client, show):
def test_create_4monthly_schedule(admin_api_client, show): def test_create_4monthly_schedule(admin_api_client, show):
rrule = RRuleFactory(freq=1, interval=4) 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 response.status_code == 201
assert TimeSlot.objects.all().count() == 3 or 4 assert TimeSlot.objects.all().count() == 3 or 4
...@@ -168,9 +166,9 @@ def test_create_4monthly_schedule(admin_api_client, show): ...@@ -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): 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 assert response.status_code == 403
...@@ -191,7 +189,7 @@ def test_list_schedules(api_client, once_rrule, show): ...@@ -191,7 +189,7 @@ def test_list_schedules(api_client, once_rrule, show):
SCHEDULES = 3 SCHEDULES = 3
ScheduleFactory.create_batch(size=SCHEDULES, show=show, rrule=once_rrule) 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 response.status_code == 200
assert len(response.data) == 3 assert len(response.data) == 3
......
...@@ -3,14 +3,8 @@ import pytest ...@@ -3,14 +3,8 @@ import pytest
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db
def url(show=None, schedule=None, timeslot=None) -> str: def url(timeslot=None) -> str:
if show and schedule and timeslot: if 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:
return f"/api/v1/timeslots/{timeslot.id}/" return f"/api/v1/timeslots/{timeslot.id}/"
else: else:
return "/api/v1/timeslots/" return "/api/v1/timeslots/"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment