From 656492f46eb8d624fb2b0100256552dede62d68a Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Wed, 10 Apr 2024 20:49:49 -0400 Subject: [PATCH] test: add test for PATCH requests for schedules --- program/tests/test_schedules.py | 69 ++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/program/tests/test_schedules.py b/program/tests/test_schedules.py index bee9458a..a7185f01 100644 --- a/program/tests/test_schedules.py +++ b/program/tests/test_schedules.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta +from datetime import date, datetime, timedelta from typing import Any import pytest @@ -216,3 +216,70 @@ def test_update_schedule(admin_api_client, once_schedule): assert response.status_code == 200 assert_data(response, update) + + +def test_patch_set_default_playlist_id(admin_api_client, once_schedule): + update = {"default_playlist_id": 42} + + response = admin_api_client.patch(url(schedule=once_schedule), data=update) + + assert response.status_code == 200 + assert response.data["default_playlist_id"] == update["default_playlist_id"] + + +def test_patch_clear_default_playlist_id(admin_api_client, once_schedule): + update = {"default_playlist_id": None} + + response = admin_api_client.patch(url(schedule=once_schedule), data=update, format="json") + + assert response.status_code == 200 + assert response.data["default_playlist_id"] == update["default_playlist_id"] + + +def test_patch_set_is_repetition_true(admin_api_client, once_schedule): + update = {"is_repetition": "true"} + + response = admin_api_client.patch(url(schedule=once_schedule), data=update) + print(response.request.items()) + assert response.status_code == 200 + assert response.data["is_repetition"] is True + + +def test_patch_set_is_repetition_false(admin_api_client, once_schedule): + update = {"is_repetition": "false"} + + response = admin_api_client.patch(url(schedule=once_schedule), data=update) + + assert response.status_code == 200 + assert response.data["is_repetition"] is False + + +def test_patch_last_date_delete_timeslots(admin_api_client, show_once_timeslot): + update = {"last_date": (date.today() - timedelta(days=1)).isoformat()} + + response = admin_api_client.patch(url(schedule=show_once_timeslot.schedule), data=update) + + assert response.status_code == 200 + assert response.data["last_date"] == update["last_date"] + assert show_once_timeslot.schedule.timeslots.all().count() == 0 + + +def test_patch_last_date(admin_api_client, show_once_timeslot): + update = {"last_date": (date.today() + timedelta(days=1)).isoformat()} + + response = admin_api_client.patch(url(schedule=show_once_timeslot.schedule), data=update) + + assert response.status_code == 200 + assert response.data["last_date"] == update["last_date"] + assert show_once_timeslot.schedule.timeslots.all().count() == 1 + + +def test_patch_last_date_bad_request(admin_api_client, once_schedule): + once_schedule.last_date = date.today() + timedelta(days=1) + once_schedule.save() + + update = {"last_date": (date.today() + timedelta(days=2)).isoformat()} + + response = admin_api_client.patch(url(schedule=once_schedule), data=update) + + assert response.status_code == 400 -- GitLab