followup: fixes the dashboard / statistics tests

This commit is contained in:
Livio Bieri 2023-10-24 13:52:52 +02:00
parent ca44a913c9
commit 5665ffdee0
7 changed files with 27 additions and 21 deletions

View File

@ -128,7 +128,7 @@ def assignments(
course_session_selection_ids: graphene.List(graphene.ID), course_session_selection_ids: graphene.List(graphene.ID),
) -> Assignments: ) -> Assignments:
course_sessions = CourseSession.objects.filter( course_sessions = CourseSession.objects.filter(
id_in=course_session_selection_ids, id__in=course_session_selection_ids,
) )
records: List[AssignmentRecord] = [] records: List[AssignmentRecord] = []

View File

@ -31,7 +31,7 @@ def feedback_responses(
) -> FeedbackResponses: ) -> FeedbackResponses:
# Get all course sessions for this user in the given course # Get all course sessions for this user in the given course
course_sessions = CourseSession.objects.filter( course_sessions = CourseSession.objects.filter(
id_in=course_session_selection_ids, id__in=course_session_selection_ids,
) )
circle_feedbacks = [] circle_feedbacks = []

View File

@ -20,6 +20,7 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import (
create_course_session_assignment, create_course_session_assignment,
create_course_session_edoniq_test, create_course_session_edoniq_test,
create_user, create_user,
create_course_session_group,
) )
from vbv_lernwelt.learnpath.models import Circle from vbv_lernwelt.learnpath.models import Circle
@ -61,6 +62,10 @@ class AssignmentTestCase(GraphQLTestCase):
self.supervisor = create_user("supervisor") self.supervisor = create_user("supervisor")
create_course_session_group(
course_session=self.course_session, user=self.supervisor
)
self.m1 = create_user("member_1") self.m1 = create_user("member_1")
add_course_session_user( add_course_session_user(
course_session=self.course_session, course_session=self.course_session,
@ -146,7 +151,7 @@ class AssignmentTestCase(GraphQLTestCase):
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
dashboard = response.json()["data"]["course_statistics"] dashboard = response.json()["data"]["course_statistics"]
records = dashboard[0]["assignments"]["records"] records = dashboard["assignments"]["records"]
self.assertEqual(len(records), 1) self.assertEqual(len(records), 1)
record = records[0] record = records[0]
@ -188,7 +193,7 @@ class AssignmentTestCase(GraphQLTestCase):
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
dashboard = response.json()["data"]["course_statistics"] dashboard = response.json()["data"]["course_statistics"]
records = dashboard[0]["assignments"]["records"] records = dashboard["assignments"]["records"]
self.assertEqual(len(records), 0) self.assertEqual(len(records), 0)
def test_metrics_summary(self): def test_metrics_summary(self):
@ -281,11 +286,11 @@ class AssignmentTestCase(GraphQLTestCase):
# 2 -> complete 66% passed ... # 2 -> complete 66% passed ...
# 3 -> complete 100% passed --> 83.5% # 3 -> complete 100% passed --> 83.5%
# 4 -> incomplete (not counted for average) # 4 -> incomplete (not counted for average)
summary = dashboard[0]["assignments"]["summary"] summary = dashboard["assignments"]["summary"]
self.assertEqual(summary["completed_count"], 2) self.assertEqual(summary["completed_count"], 2)
self.assertEqual(summary["average_passed"], 83.5) self.assertEqual(summary["average_passed"], 83.5)
records = dashboard[0]["assignments"]["records"] records = dashboard["assignments"]["records"]
self.assertEqual(len(records), 4) self.assertEqual(len(records), 4)
# 1 -> assigment_1_results (oldest) # 1 -> assigment_1_results (oldest)

View File

@ -12,6 +12,7 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import (
create_course, create_course,
create_course_session, create_course_session,
create_user, create_user,
create_course_session_group,
) )
@ -23,8 +24,8 @@ class DashboardAttendanceTestCase(GraphQLTestCase):
course, course_page = create_course("Test Course") course, course_page = create_course("Test Course")
course_session = create_course_session(course=course, title="Test Bern 2022 a") course_session = create_course_session(course=course, title="Test Bern 2022 a")
# TODO: Give this guy the right permissions, once we have them ;)
supervisor = create_user("supervisor") supervisor = create_user("supervisor")
create_course_session_group(course_session=course_session, user=supervisor)
circle, _ = create_circle(title="Test Circle", course_page=course_page) circle, _ = create_circle(title="Test Circle", course_page=course_page)
@ -100,9 +101,7 @@ class DashboardAttendanceTestCase(GraphQLTestCase):
data = response.json()["data"] data = response.json()["data"]
attendance_day_presences = data["course_statistics"][0][ attendance_day_presences = data["course_statistics"]["attendance_day_presences"]
"attendance_day_presences"
]
record = attendance_day_presences["records"][0] record = attendance_day_presences["records"][0]

View File

@ -9,6 +9,7 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import (
create_course_session, create_course_session,
create_performance_criteria_page, create_performance_criteria_page,
create_user, create_user,
create_course_session_group,
) )
@ -20,8 +21,8 @@ class DashboardCompetenceTestCase(GraphQLTestCase):
course, course_page = create_course("Test Course") course, course_page = create_course("Test Course")
course_session = create_course_session(course=course, title="Test Bern 2022 a") course_session = create_course_session(course=course, title="Test Bern 2022 a")
# TODO: Give this guy the right permissions, once we have them ;)
supervisor = create_user("supervisor") supervisor = create_user("supervisor")
create_course_session_group(course_session=course_session, user=supervisor)
member_one = create_user("member one") member_one = create_user("member one")
add_course_session_user( add_course_session_user(
@ -86,8 +87,7 @@ class DashboardCompetenceTestCase(GraphQLTestCase):
# THEN # THEN
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
competences = response.json()["data"]["course_statistics"][0]["competences"] competences = response.json()["data"]["course_statistics"]["competences"]
performances = competences["performances"] performances = competences["performances"]
self.assertEqual(performances[0]["success_count"], 1) self.assertEqual(performances[0]["success_count"], 1)

View File

@ -73,8 +73,11 @@ class DashboardTestCase(GraphQLTestCase):
course_1, _ = create_course("Test Course 1") course_1, _ = create_course("Test Course 1")
course_2, _ = create_course("Test Course 2") course_2, _ = create_course("Test Course 2")
create_course_session(course=course_1, title="Test Course 1 Session") cs_1 = create_course_session(course=course_1, title="Test Course 1 Session")
create_course_session(course=course_2, title="Test Course 2 Session") cs_2 = create_course_session(course=course_2, title="Test Course 2 Session")
create_course_session_group(course_session=cs_1, user=supervisor)
create_course_session_group(course_session=cs_2, user=supervisor)
self.client.force_login(supervisor) self.client.force_login(supervisor)
@ -83,7 +86,7 @@ class DashboardTestCase(GraphQLTestCase):
course_id course_id
}} }}
}} }}
""" """
variables = {"course_id": str(course_2.id)} variables = {"course_id": str(course_2.id)}
# WHEN # WHEN
@ -93,9 +96,7 @@ class DashboardTestCase(GraphQLTestCase):
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
course_statistics = response.json()["data"]["course_statistics"] course_statistics = response.json()["data"]["course_statistics"]
self.assertEqual(course_statistics["course_id"], str(course_2.id))
self.assertEqual(len(course_statistics), 1)
self.assertEqual(course_statistics[0]["course_id"], str(course_2.id))
def find_dashboard_config_by_course_id(dashboard_configs, course_id): def find_dashboard_config_by_course_id(dashboard_configs, course_id):

View File

@ -7,6 +7,7 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import (
create_course, create_course,
create_course_session, create_course_session,
create_user, create_user,
create_course_session_group,
) )
from vbv_lernwelt.feedback.models import FeedbackResponse from vbv_lernwelt.feedback.models import FeedbackResponse
@ -19,8 +20,8 @@ class DashboardFeedbackTestCase(GraphQLTestCase):
course, course_page = create_course("Test Course") course, course_page = create_course("Test Course")
course_session = create_course_session(course=course, title="Test Bern 2022 a") course_session = create_course_session(course=course, title="Test Bern 2022 a")
# TODO: Give this guy the right permissions, once we have them ;)
supervisor = create_user("supervisor") supervisor = create_user("supervisor")
create_course_session_group(course_session=course_session, user=supervisor)
member = create_user("member") member = create_user("member")
add_course_session_user( add_course_session_user(
@ -94,7 +95,7 @@ class DashboardFeedbackTestCase(GraphQLTestCase):
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
course_statistics = response.json()["data"]["course_statistics"] course_statistics = response.json()["data"]["course_statistics"]
feedback_responses = course_statistics[0]["feedback_responses"] feedback_responses = course_statistics["feedback_responses"]
records = feedback_responses["records"] records = feedback_responses["records"]
self.assertEqual(len(records), 2) self.assertEqual(len(records), 2)