mirror of
https://github.com/ae-utbm/sith.git
synced 2026-10-05 10:24: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.
|
||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||
from django.views.generic import TemplateView
|
||||
from django.views.generic.detail import DetailView
|
||||
|
||||
from core.models import User
|
||||
|
||||
|
||||
class GeneratorView(TemplateView):
|
||||
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