Fix unit tests
This commit is contained in:
parent
50709a34e8
commit
4f6b14efae
|
|
@ -132,11 +132,11 @@ def get_assignment_completion_metrics(
|
|||
|
||||
# calculate average points in percent
|
||||
evaluation_percent_results = [
|
||||
(ac.evaluation_points_final / ac.evaluation_max_points)
|
||||
((ac.evaluation_points_final or 0) / (ac.evaluation_max_points or 1))
|
||||
for ac in assignment_completions
|
||||
]
|
||||
average_evaluation_percent = (
|
||||
sum(evaluation_percent_results) / len(evaluation_percent_results)
|
||||
sum(evaluation_percent_results) / (len(evaluation_percent_results) or 1)
|
||||
if evaluation_percent_results
|
||||
else 0
|
||||
)
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ class MentorStatisticsTestCase(BaseMentorAssignmentTestCase, GraphQLTestCase):
|
|||
)
|
||||
# THEN
|
||||
# WHEN
|
||||
query = """query ($courseId: ID!) {
|
||||
mentor_course_statistics(course_id: $courseId) {
|
||||
query = """query ($courseId: ID!, $agentRole: String!) {
|
||||
mentor_course_statistics(course_id: $courseId, agent_role: $agentRole) {
|
||||
course_session_selection_ids
|
||||
user_selection_ids
|
||||
assignments {
|
||||
|
|
@ -65,7 +65,7 @@ class MentorStatisticsTestCase(BaseMentorAssignmentTestCase, GraphQLTestCase):
|
|||
}"""
|
||||
|
||||
# THEN
|
||||
variables = {"courseId": str(self.course.id)}
|
||||
variables = {"courseId": str(self.course.id), "agentRole": "LEARNING_MENTOR"}
|
||||
self.client.force_login(self.mentor)
|
||||
response = self.query(query, variables=variables)
|
||||
self.assertResponseNoErrors(response)
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ class GetDashboardConfig(TestCase):
|
|||
course=self.course, title="Test Session"
|
||||
)
|
||||
|
||||
def _test_config(self, user, role, is_uk, is_vv, is_mentor, has_preview, widgets):
|
||||
def _test_config(self, user, role, is_uk, is_vv, has_preview, widgets):
|
||||
# WHEN
|
||||
sessions = get_course_sessions_with_roles_for_user(user)
|
||||
course_configs = get_course_config(sessions)
|
||||
|
|
@ -134,13 +134,12 @@ class GetDashboardConfig(TestCase):
|
|||
self.assertEqual(course_configs[0].course_title, self.course.title)
|
||||
self.assertEqual(course_configs[0].is_uk, is_uk)
|
||||
self.assertEqual(course_configs[0].is_vv, is_vv)
|
||||
self.assertEqual(course_configs[0].is_mentor, is_mentor)
|
||||
self.assertEqual(course_configs[0].has_preview, has_preview)
|
||||
self.assertEqual(
|
||||
course_configs[0].session_to_continue_id, str(self.course_session.id)
|
||||
)
|
||||
self.assertEqual(course_configs[0].role_key, role)
|
||||
self.assertEqual(course_configs[0].widgets, widgets)
|
||||
self.assertEqual(set(course_configs[0].widgets), set(widgets))
|
||||
|
||||
def test_participant_uk_get_config(self):
|
||||
participant = create_user("participant")
|
||||
|
|
@ -157,7 +156,6 @@ class GetDashboardConfig(TestCase):
|
|||
role="Member",
|
||||
is_uk=True,
|
||||
is_vv=False,
|
||||
is_mentor=False,
|
||||
has_preview=False,
|
||||
widgets=[
|
||||
"ProgressWidget",
|
||||
|
|
@ -181,7 +179,6 @@ class GetDashboardConfig(TestCase):
|
|||
role="Member",
|
||||
is_uk=False,
|
||||
is_vv=True,
|
||||
is_mentor=False,
|
||||
has_preview=False,
|
||||
widgets=["ProgressWidget", "CompetenceWidget"],
|
||||
)
|
||||
|
|
@ -208,7 +205,6 @@ class GetDashboardConfig(TestCase):
|
|||
role="MentorUK",
|
||||
is_uk=True,
|
||||
is_vv=False,
|
||||
is_mentor=True,
|
||||
has_preview=True,
|
||||
widgets=["MentorPersonWidget", "MentorCompetenceWidget"],
|
||||
)
|
||||
|
|
@ -234,7 +230,6 @@ class GetDashboardConfig(TestCase):
|
|||
role="MentorVV",
|
||||
is_uk=False,
|
||||
is_vv=True,
|
||||
is_mentor=True,
|
||||
has_preview=True,
|
||||
widgets=["MentorPersonWidget", "MentorTasksWidget"],
|
||||
)
|
||||
|
|
@ -266,7 +261,6 @@ class GetDashboardConfig(TestCase):
|
|||
role="Member",
|
||||
is_uk=False,
|
||||
is_vv=True,
|
||||
is_mentor=True,
|
||||
has_preview=False,
|
||||
widgets=[
|
||||
"ProgressWidget",
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ class RoleKeyType(Enum):
|
|||
SUPERVISOR = "Supervisor"
|
||||
TRAINER = "Trainer"
|
||||
BERUFSBILDNER = "Berufsbildner"
|
||||
UNKNOWN_ROLE_KEY = "UnknownRoleKey"
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
|
|
@ -365,55 +366,65 @@ def get_dashboard_due_dates(request):
|
|||
|
||||
|
||||
def get_widgets_for_course(
|
||||
role_key: RoleKeyType, is_uk: bool, is_vv: bool
|
||||
course_sessions: List[CourseSessionWithRoles], is_uk: bool, is_vv: bool
|
||||
) -> List[str]:
|
||||
relation_roles = set()
|
||||
for cs in course_sessions:
|
||||
relation_roles.update(cs.roles)
|
||||
|
||||
widgets = []
|
||||
|
||||
if role_key == RoleKeyType.MEMBER:
|
||||
if "MEMBER" in relation_roles:
|
||||
widgets.append(WidgetType.PROGRESS_WIDGET.value)
|
||||
widgets.append(WidgetType.COMPETENCE_WIDGET.value)
|
||||
if is_uk:
|
||||
widgets.append(WidgetType.COMPETENCE_CERTIFICATE_WIDGET.value)
|
||||
|
||||
if role_key in [RoleKeyType.SUPERVISOR, RoleKeyType.TRAINER] and is_uk:
|
||||
widgets.append(WidgetType.UK_STATISTICS_WIDGET.value)
|
||||
|
||||
if role_key in [RoleKeyType.MENTOR_UK, RoleKeyType.MENTOR_VV]:
|
||||
if "EXPERT" in relation_roles or "SUPERVISOR" in relation_roles:
|
||||
widgets.append(WidgetType.MENTOR_TASKS_WIDGET.value)
|
||||
widgets.append(WidgetType.MENTOR_PERSON_WIDGET.value)
|
||||
if is_uk:
|
||||
widgets.append(WidgetType.MENTOR_COMPETENCE_WIDGET.value)
|
||||
if is_vv:
|
||||
|
||||
if "LEARNING_MENTOR" in relation_roles:
|
||||
widgets.append(WidgetType.MENTOR_PERSON_WIDGET.value)
|
||||
if is_uk:
|
||||
widgets.append(WidgetType.MENTOR_COMPETENCE_WIDGET.value)
|
||||
elif is_vv:
|
||||
widgets.append(WidgetType.MENTOR_TASKS_WIDGET.value)
|
||||
|
||||
if role_key in [RoleKeyType.BERUFSBILDNER]:
|
||||
widgets.append(WidgetType.UK_BERUFSBILDNER_STATISTICS_WIDGET.value)
|
||||
if "BERUFSBILDNER" in relation_roles:
|
||||
if is_uk:
|
||||
widgets.append(WidgetType.UK_STATISTICS_WIDGET.value)
|
||||
|
||||
return widgets
|
||||
|
||||
|
||||
def get_role_key_and_mentor(
|
||||
def get_relevant_role_key(
|
||||
course_sessions: List[CourseSessionWithRoles], is_uk: bool, is_vv: bool
|
||||
) -> tuple[RoleKeyType, bool]:
|
||||
roles = set()
|
||||
role = None
|
||||
) -> RoleKeyType:
|
||||
relation_roles = set()
|
||||
|
||||
for cs in course_sessions:
|
||||
roles.update(cs.roles)
|
||||
relation_roles.update(cs.roles)
|
||||
|
||||
if "SUPERVISOR" in roles:
|
||||
role = RoleKeyType.SUPERVISOR
|
||||
elif "EXPERT" in roles:
|
||||
role = RoleKeyType.TRAINER
|
||||
elif "MEMBER" in roles:
|
||||
role = RoleKeyType.MEMBER
|
||||
elif "LEARNING_MENTOR" in roles:
|
||||
if "SUPERVISOR" in relation_roles:
|
||||
return RoleKeyType.SUPERVISOR
|
||||
elif "EXPERT" in relation_roles:
|
||||
return RoleKeyType.TRAINER
|
||||
elif "MEMBER" in relation_roles:
|
||||
return RoleKeyType.MEMBER
|
||||
|
||||
elif "LEARNING_MENTOR" in relation_roles:
|
||||
if is_uk:
|
||||
role = RoleKeyType.MENTOR_UK
|
||||
return RoleKeyType.MENTOR_UK
|
||||
elif is_vv:
|
||||
role = RoleKeyType.MENTOR_VV
|
||||
elif "BERUFSBILDNER" in roles:
|
||||
role = RoleKeyType.BERUFSBILDNER
|
||||
return RoleKeyType.MENTOR_VV
|
||||
elif "BERUFSBILDNER" in relation_roles:
|
||||
if is_uk:
|
||||
return RoleKeyType.BERUFSBILDNER
|
||||
|
||||
return role
|
||||
return RoleKeyType.UNKNOWN_ROLE_KEY
|
||||
|
||||
|
||||
def collect_course_sessions_by_course(
|
||||
|
|
@ -455,7 +466,7 @@ def get_course_config(
|
|||
for _id, cs_in_course in cs_by_course.items():
|
||||
is_uk = cs_in_course[0].course.configuration.is_uk
|
||||
is_vv = cs_in_course[0].course.configuration.is_vv
|
||||
role_key = get_role_key_and_mentor(cs_in_course, is_uk, is_vv)
|
||||
role_key = get_relevant_role_key(cs_in_course, is_uk, is_vv)
|
||||
session_to_continue = get_newest_cs(cs_in_course)
|
||||
course_configs.append(
|
||||
CourseConfig(
|
||||
|
|
@ -465,7 +476,7 @@ def get_course_config(
|
|||
role_key=role_key.value,
|
||||
is_uk=is_uk,
|
||||
is_vv=is_vv,
|
||||
widgets=get_widgets_for_course(role_key, is_uk, is_vv),
|
||||
widgets=get_widgets_for_course(cs_in_course, is_uk, is_vv),
|
||||
has_preview=has_preview(role_key),
|
||||
session_to_continue_id=(
|
||||
str(session_to_continue.id) if session_to_continue else None
|
||||
|
|
@ -521,9 +532,7 @@ def get_mentor_open_tasks_count(request, course_id: str):
|
|||
return Response(
|
||||
status=200,
|
||||
data={
|
||||
"open_task_count": _get_mentor_open_tasks_count(
|
||||
course_id, request.user
|
||||
) # noqa
|
||||
"open_task_count": _get_mentor_open_tasks_count(course_id, request.user) # noqa
|
||||
},
|
||||
)
|
||||
except PermissionDenied as e:
|
||||
|
|
|
|||
Loading…
Reference in New Issue