Add Trainer statistics tests

This commit is contained in:
Christian Cueni 2024-04-15 16:37:07 +02:00
parent 68d44f950f
commit dc6c645c46
2 changed files with 118 additions and 1 deletions

View File

@ -73,7 +73,8 @@ class DashboardQuery(graphene.ObjectType):
coursesessionuser__role=CourseSessionUser.Role.EXPERT,
).values_list("id", flat=True)
setattr(info.context, "circle_ids", list(circle_ids))
# get trainer courses & circles
# todo: if course_session_ids and circles are empty return none or 404 or 401
# return None

View File

@ -318,6 +318,122 @@ class AssignmentTestCase(GraphQLTestCase):
self.assertEqual(assignment_3_metrics["average_passed"], 100)
class ExpertAssignmentTestCase(AssignmentTestCase):
def setUp(self):
self.course, self.course_page = create_course("Test Course")
self.course_session = create_course_session(course=self.course, title=":)")
course_session = create_course_session(course=self.course, title=":(")
self.circle, _ = create_circle(title="Circle", course_page=self.course_page)
circle, _ = create_circle(title="Other Circle", course_page=self.course_page)
create_course_session_group(course_session=self.course_session)
self.m1 = create_user("member_1")
add_course_session_user(
course_session=self.course_session,
user=self.m1,
role=CourseSessionUser.Role.MEMBER,
)
self.m2 = create_user("member_2")
add_course_session_user(
course_session=self.course_session,
user=self.m2,
role=CourseSessionUser.Role.MEMBER,
)
self.m3 = create_user("member_3")
add_course_session_user(
course_session=self.course_session,
user=self.m3,
role=CourseSessionUser.Role.MEMBER,
)
self.e1 = create_user("expert_1")
csu = add_course_session_user(
course_session=self.course_session,
user=self.e1,
role=CourseSessionUser.Role.EXPERT,
)
csu.expert.add(self.circle)
m4 = create_user("member_4")
add_course_session_user(
course_session=course_session,
user=m4,
role=CourseSessionUser.Role.MEMBER,
)
m5 = create_user("member_5")
add_course_session_user(
course_session=course_session,
user=m5,
role=CourseSessionUser.Role.MEMBER,
)
# assignments in the other course session should not be included
assignment_1, _ = mix_assignment_cocktail(
deadline_at=datetime(1990, 4, 1),
assignment_type=AssignmentType.CASEWORK,
course_session=course_session,
circle=self.circle,
add_competence_certificate=True,
)
assignment_2, _ = mix_assignment_cocktail(
deadline_at=datetime(2000, 4, 1),
assignment_type=AssignmentType.EDONIQ_TEST,
course_session=course_session,
circle=self.circle,
add_competence_certificate=True,
)
create_assignment_completion(
user=m4,
assignment=assignment_1,
course_session=course_session,
has_passed=True,
)
create_assignment_completion(
user=m5,
assignment=assignment_2,
course_session=course_session,
)
# assignments in the same course session, but in a different circle. Should not be included
assignment_3, _ = mix_assignment_cocktail(
deadline_at=datetime(1990, 4, 1),
assignment_type=AssignmentType.CASEWORK,
course_session=self.course_session,
circle=circle,
add_competence_certificate=True,
)
assignment_4, _ = mix_assignment_cocktail(
deadline_at=datetime(2000, 4, 1),
assignment_type=AssignmentType.EDONIQ_TEST,
course_session=self.course_session,
circle=circle,
add_competence_certificate=True,
)
create_assignment_completion(
user=self.m1,
assignment=assignment_1,
course_session=self.course_session,
has_passed=True,
)
create_assignment_completion(
user=self.m1,
assignment=assignment_2,
course_session=self.course_session,
)
self.client.force_login(self.e1)
def mix_assignment_cocktail(
assignment_type: AssignmentType,
course_session: CourseSession,