mirror of
https://github.com/ae-utbm/sith.git
synced 2026-10-05 18:34:15 +00:00
wip
This commit is contained in:
1 parent
7ab412a59b
commit
87d247dbb4
6 files changed
+73
-1
No files matched your search
@@ -0,0 +1,6 @@
|
|||||||
|
{% extends 'core/base.jinja' %}
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Create your tests here.
|
|
||||||
Whitespace-only changes.
@@ -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})
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import pytest
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
|
from django.test import Client
|
||||||
|
from django.urls import reverse
|
||||||
|
from model_bakery import baker
|
||||||
|
|
||||||
|
from core.baker_recipes import subscriber_user
|
||||||
|
from core.models import User
|
||||||
|
|
||||||
|
# class TestGenerator(TestCase)
|
||||||
|
|
||||||
|
|
||||||
|
@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
|
||||||
@@ -1,6 +1,21 @@
|
|||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
from django.views.generic.detail import DetailView
|
||||||
|
|
||||||
|
from core.models import User
|
||||||
|
|
||||||
|
|
||||||
class GeneratorView(TemplateView):
|
class GeneratorView(TemplateView):
|
||||||
template_name = "timetable/generator.jinja"
|
template_name = "timetable/generator.jinja"
|
||||||
|
|
||||||
|
|
||||||
|
class UserTimetableView(UserPassesTestMixin, DetailView):
|
||||||
|
model = User
|
||||||
|
pk_url_kwarg = "user_id"
|
||||||
|
template_name = "timetable/user_timetable.jinja"
|
||||||
|
|
||||||
|
def test_func(self) -> bool | None:
|
||||||
|
return self.request.user.id == self.kwargs[
|
||||||
|
"user_id"
|
||||||
|
] or self.request.user.has_perm("timetable.view_timetable")
|
||||||
Reference in new issue
Block a user