@@ -1593,3 +1593,78 @@ class Query(graphene.ObjectType):
15931593 "allReporters" : {"edges" : [{"node" : {"firstName" : "Jane" , "lastName" : "Roe" }},]}
15941594 }
15951595 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