wip: Add tests
This commit is contained in:
parent
672464b8c9
commit
e955d6dddc
|
|
@ -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,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue