Skip to content

Commit 6dc63bb

Browse files
authored
Merge pull request #23 from alqmy/master
feat: Added tests for last n and actually fixed it.
2 parents 3ae05e0 + 14879b7 commit 6dc63bb

File tree

2 files changed

+54
-8
lines changed

2 files changed

+54
-8
lines changed

graphene_mongo/fields.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def get_query(cls, model, info, **args):
122122
objs = objs[:first]
123123
if last is not None:
124124
# fix for https://github.com/graphql-python/graphene-mongo/issues/20
125-
objs = objs[-last:]
125+
objs = objs[-(last+1):]
126126

127127
return objs
128128

graphene_mongo/tests/test_relay_query.py

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -223,11 +223,9 @@ def mutate(self, info, headline):
223223

224224
return CreateArticle(article=article)
225225

226-
227226
class Query(graphene.ObjectType):
228227
node = Node.Field()
229228

230-
231229
class Mutation(graphene.ObjectType):
232230

233231
create_article = CreateArticle.Field()
@@ -255,6 +253,7 @@ class Mutation(graphene.ObjectType):
255253
assert not result.errors
256254
assert result.data == expected
257255

256+
258257
def test_should_filter():
259258

260259
class Query(graphene.ObjectType):
@@ -361,7 +360,8 @@ class Query(graphene.ObjectType):
361360
result = schema.execute(query)
362361

363362
assert not result.errors
364-
assert all(item in get_nodes(result.data, 'editors') for item in get_nodes(expected, 'editors'))
363+
assert all(item in get_nodes(result.data, 'editors')
364+
for item in get_nodes(expected, 'editors'))
365365

366366

367367
def test_should_after():
@@ -403,7 +403,8 @@ class Query(graphene.ObjectType):
403403
result = schema.execute(query)
404404

405405
assert not result.errors
406-
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
406+
assert json.dumps(result.data, sort_keys=True) == json.dumps(
407+
expected, sort_keys=True)
407408

408409

409410
def test_should_before():
@@ -445,7 +446,51 @@ class Query(graphene.ObjectType):
445446
result = schema.execute(query)
446447

447448
assert not result.errors
448-
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
449+
assert json.dumps(result.data, sort_keys=True) == json.dumps(
450+
expected, sort_keys=True)
451+
452+
453+
def test_should_last_n():
454+
class Query(graphene.ObjectType):
455+
players = MongoengineConnectionField(PlayerNode)
456+
457+
query = '''
458+
query EditorQuery {
459+
players(last: 2) {
460+
edges {
461+
cursor,
462+
node {
463+
firstName
464+
}
465+
}
466+
}
467+
}
468+
'''
469+
expected = {
470+
'players': {
471+
'edges': [
472+
{
473+
'cursor': 'YXJyYXljb25uZWN0aW9uOjE=',
474+
'node': {
475+
'firstName': 'Magic',
476+
}
477+
},
478+
{
479+
'cursor': 'YXJyYXljb25uZWN0aW9uOjI=',
480+
'node': {
481+
'firstName': 'Larry',
482+
}
483+
}
484+
]
485+
}
486+
}
487+
schema = graphene.Schema(query=Query)
488+
result = schema.execute(query)
489+
490+
assert not result.errors
491+
assert json.dumps(result.data, sort_keys=True) == json.dumps(
492+
expected, sort_keys=True)
493+
449494

450495
def test_should_self_reference():
451496

@@ -511,7 +556,7 @@ class Query(graphene.ObjectType):
511556
]
512557
},
513558
'embeddedListArticles': {
514-
'edges': []
559+
'edges': []
515560
}
516561

517562
}
@@ -544,7 +589,8 @@ class Query(graphene.ObjectType):
544589
schema = graphene.Schema(query=Query)
545590
result = schema.execute(query)
546591
assert not result.errors
547-
assert json.dumps(result.data, sort_keys=True) == json.dumps(expected, sort_keys=True)
592+
assert json.dumps(result.data, sort_keys=True) == json.dumps(
593+
expected, sort_keys=True)
548594

549595

550596
# TODO:

0 commit comments

Comments
 (0)