Skip to content

Commit 9416344

Browse files
committed
test: Make test_query.test_should_node_self_reference pass.
1 parent dcb9133 commit 9416344

File tree

2 files changed

+91
-1
lines changed

2 files changed

+91
-1
lines changed

graphene_mongo/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def merge_querysets(cls, default_queryset, queryset):
102102
return queryset & default_queryset
103103

104104
"""
105-
TODO: Not sure this works :(
105+
Notes: Not sure how does this work :(
106106
"""
107107
@classmethod
108108
def connection_resolver(cls, resolver, connection, model, root, info, **args):

graphene_mongo/tests/test_query.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ def setup_fixtures():
3737
player3 = Player(first_name='Larry', last_name='Bird', players=[player1, player2])
3838
player3.save()
3939

40+
player1.players = [player2]
41+
player1.save()
42+
43+
player2.players = [player1]
44+
player2.save()
45+
46+
4047
setup_fixtures()
4148

4249

@@ -457,6 +464,89 @@ def resolve_all_players(self, *args, **kwargs):
457464
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
458465

459466

467+
def test_should_node_self_reference():
468+
469+
class Query(graphene.ObjectType):
470+
471+
all_players = MongoengineConnectionField(PlayerNode)
472+
473+
query = '''
474+
query PlayersQuery {
475+
allPlayers {
476+
edges {
477+
node {
478+
firstName,
479+
players {
480+
edges {
481+
node {
482+
firstName
483+
}
484+
}
485+
}
486+
}
487+
}
488+
}
489+
}
490+
'''
491+
expected = {
492+
'allPlayers': {
493+
'edges': [
494+
{
495+
'node': {
496+
'firstName': 'Michael',
497+
'players': {
498+
'edges': [
499+
{
500+
'node': {
501+
'firstName': 'Magic'
502+
}
503+
}
504+
]
505+
}
506+
}
507+
},
508+
{
509+
'node': {
510+
'firstName': 'Magic',
511+
'players': {
512+
'edges': [
513+
{
514+
'node': {
515+
'firstName': 'Michael'
516+
}
517+
}
518+
]
519+
}
520+
}
521+
},
522+
{
523+
'node': {
524+
'firstName': 'Larry',
525+
'players': {
526+
'edges': [
527+
{
528+
'node': {
529+
'firstName': 'Michael'
530+
}
531+
},
532+
{
533+
'node': {
534+
'firstName': 'Magic'
535+
}
536+
}
537+
]
538+
}
539+
}
540+
}
541+
]
542+
}
543+
}
544+
schema = graphene.Schema(query=Query)
545+
result = schema.execute(query)
546+
assert not result.errors
547+
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
548+
549+
460550
# TODO:
461551
def test_should_paging():
462552
pass

0 commit comments

Comments
 (0)