@@ -1593,3 +1593,78 @@ class Query(graphene.ObjectType):
1593
1593
"allReporters" : {"edges" : [{"node" : {"firstName" : "Jane" , "lastName" : "Roe" }},]}
1594
1594
}
1595
1595
assert result .data == expected
1596
+
1597
+
1598
+ def test_connection_should_succeed_if_last_higher_than_number_of_objects ():
1599
+ class ReporterType (DjangoObjectType ):
1600
+ class Meta :
1601
+ model = Reporter
1602
+ interfaces = (Node ,)
1603
+ fields = "__all__"
1604
+
1605
+ class Query (graphene .ObjectType ):
1606
+ all_reporters = DjangoConnectionField (ReporterType )
1607
+
1608
+ schema = graphene .Schema (query = Query )
1609
+ query = """
1610
+ query ReporterPromiseConnectionQuery ($last: Int) {
1611
+ allReporters(last: $last) {
1612
+ edges {
1613
+ node {
1614
+ firstName
1615
+ lastName
1616
+ }
1617
+ }
1618
+ }
1619
+ }
1620
+ """
1621
+
1622
+ result = schema .execute (query , variable_values = dict (last = 2 ))
1623
+ assert not result .errors
1624
+ expected = {"allReporters" : {"edges" : []}}
1625
+ assert result .data == expected
1626
+
1627
+ Reporter .objects .create (first_name = "John" , last_name = "Doe" )
1628
+ Reporter .objects .create (first_name = "Some" , last_name = "Guy" )
1629
+ Reporter .objects .create (first_name = "Jane" , last_name = "Roe" )
1630
+ Reporter .objects .create (first_name = "Some" , last_name = "Lady" )
1631
+
1632
+ result = schema .execute (query , variable_values = dict (last = 2 ))
1633
+ assert not result .errors
1634
+ expected = {
1635
+ "allReporters" : {
1636
+ "edges" : [
1637
+ {"node" : {"firstName" : "Jane" , "lastName" : "Roe" }},
1638
+ {"node" : {"firstName" : "Some" , "lastName" : "Lady" }},
1639
+ ]
1640
+ }
1641
+ }
1642
+ assert result .data == expected
1643
+
1644
+ result = schema .execute (query , variable_values = dict (last = 4 ))
1645
+ assert not result .errors
1646
+ expected = {
1647
+ "allReporters" : {
1648
+ "edges" : [
1649
+ {"node" : {"firstName" : "John" , "lastName" : "Doe" }},
1650
+ {"node" : {"firstName" : "Some" , "lastName" : "Guy" }},
1651
+ {"node" : {"firstName" : "Jane" , "lastName" : "Roe" }},
1652
+ {"node" : {"firstName" : "Some" , "lastName" : "Lady" }},
1653
+ ]
1654
+ }
1655
+ }
1656
+ assert result .data == expected
1657
+
1658
+ result = schema .execute (query , variable_values = dict (last = 20 ))
1659
+ assert not result .errors
1660
+ expected = {
1661
+ "allReporters" : {
1662
+ "edges" : [
1663
+ {"node" : {"firstName" : "John" , "lastName" : "Doe" }},
1664
+ {"node" : {"firstName" : "Some" , "lastName" : "Guy" }},
1665
+ {"node" : {"firstName" : "Jane" , "lastName" : "Roe" }},
1666
+ {"node" : {"firstName" : "Some" , "lastName" : "Lady" }},
1667
+ ]
1668
+ }
1669
+ }
1670
+ assert result .data == expected
0 commit comments