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]
|
trainer, allowed_csrs_ids, [circle.id]
|
||||||
)
|
)
|
||||||
self.assertEqual([(TEST_COURSE_SESSION_ZURICH_ID, [])], allowed_circles)
|
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 = []
|
allowed_circles_for_sessions = []
|
||||||
for cswr in user_course_sessions_with_roles:
|
for cswr in user_course_sessions_with_roles:
|
||||||
if "SUPERVISOR" in cswr.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:
|
else:
|
||||||
course_session_users = CourseSessionUser.objects.filter(
|
course_session_users = CourseSessionUser.objects.filter(
|
||||||
course_session=cswr.id,
|
course_session=cswr.id,
|
||||||
|
|
|
||||||
|
|
@ -86,8 +86,8 @@ def export_feedback_with_circle_restriction(
|
||||||
|
|
||||||
for course_session_with_circles in course_sessions_with_circles:
|
for course_session_with_circles in course_sessions_with_circles:
|
||||||
feedback_unordered = feedback_unordered | FeedbackResponse.objects.filter(
|
feedback_unordered = feedback_unordered | FeedbackResponse.objects.filter(
|
||||||
course_session_id__in=course_session_with_circles[0],
|
course_session_id=course_session_with_circles[0],
|
||||||
circle__in=course_session_with_circles[1],
|
circle_id__in=course_session_with_circles[1],
|
||||||
submitted=True,
|
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.creators.test_course import create_test_course
|
||||||
from vbv_lernwelt.course.models import CourseSession
|
from vbv_lernwelt.course.models import CourseSession
|
||||||
from vbv_lernwelt.course_session.tests.test_attendance_export import ExportBaseTestCase
|
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.factories import FeedbackResponseFactory
|
||||||
from vbv_lernwelt.feedback.models import FeedbackResponse
|
from vbv_lernwelt.feedback.models import FeedbackResponse
|
||||||
from vbv_lernwelt.feedback.services import export_feedback
|
from vbv_lernwelt.feedback.services import export_feedback
|
||||||
|
|
@ -159,6 +160,30 @@ class FeedbackExportTestCase(ExportBaseTestCase):
|
||||||
wb.active = wb["Reisen"]
|
wb.active = wb["Reisen"]
|
||||||
self._check_export(wb, self.expected_data_reisen, 2, 12)
|
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):
|
def test_does_not_include_unsubmitted_feedback(self):
|
||||||
feedback = FeedbackResponse.objects.get(
|
feedback = FeedbackResponse.objects.get(
|
||||||
circle=self.circle_reisen,
|
circle=self.circle_reisen,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue