Fix unit tests, change some properties

This commit is contained in:
Ramon Wenger 2022-01-27 17:58:02 +01:00
parent 928f9027d3
commit 04c850753f
7 changed files with 29 additions and 60 deletions

View File

@ -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):

View File

@ -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:

View File

@ -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')

View File

@ -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,14 +63,10 @@ query CommentsQuery($id: ID!) {
query CommentsQuery($id: ID!) {
roomEntry(id: $id) {
comments {
edges {
node {
text
}
}
}
}
}
"""
result = self.get_client(self.student_second_class).execute(query, variables={"id": self.room_entry_id})

View File

@ -30,19 +30,15 @@ class RoomQueryPermission(TestCase):
query = '''
query {
rooms {
edges {
node {
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
}
}
}
}
'''
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):

View File

@ -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

View File

@ -39,8 +39,6 @@ class MySchoolClasses(TestCase):
query {
me {
schoolClasses {
edges {
node {
id
name
members {
@ -52,14 +50,12 @@ 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)