diff --git a/timetable/tests.py b/timetable/tests.py deleted file mode 100644 index a39b155a..00000000 --- a/timetable/tests.py +++ /dev/null @@ -1 +0,0 @@ -# Create your tests here. diff --git a/timetable/tests/__init__.py b/timetable/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/timetable/tests/test_api.py b/timetable/tests/test_api.py new file mode 100644 index 00000000..167ac7d5 --- /dev/null +++ b/timetable/tests/test_api.py @@ -0,0 +1,20 @@ +from django.test import TestCase +from django.urls import reverse + +from core.baker_recipes import subscriber_user +from timetable.models import TimetableSlot + + +class TestSaveTimetable(TestCase): + @classmethod + def setUpTestData(cls) -> None: + cls.user = subscriber_user.make() + cls.payload = { + "is_viewable": True, + "slots": [ + {"weekday": TimetableSlot.WeekDay.MONDAY, "start_at": 32, "end_at": 40}, + {"weekday": TimetableSlot.WeekDay.MONDAY, "start_at": 41, "end_at": 49}, + {"weekday": TimetableSlot.WeekDay.FRIDAY, "start_at": 52, "end_at": 64}, + ], + } + cls.url = reverse("api:timetable:save", kwargs={"user_id": cls.user.id}) diff --git a/timetable/tests/test_view.py b/timetable/tests/test_view.py new file mode 100644 index 00000000..0c3646de --- /dev/null +++ b/timetable/tests/test_view.py @@ -0,0 +1,31 @@ +from typing import TYPE_CHECKING + +import pytest +from bs4 import BeautifulSoup +from django.contrib.auth.models import Permission +from django.urls import reverse +from model_bakery import baker + +from core.models import User + +if TYPE_CHECKING: + from django.test import Client + + +@pytest.mark.django_db +@pytest.mark.parametrize("can_save", [True, False]) +def test_generator_ok(client: Client, can_save): + user = baker.make(User) + if can_save: + user.user_permissions.add(Permission.objects.get(codename="add_self_timetable")) + client.force_login(user) + + res = client.get(reverse("timetable:generator")) + assert res.status_code == 200 + soup = BeautifulSoup(res.text, "lxml") + elem = soup.find(id="timetable-save") + + if can_save: + assert elem is not None + else: + assert elem is None