From 533d514cc9a871bd16bc99e6c6b0aedfd1500f11 Mon Sep 17 00:00:00 2001 From: Amnisia Date: Sat, 22 Jul 2017 02:09:16 +0500 Subject: [PATCH] Add totalCount field in ConnectionBase class --- graphene/relay/connection.py | 5 +++++ graphene/relay/tests/test_connection.py | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/graphene/relay/connection.py b/graphene/relay/connection.py index be77700d..274bf722 100644 --- a/graphene/relay/connection.py +++ b/graphene/relay/connection.py @@ -82,8 +82,13 @@ class ConnectionMeta(ObjectTypeMeta): class ConnectionBase(AbstractType): page_info = Field(PageInfo, name='pageInfo', required=True) + total_count = Int(name='totalCount', required=True) edges = NonNull(List(edge)) + @staticmethod + def resolve_total_count(root, args, context, info): + return root.length + bases = (ConnectionBase, ) + bases attrs = dict(attrs, _meta=options, Edge=edge) return ObjectTypeMeta.__new__(cls, name, bases, attrs) diff --git a/graphene/relay/tests/test_connection.py b/graphene/relay/tests/test_connection.py index 87f937ae..8deb8447 100644 --- a/graphene/relay/tests/test_connection.py +++ b/graphene/relay/tests/test_connection.py @@ -23,7 +23,7 @@ def test_connection(): assert MyObjectConnection._meta.name == 'MyObjectConnection' fields = MyObjectConnection._meta.fields - assert list(fields.keys()) == ['page_info', 'edges', 'extra'] + assert list(fields.keys()) == ['page_info', 'total_count', 'edges', 'extra'] edge_field = fields['edges'] pageinfo_field = fields['page_info'] @@ -48,7 +48,7 @@ def test_connection_inherit_abstracttype(): assert MyObjectConnection._meta.name == 'MyObjectConnection' fields = MyObjectConnection._meta.fields - assert list(fields.keys()) == ['page_info', 'edges', 'extra'] + assert list(fields.keys()) == ['page_info', 'total_count', 'edges', 'extra'] def test_edge():