From a1228f7753313814d96c8ab2e9bea30a5784cb57 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Mon, 29 Jul 2024 22:53:04 +0200 Subject: [PATCH] Add another unit test --- .../tests/test_update_course_profile.py | 78 +++++++++++++++++-- 1 file changed, 72 insertions(+), 6 deletions(-) diff --git a/server/vbv_lernwelt/course/tests/test_update_course_profile.py b/server/vbv_lernwelt/course/tests/test_update_course_profile.py index c0cd7a1f..2ed4cb71 100644 --- a/server/vbv_lernwelt/course/tests/test_update_course_profile.py +++ b/server/vbv_lernwelt/course/tests/test_update_course_profile.py @@ -7,7 +7,9 @@ from vbv_lernwelt.core.schema import schema from vbv_lernwelt.course.management.commands.create_default_courses import ( create_versicherungsvermittlerin_course, ) +from vbv_lernwelt.course.models import CourseSessionUser from vbv_lernwelt.learnpath.creators import create_course_profiles +from vbv_lernwelt.learnpath.models import CourseProfile class CourseGraphQLTestCase(TestCase): @@ -15,12 +17,12 @@ class CourseGraphQLTestCase(TestCase): create_default_users() create_course_profiles() create_versicherungsvermittlerin_course() + + def test_update_course_profile(self): user = User.objects.get(username="student-vv@eiger-versicherungen.ch") request = RequestFactory().get("/") request.user = user - self.client = Client(schema=schema, context_value=request) - - def test_query(self): + client = Client(schema=schema, context_value=request) query = """ query CourseQuery($slug: String!) { course(slug: $slug){ @@ -39,7 +41,7 @@ class CourseGraphQLTestCase(TestCase): """ slug = "versicherungsvermittler-in" variables = {"slug": slug} - result = self.client.execute(query, variables=variables) + result = client.execute(query, variables=variables) self.assertIsNone(result.get("errors")) data = result.get("data") @@ -76,11 +78,11 @@ class CourseGraphQLTestCase(TestCase): profile = "nichtleben" input = {"course_profile": profile, "course_slug": slug} - mutation_result = self.client.execute(mutation, variables={"input": input}) + mutation_result = client.execute(mutation, variables={"input": input}) self.assertIsNone(mutation_result.get("errors")) - second_query_result = self.client.execute(query, variables=variables) + second_query_result = client.execute(query, variables=variables) self.assertIsNone(second_query_result.get("errors")) data = second_query_result.get("data") @@ -92,3 +94,67 @@ class CourseGraphQLTestCase(TestCase): course_session_user = course.get("course_session_users")[0] chosen_profile = course_session_user.get("chosen_profile") self.assertEqual(chosen_profile, profile) + + def test_mentor_profile_view(self): + user = User.objects.get(username="test-mentor1@example.com") + request = RequestFactory().get("/") + request.user = user + client = Client(schema=schema, context_value=request) + + query = """ + query courseQuery($slug: String!, $user: String) { + course(slug: $slug) { + id + title + slug + category_name + profiles + course_session_users(id: $user) { + id + __typename + chosen_profile + course_session { + id + __typename + } + } + __typename + } + } + """ + student = User.objects.get(username="student-vv@eiger-versicherungen.ch") + + slug = "versicherungsvermittler-in" + student_id = str(student.id) + variables = {"slug": slug, "user": student_id} + print(variables) + result = client.execute(query, variables=variables) + self.assertIsNone(result.get("errors")) + data = result.get("data") + course = data.get("course") + profiles = course.get("profiles") + self.assertEqual( + set(profiles), set(["nichtleben", "leben", "krankenzusatzversicherung"]) + ) + course_session_user = course.get("course_session_users")[0] + chosen_profile = course_session_user.get("chosen_profile") + self.assertEqual(chosen_profile, "") + + csu = CourseSessionUser.objects.get( + course_session__course__slug=slug, user=student + ) + course_profile = CourseProfile.objects.get(code="nichtleben") + csu.chosen_profile = course_profile + csu.save() + + second_result = client.execute(query, variables=variables) + self.assertIsNone(second_result.get("errors")) + data = second_result.get("data") + course = data.get("course") + profiles = course.get("profiles") + self.assertEqual( + set(profiles), set(["nichtleben", "leben", "krankenzusatzversicherung"]) + ) + course_session_user = course.get("course_session_users")[0] + chosen_profile = course_session_user.get("chosen_profile") + self.assertEqual(chosen_profile, "nichtleben")