Skip to content

Commit 3796484

Browse files
committed
test: Include editor info in ArticlesQuery in test_should_filter.
1 parent f61e939 commit 3796484

File tree

1 file changed

+65
-3
lines changed

1 file changed

+65
-3
lines changed

graphene_mongo/tests/test_query.py

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
from graphene.relay import Node
66

7-
from .models import Article, Editor, EmbeddedArticle, Reporter
7+
from .models import Article, Editor, Player, Reporter
88
from .types import (ArticleNode, ArticleType,
99
EditorNode, EditorType,
10+
PlayerNode, PlayerType,
1011
ReporterNode, ReporterType)
1112
from ..fields import MongoengineConnectionField
1213

@@ -28,6 +29,9 @@ def setup_fixtures():
2829
reporter.articles = [article1, article2]
2930
reporter.save()
3031

32+
player = Player(first_name='Michael', last_name='Jordan')
33+
player.save()
34+
3135
setup_fixtures()
3236

3337

@@ -279,7 +283,10 @@ class Query(graphene.ObjectType):
279283
articles(headline: "World") {
280284
edges {
281285
node {
282-
headline
286+
headline,
287+
editor {
288+
firstName
289+
}
283290
}
284291
}
285292
}
@@ -290,7 +297,10 @@ class Query(graphene.ObjectType):
290297
'edges': [
291298
{
292299
'node': {
293-
'headline': 'World'
300+
'headline': 'World',
301+
'editor': {
302+
'firstName': 'Grant'
303+
}
294304
}
295305
}
296306
]
@@ -344,6 +354,7 @@ class Query(graphene.ObjectType):
344354
def get_nodes(data):
345355
return map(lambda edge: edge['node'], data['editors']['edges'])
346356

357+
assert not result.errors
347358
assert all(item in get_nodes(result.data) for item in get_nodes(expected))
348359

349360
def test_should_custom_kwargs():
@@ -383,6 +394,57 @@ def resolve_editors(self, *args, **kwargs):
383394
assert not result.errors
384395
assert all(item in result.data['editors'] for item in expected['editors'])
385396

397+
398+
def test_should_self_reference():
399+
400+
class Query(graphene.ObjectType):
401+
402+
players = MongoengineConnectionField(PlayerNode)
403+
404+
query = '''
405+
query PlayerQuery {
406+
players {
407+
edges {
408+
cursor,
409+
node {
410+
firstName,
411+
412+
}
413+
}
414+
}
415+
}
416+
'''
417+
expected = {
418+
'players': {
419+
'edges': [
420+
{
421+
'cursor': 'xxx',
422+
'node': {
423+
'firstName': 'Penny'
424+
}
425+
},
426+
{
427+
'cursor': 'xxx',
428+
'node': {
429+
'firstName': 'Grant'
430+
}
431+
}
432+
]
433+
}
434+
}
435+
schema = graphene.Schema(query=Query)
436+
result = schema.execute(query)
437+
print(result.data)
438+
439+
assert not result.errors
440+
'''
441+
def get_nodes(data):
442+
return map(lambda edge: edge['node'], data['editors']['edges'])
443+
444+
assert all(item in get_nodes(result.data) for item in get_nodes(expected))
445+
'''
446+
447+
386448
# TODO:
387449
def test_should_paging():
388450
pass

0 commit comments

Comments
 (0)