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

67 lines
2.0 KiB
Python

from graphene_django.utils import GraphQLTestCase
from vbv_lernwelt.course.models import CourseSessionUser
from vbv_lernwelt.dashboard.graphql.types.feedback import feedback_responses
from vbv_lernwelt.dashboard.tests.graphql.utils import (
add_course_session_user,
create_circle,
create_course,
create_course_session,
create_user,
)
from vbv_lernwelt.feedback.models import FeedbackResponse
class DashboardFeedbackTestCase(GraphQLTestCase):
GRAPHQL_URL = "/server/graphql/"
def test_feedback(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")
circle1, _ = create_circle(title="Test Circle 1", course_page=course_page)
circle2, _ = create_circle(title="Test Circle 2", course_page=course_page)
FeedbackResponse.objects.create(
feedback_user=member,
data={"satisfaction": 3},
circle=circle1,
course_session=course_session,
)
FeedbackResponse.objects.create(
feedback_user=member,
data={"satisfaction": 4},
circle=circle1,
course_session=course_session,
)
# Create Feedbacks for circle2
FeedbackResponse.objects.create(
feedback_user=member,
data={"satisfaction": 5},
circle=circle2,
course_session=course_session,
)
FeedbackResponse.objects.create(
feedback_user=member,
data={"satisfaction": 2},
circle=circle2,
course_session=course_session,
)
# Get average satisfaction per circle
result = feedback_responses(course.id, supervisor)
# THEN