Skip to content

Commit 1bd61d6

Browse files
committed
wip: Add test_should_query_reporters_with_nested_document
1 parent df8e7cf commit 1bd61d6

File tree

4 files changed

+67
-2
lines changed

4 files changed

+67
-2
lines changed

graphene_mongo/fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ def get_queryset(self, model, info, **args):
135135
reference_obj = get_node_from_global_id(reference_fields[arg_name], info, args.pop(arg_name))
136136
hydrated_references[arg_name] = reference_obj
137137
args.update(hydrated_references)
138+
138139
if self._get_queryset:
139140
queryset_or_filters = self._get_queryset(model, info, **args)
140141
if isinstance(queryset_or_filters, mongoengine.QuerySet):

graphene_mongo/tests/setup.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ def fixtures():
5757
article2 = Article(headline='World', editor=editor2, pub_date=pub_date)
5858
article2.save()
5959

60+
article3 = Article(headline='Bye', editor=editor2, pub_date=pub_date)
61+
article3.save()
62+
6063
Reporter.drop_collection()
6164
reporter1 = Reporter(
6265
id='1',

graphene_mongo/tests/test_relay_query.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,60 @@ def resolve_reporter(self, *args, **kwargs):
126126
schema = graphene.Schema(query=Query)
127127
result = schema.execute(query)
128128
assert not result.errors
129-
assert dict(result.data['reporter']) == expected['reporter']
129+
assert json.dumps(result.data['reporter'], sort_keys=True) \
130+
== json.dumps(expected['reporter'], sort_keys=True)
131+
# assert dict(result.data['reporter']) == expected['reporter']
132+
133+
134+
def test_should_query_reporters_with_nested_document(fixtures):
135+
136+
class Query(graphene.ObjectType):
137+
node = Node.Field()
138+
reporters = MongoengineConnectionField(ReporterNode)
139+
140+
query = '''
141+
query ReporterQuery {
142+
reporters(firstName: "Allen") {
143+
edges {
144+
node {
145+
firstName,
146+
lastName,
147+
email,
148+
articles(headline: "Hello") {
149+
edges {
150+
node {
151+
headline
152+
}
153+
}
154+
}
155+
}
156+
}
157+
}
158+
}
159+
'''
160+
expected = {
161+
'reporter': {
162+
'firstName': 'Allen',
163+
'lastName': 'Iverson',
164+
'email': '[email protected]',
165+
'articles': {
166+
'edges': [
167+
{
168+
'node': {
169+
'headline': 'Hello'
170+
}
171+
}
172+
]
173+
}
174+
}
175+
}
176+
177+
schema = graphene.Schema(query=Query)
178+
result = schema.execute(query)
179+
# assert not result.errors
180+
# print(dict(result.data['reporters']))
181+
# assert json.dumps(result.data['reporter'], sort_keys=True) \
182+
# == json.dumps(expected['reporter'], sort_keys=True)
130183

131184

132185
def test_should_query_all_editors(fixtures, fixtures_dirname):

graphene_mongo/tests/types.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1+
<<<<<<< HEAD
12
from . import models
3+
||||||| merged common ancestors
4+
from graphene.relay import Node
5+
6+
=======
7+
from graphene.relay import Node
8+
9+
from ..fields import MongoengineConnectionField
10+
>>>>>>> wip: Add test_should_query_reporters_with_nested_document
211
from ..types import MongoengineObjectType
312

413

@@ -57,7 +66,6 @@ class Meta:
5766

5867

5968
class ProfessorMetadataType(MongoengineObjectType):
60-
6169
class Meta:
6270
model = models.ProfessorMetadata
6371

0 commit comments

Comments
 (0)