Skip to content

Commit 6a4e9d0

Browse files
2 parents 0048456 + 3cfcbaa commit 6a4e9d0

File tree

7 files changed

+27464
-21
lines changed

7 files changed

+27464
-21
lines changed

backend/family_tree/student/schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def tree_for_batch(root,info,batch):
2323

2424
class Query(graphene.ObjectType):
2525
students=graphene.List(StudentType)
26-
children=graphene.List(StudentType, parent_id=graphene.String())
26+
children=graphene.List(StudentType, parentId=graphene.String())
2727
student_path= graphene.List(StudentType, roll=graphene.String())
2828
student_sibling= graphene.List(StudentType, roll=graphene.String())
2929
student_search= graphene.List(StudentType, search_query=graphene.String())
@@ -32,8 +32,8 @@ class Query(graphene.ObjectType):
3232
def resolve_students(root,info):
3333
return Student.objects.all()
3434

35-
def resolve_children(parent_id):
36-
return Student.objects.filter(parentId=parent_id)
35+
def resolve_children(root, info, parentId):
36+
return Student.objects.filter(parentId=parentId)
3737

3838
def resolve_student_path(root, info, roll):
3939
pathObjects=[]

backend/family_tree/student/tests.py

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,42 @@
11
from django.http import response
22
from django.test import TestCase
3-
import json
43
from graphene_django.utils.testing import GraphQLTestCase
4+
import json
55
from student.models import Student
66
from mixer.backend.django import mixer
77

8-
class testCasesForStudents(GraphQLTestCase):
8+
9+
class StudentTestCases(GraphQLTestCase):
910
GRAPHQL_URL = 'http://localhost/graphql'
11+
1012
def setUp(self):
11-
super().setUp()
12-
self.student1 = mixer.blend(Student, name='student1', roll_no='1', parentId='root', year=2019)
13-
self.student2 = mixer.blend(Student, name='student2', roll_no='2', parentId='1', year=2020)
14-
self.student3 = mixer.blend(Student, name='student3', roll_no='3', parentId='1', year=2020)
15-
self.student4 = mixer.blend(Student, name='student4', roll_no='4', parentId='1', year=2020)
13+
super().setUp()
14+
self.student1 = mixer.blend(Student, name='student1', roll_no='1', parentId='root',year=2019)
15+
self.student2 = mixer.blend(Student, name='student2', roll_no='2', parentId='1', year=2020)
16+
self.student3 = mixer.blend(Student, name='student3', roll_no='3', parentId='1', year=2020)
17+
self.student4 = mixer.blend(Student, name='student4', roll_no='4', parentId='1', year=2020)
18+
self.student5 = mixer.blend(Student, name='student5', roll_no='5', parentId='2')
19+
self.student6 = mixer.blend(Student, name='student6', roll_no='6', parentId='5')
20+
self.student7 = mixer.blend(Student, name='student7', roll_no='7', parentId='6')
21+
self.student8 = mixer.blend(Student, name='student8', roll_no='8', parentId='7')
22+
self.student9 = mixer.blend(Student, name='student9', roll_no='9', parentId='8')
23+
24+
def test_children_query(self):
25+
response = self.query('''
26+
query {
27+
children(parentId: "1"){
28+
rollNo
29+
name
30+
}
31+
}
32+
''')
33+
34+
content = json.loads(response.content)
35+
self.assertResponseNoErrors(response)
36+
self.assertDictEqual(content['data']['children'][0], {'rollNo': '2', 'name': 'student2'})
37+
self.assertDictEqual(content['data']['children'][1], {'rollNo': '3', 'name': 'student3'})
38+
self.assertDictEqual(content['data']['children'][2], {'rollNo': '4', 'name': 'student4'})
39+
1640
def test_student_query(self):
1741
response = self.query('''
1842
query {
@@ -22,10 +46,11 @@ def test_student_query(self):
2246
}
2347
}
2448
''')
25-
content= json.loads(response.content)
49+
content = json.loads(response.content)
2650
self.assertResponseNoErrors(response)
2751
self.assertDictEqual(content['data']['students'][0], {'id': str(self.student1.id), 'name': self.student1.name})
2852
self.assertDictEqual(content['data']['students'][1], {'id': str(self.student2.id), 'name': self.student2.name})
53+
2954
def test_student_sibling(self):
3055
response = self.query('''
3156
query {
@@ -44,11 +69,11 @@ def test_student_batch(self):
4469
response= self.query('''
4570
query {
4671
studentBatch(roll: "2") {
47-
id
48-
name
49-
}
72+
id
73+
name
5074
}
51-
''')
75+
}
76+
''')
5277
content= json.loads(response.content)
5378
self.assertResponseNoErrors(response)
5479
self.assertDictEqual(content['data']['studentBatch'][0][0], {'id': str(self.student2.id), 'name': self.student2.name})
@@ -57,5 +82,23 @@ def test_student_batch(self):
5782
self.assertDictEqual(content['data']['studentBatch'][1][1], {'id': str(self.student1.id), 'name': self.student1.name})
5883
self.assertDictEqual(content['data']['studentBatch'][2][0], {'id': str(self.student4.id), 'name': self.student4.name})
5984
self.assertDictEqual(content['data']['studentBatch'][1][1], {'id': str(self.student1.id), 'name': self.student1.name})
60-
61-
85+
86+
def test_student_path(self):
87+
response = self.query('''
88+
query {
89+
studentPath(roll: "9") {
90+
id
91+
name
92+
}
93+
}
94+
''')
95+
content= json.loads(response.content)
96+
self.assertResponseNoErrors(response)
97+
self.assertDictEqual(content['data']['studentPath'][6], {'id': str(self.student1.id), 'name': self.student1.name})
98+
self.assertDictEqual(content['data']['studentPath'][5], {'id': str(self.student2.id), 'name': self.student2.name})
99+
self.assertDictEqual(content['data']['studentPath'][4], {'id': str(self.student5.id), 'name': self.student5.name})
100+
self.assertDictEqual(content['data']['studentPath'][3], {'id': str(self.student6.id), 'name': self.student6.name})
101+
self.assertDictEqual(content['data']['studentPath'][2], {'id': str(self.student7.id), 'name': self.student7.name})
102+
self.assertDictEqual(content['data']['studentPath'][1], {'id': str(self.student8.id), 'name': self.student8.name})
103+
self.assertDictEqual(content['data']['studentPath'][0], {'id': str(self.student9.id), 'name': self.student9.name})
104+

0 commit comments

Comments
 (0)