Skip to content

Commit 5491e2c

Browse files
committed
add test to show .reverse() not being perserved
1 parent 2600f0f commit 5491e2c

File tree

1 file changed

+80
-1
lines changed

1 file changed

+80
-1
lines changed

graphene_django/filter/tests/test_fields.py

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import pytest
44

5-
from graphene import Field, ObjectType, Schema, Argument, Float
5+
from graphene import Field, ObjectType, Schema, Argument, Float, Boolean
66
from graphene.relay import Node
77
from graphene_django import DjangoObjectType
88
from graphene_django.forms import (GlobalIDFormField,
@@ -534,3 +534,82 @@ def resolve_all_reporters(self, info, **args):
534534
assert str(result.errors[0]) == (
535535
'Received two sliced querysets (high mark) in the connection, please slice only in one.'
536536
)
537+
538+
def test_order_by_is_perserved():
539+
class ReporterType(DjangoObjectType):
540+
class Meta:
541+
model = Reporter
542+
interfaces = (Node, )
543+
filter_fields = ()
544+
545+
class Query(ObjectType):
546+
all_reporters = DjangoFilterConnectionField(ReporterType, reverse_order=Boolean())
547+
548+
def resolve_all_reporters(self, info, reverse_order=False, **args):
549+
reporters = Reporter.objects.order_by('first_name')
550+
551+
if reverse_order:
552+
return reporters.reverse()
553+
554+
return reporters
555+
556+
Reporter.objects.create(
557+
first_name='b',
558+
)
559+
r = Reporter.objects.create(
560+
first_name='a',
561+
)
562+
563+
schema = Schema(query=Query)
564+
query = '''
565+
query NodeFilteringQuery {
566+
allReporters(first: 1) {
567+
edges {
568+
node {
569+
firstName
570+
}
571+
}
572+
}
573+
}
574+
'''
575+
expected = {
576+
'allReporters': {
577+
'edges': [{
578+
'node': {
579+
'firstName': 'a',
580+
}
581+
}]
582+
}
583+
}
584+
585+
result = schema.execute(query)
586+
assert not result.errors
587+
assert result.data == expected
588+
589+
590+
reverse_query = '''
591+
query NodeFilteringQuery {
592+
allReporters(first: 1, reverseOrder: true) {
593+
edges {
594+
node {
595+
firstName
596+
}
597+
}
598+
}
599+
}
600+
'''
601+
602+
reverse_expected = {
603+
'allReporters': {
604+
'edges': [{
605+
'node': {
606+
'firstName': 'b',
607+
}
608+
}]
609+
}
610+
}
611+
612+
reverse_result = schema.execute(reverse_query)
613+
614+
assert not reverse_result.errors
615+
assert reverse_result.data == reverse_expected

0 commit comments

Comments
 (0)