wip: Add tests

This commit is contained in:
Christian Cueni 2024-06-12 10:14:48 +02:00
parent 672464b8c9
commit e955d6dddc
4 changed files with 51 additions and 3 deletions

View File

@ -512,3 +512,26 @@ class ExportXlsTestCase(TestCase):
trainer, allowed_csrs_ids, [circle.id]
)
self.assertEqual([(TEST_COURSE_SESSION_ZURICH_ID, [])], allowed_circles)
def test_supervisor_can_get_all_circles(self):
supervisor = User.objects.get(id=TEST_SUPERVISOR1_USER_ID)
circle_reisen = Circle.objects.get(slug="test-lehrgang-lp-circle-reisen")
circle_fahrzeug = Circle.objects.get(slug="test-lehrgang-lp-circle-fahrzeug")
requested_cs_ids = [TEST_COURSE_SESSION_ZURICH_ID]
allowed_csrs_ids = _get_course_sessions_with_roles_for_user(
supervisor, self.ALLOWED_ROLES, requested_cs_ids
)
allowed_circles = _get_permitted_circles_ids_for_user_and_course_session(
supervisor,
allowed_csrs_ids,
[
circle_fahrzeug.id,
circle_reisen.id,
],
)
self.assertEqual(
[(TEST_COURSE_SESSION_ZURICH_ID, [circle_fahrzeug.id, circle_reisen.id])],
allowed_circles,
)

View File

@ -617,7 +617,7 @@ def _get_permitted_circles_ids_for_user_and_course_session(
allowed_circles_for_sessions = []
for cswr in user_course_sessions_with_roles:
if "SUPERVISOR" in cswr.roles:
allowed_circles_for_sessions.append(requested_circle_ids)
allowed_circles_for_sessions.append((cswr.id, requested_circle_ids))
else:
course_session_users = CourseSessionUser.objects.filter(
course_session=cswr.id,

View File

@ -86,8 +86,8 @@ def export_feedback_with_circle_restriction(
for course_session_with_circles in course_sessions_with_circles:
feedback_unordered = feedback_unordered | FeedbackResponse.objects.filter(
course_session_id__in=course_session_with_circles[0],
circle__in=course_session_with_circles[1],
course_session_id=course_session_with_circles[0],
circle_id__in=course_session_with_circles[1],
submitted=True,
)

View File

@ -9,6 +9,7 @@ from vbv_lernwelt.core.models import User
from vbv_lernwelt.course.creators.test_course import create_test_course
from vbv_lernwelt.course.models import CourseSession
from vbv_lernwelt.course_session.tests.test_attendance_export import ExportBaseTestCase
from vbv_lernwelt.feedback.export import export_feedback_with_circle_restriction
from vbv_lernwelt.feedback.factories import FeedbackResponseFactory
from vbv_lernwelt.feedback.models import FeedbackResponse
from vbv_lernwelt.feedback.services import export_feedback
@ -159,6 +160,30 @@ class FeedbackExportTestCase(ExportBaseTestCase):
wb.active = wb["Reisen"]
self._check_export(wb, self.expected_data_reisen, 2, 12)
def test_export_feedback_with_cs_circle_pairs(self):
cs_circle_pairs = [
(
self.course_session_be.id,
[self.circle_fahrzeug.id, self.circle_reisen.id],
),
(
self.course_session_zh.id,
[self.circle_reisen.id, self.circle_fahrzeug.id],
),
]
export_data = io.BytesIO(
export_feedback_with_circle_restriction(cs_circle_pairs, save_as_file=False)
)
wb = load_workbook(export_data)
self.assertEqual(len(wb.sheetnames), 2)
self.assertEqual(wb.sheetnames[0], "Fahrzeug")
self.assertEqual(wb.sheetnames[1], "Reisen")
self._check_export(wb, self.expected_data_fahrzeug, 3, 12)
wb.active = wb["Reisen"]
self._check_export(wb, self.expected_data_reisen, 2, 12)
def test_does_not_include_unsubmitted_feedback(self):
feedback = FeedbackResponse.objects.get(
circle=self.circle_reisen,