vbv/server/vbv_lernwelt/dashboard/tests/graphql/test_competence.py

67 lines
2.1 KiB
Python

from graphene_django.utils import GraphQLTestCase
from vbv_lernwelt.course.models import CourseSessionUser
from vbv_lernwelt.dashboard.tests.graphql.utils import (
add_course_session_user,
create_circle,
create_course,
create_course_session,
create_user,
)
class DashboardCompetenceTestCase(GraphQLTestCase):
GRAPHQL_URL = "/server/graphql/"
def test_competence(self):
# GIVEN
course, course_page = create_course("Test Course")
course_session = create_course_session(course=course, title="Test Bern 2022 a")
supervisor = create_user("supervisor")
add_course_session_user(
course_session=course_session,
user=supervisor,
role=CourseSessionUser.Role.SESSION_SUPERVISOR,
)
member = create_user("member")
add_course_session_user(
course_session=course_session,
user=member,
role=CourseSessionUser.Role.MEMBER,
)
circle1, _ = create_circle(title="Test Circle 1", course_page=course_page)
circle2, _ = create_circle(title="Test Circle 2", course_page=course_page)
self.client.force_login(supervisor)
query = f"""query($course_id: ID) {{
course_dashboard(course_id: $course_id) {{
course_id
competences {{
performances {{
course_session_id
generation
circle_id
success_count
fail_count
}}
summary {{
success_total
fail_total
}}
}}
}}
}}
"""
variables = {"course_id": str(course.id)}
# WHEN
response = self.query(query, variables=variables)
# THEN
self.assertResponseNoErrors(response)