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