From 04c850753f83c2fca081d45cd0576776948c3f30 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Thu, 27 Jan 2022 17:58:02 +0100 Subject: [PATCH] Fix unit tests, change some properties --- server/assignments/schema/queries.py | 4 +-- server/books/schema/nodes/module.py | 7 ++++- server/news/schema.py | 2 +- server/rooms/tests/test_comments.py | 8 ++---- .../rooms/tests/test_room_query_permission.py | 20 +++++--------- server/schema.graphql | 26 +++---------------- server/users/tests/test_my_school_classes.py | 22 +++++++--------- 7 files changed, 29 insertions(+), 60 deletions(-) diff --git a/server/assignments/schema/queries.py b/server/assignments/schema/queries.py index 83c12822..4e5bb12d 100644 --- a/server/assignments/schema/queries.py +++ b/server/assignments/schema/queries.py @@ -1,12 +1,12 @@ +import graphene from graphene import relay -from graphene_django.filter import DjangoFilterConnectionField from assignments.schema.types import AssignmentNode, StudentSubmissionNode class AssignmentsQuery(object): assignment = relay.Node.Field(AssignmentNode) - assignments = DjangoFilterConnectionField(AssignmentNode) + assignments = graphene.List(AssignmentNode) class StudentSubmissionQuery(object): diff --git a/server/books/schema/nodes/module.py b/server/books/schema/nodes/module.py index 13e15281..1277a7ca 100644 --- a/server/books/schema/nodes/module.py +++ b/server/books/schema/nodes/module.py @@ -5,7 +5,7 @@ from graphene_django import DjangoObjectType from graphene_django.filter import DjangoFilterConnectionField from assignments.models import StudentSubmission -from assignments.schema.types import StudentSubmissionNode +from assignments.schema.types import AssignmentNode, StudentSubmissionNode from books.models import Module, Chapter, ContentBlock, RecentModule from books.schema.interfaces.module import ModuleInterface from books.schema.nodes.chapter import ChapterNode @@ -37,6 +37,7 @@ class ModuleNode(DjangoObjectType): my_chapter_bookmarks = DjangoFilterConnectionField(ChapterBookmarkNode) snapshots = graphene.List('books.schema.nodes.SnapshotNode') objective_groups = graphene.List(ObjectiveGroupNode) + assignments = graphene.List(AssignmentNode) def resolve_chapters(self, info, **kwargs): return Chapter.get_by_parent(self) @@ -90,6 +91,10 @@ class ModuleNode(DjangoObjectType): user = info.context.user return parent.snapshots.filter(Q(creator=user) | Q(Q(creator__team=user.team ) & Q(shared=True))) + @staticmethod + def resolve_assignments(parent: Module, info, **kwargs): + return parent.assignments.all() + class RecentModuleNode(DjangoObjectType): class Meta: diff --git a/server/news/schema.py b/server/news/schema.py index 5dc5ab57..69f2dc12 100644 --- a/server/news/schema.py +++ b/server/news/schema.py @@ -28,7 +28,7 @@ class NewsTeaserNode(DjangoObjectType): class AllNewsTeasersQuery(object): - news_teasers = DjangoFilterConnectionField(NewsTeaserNode) + news_teasers = graphene.List(NewsTeaserNode) def resolve_news_teasers(self, info, **kwargs): return NewsTeaser.objects.all().order_by('order_id') diff --git a/server/rooms/tests/test_comments.py b/server/rooms/tests/test_comments.py index 99bc78ed..c87f1380 100644 --- a/server/rooms/tests/test_comments.py +++ b/server/rooms/tests/test_comments.py @@ -54,7 +54,7 @@ query CommentsQuery($id: ID!) { """ result = self.get_client().execute(query, variables={"id": self.room_entry_id}) self.assertIsNone(result.get('errors')) - comment_node = result.get('data').get('roomEntry').get('comments').get('edges')[0].get('node') + comment_node = result.get('data').get('roomEntry').get('comments')[0] self.assertEqual(comment_node['text'], self.text) def test_get_comment_for_other_user(self): @@ -63,11 +63,7 @@ query CommentsQuery($id: ID!) { query CommentsQuery($id: ID!) { roomEntry(id: $id) { comments { - edges { - node { - text - } - } + text } } } diff --git a/server/rooms/tests/test_room_query_permission.py b/server/rooms/tests/test_room_query_permission.py index f20490f8..41209e64 100644 --- a/server/rooms/tests/test_room_query_permission.py +++ b/server/rooms/tests/test_room_query_permission.py @@ -30,19 +30,15 @@ class RoomQueryPermission(TestCase): query = ''' query { rooms { - edges { - node { - title - } - } + title } } ''' result = self.client.execute(query) self.assertIsNone(result.get('errors')) - self.assertEqual(len(result.get('data').get('rooms').get('edges')), 1) - self.assertEqual(result.get('data').get('rooms').get('edges')[0].get('node').get('title'), self.room1.title) + self.assertEqual(len(result.get('data').get('rooms')), 1) + self.assertEqual(result.get('data').get('rooms')[0].get('title'), self.room1.title) def test_student_should_not_be_able_to_query_rooms_of_other_classes(self): @@ -68,19 +64,15 @@ class RoomQueryPermission(TestCase): query = ''' query { rooms { - edges { - node { - title - } - } + title } } ''' result = self.client.execute(query) self.assertIsNone(result.get('errors')) - self.assertEqual(len(result.get('data').get('rooms').get('edges')), 1) - self.assertNotEqual(result.get('data').get('rooms').get('edges')[0].get('node').get('title'), modlue_room.title) + self.assertEqual(len(result.get('data').get('rooms')), 1) + self.assertNotEqual(result.get('data').get('rooms')[0].get('title'), modlue_room.title) class RoomEntryQueryPermissions(TestCase): diff --git a/server/schema.graphql b/server/schema.graphql index d8f98124..3b8b0d41 100644 --- a/server/schema.graphql +++ b/server/schema.graphql @@ -196,16 +196,6 @@ type AssignmentNode implements Node { submission: StudentSubmissionNode } -type AssignmentNodeConnection { - pageInfo: PageInfo! - edges: [AssignmentNodeEdge]! -} - -type AssignmentNodeEdge { - node: AssignmentNode - cursor: String! -} - type ChapterBookmarkNode implements Node { user: PrivateUserNode! note: NoteNode @@ -595,7 +585,7 @@ type ModuleNode implements ModuleInterface { heroImage: String! teaser: String! intro: String! - assignments(offset: Int, before: String, after: String, first: Int, last: Int): AssignmentNodeConnection! + assignments: [AssignmentNode] objectiveGroups: [ObjectiveGroupNode] id: ID! pk: Int @@ -701,16 +691,6 @@ type NewsTeaserNode implements Node { displayDate: String } -type NewsTeaserNodeConnection { - pageInfo: PageInfo! - edges: [NewsTeaserNodeEdge]! -} - -type NewsTeaserNodeEdge { - node: NewsTeaserNode - cursor: String! -} - interface Node { id: ID! } @@ -853,7 +833,7 @@ type PublicUserNode implements Node { } type Query { - newsTeasers(offset: Int, before: String, after: String, first: Int, last: Int, date: Date): NewsTeaserNodeConnection + newsTeasers: [NewsTeaserNode] survey(id: ID): SurveyNode surveys(offset: Int, before: String, after: String, first: Int, last: Int): SurveyNodeConnection project(id: ID, slug: String): ProjectNode @@ -863,7 +843,7 @@ type Query { instrumentTypes: [InstrumentTypeNode] studentSubmission(id: ID!): StudentSubmissionNode assignment(id: ID!): AssignmentNode - assignments(offset: Int, before: String, after: String, first: Int, last: Int): AssignmentNodeConnection + assignments: [AssignmentNode] node(id: ID!): Node topic(slug: String): TopicNode module(slug: String, id: ID): ModuleNode diff --git a/server/users/tests/test_my_school_classes.py b/server/users/tests/test_my_school_classes.py index 01c2dd3f..c5894015 100644 --- a/server/users/tests/test_my_school_classes.py +++ b/server/users/tests/test_my_school_classes.py @@ -39,17 +39,13 @@ class MySchoolClasses(TestCase): query { me { schoolClasses { - edges { - node { - id - name - members { - id - firstName - lastName - isTeacher - } - } + id + name + members { + id + firstName + lastName + isTeacher } } } @@ -59,7 +55,7 @@ class MySchoolClasses(TestCase): result = self.client.execute(query) self.assertIsNone(result.get('errors')) - classes = result.get('data').get('me').get('schoolClasses').get('edges') + classes = result.get('data').get('me').get('schoolClasses') self.assertEqual(len(classes), 2) for school_class in classes: @@ -75,5 +71,5 @@ class MySchoolClasses(TestCase): result = self.client.execute(query) - old_classes = result.get('data').get('me').get('oldClasses').get('edges') + old_classes = result.get('data').get('me').get('oldClasses') self.assertEqual(len(old_classes), 1)