From a427a0fb18b6d2c59893d7c9014b5d67c6866efd Mon Sep 17 00:00:00 2001 From: Timothy Laurent Date: Wed, 9 Nov 2016 22:27:08 -0800 Subject: [PATCH 1/2] Add test for _is_sunder and _is_dunder array.py functions. --- graphene/pyutils/enum.py | 12 ++++----- graphene/pyutils/tests/__init__.py | 0 graphene/pyutils/tests/test_enum.py | 41 +++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 graphene/pyutils/tests/__init__.py create mode 100644 graphene/pyutils/tests/test_enum.py diff --git a/graphene/pyutils/enum.py b/graphene/pyutils/enum.py index 8c09a6ad..928d0be2 100644 --- a/graphene/pyutils/enum.py +++ b/graphene/pyutils/enum.py @@ -71,18 +71,18 @@ def _is_descriptor(obj): def _is_dunder(name): """Returns True if a __dunder__ name, False otherwise.""" - return (name[:2] == name[-2:] == '__' and + return (len(name) > 4 and + name[:2] == name[-2:] == '__' and name[2:3] != '_' and - name[-3:-2] != '_' and - len(name) > 4) + name[-3:-2] != '_') def _is_sunder(name): """Returns True if a _sunder_ name, False otherwise.""" - return (name[0] == name[-1] == '_' and + return (len(name) > 2 and + name[0] == name[-1] == '_' and name[1:2] != '_' and - name[-2:-1] != '_' and - len(name) > 2) + name[-2:-1] != '_') def _make_class_unpicklable(cls): diff --git a/graphene/pyutils/tests/__init__.py b/graphene/pyutils/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/graphene/pyutils/tests/test_enum.py b/graphene/pyutils/tests/test_enum.py new file mode 100644 index 00000000..bf15a620 --- /dev/null +++ b/graphene/pyutils/tests/test_enum.py @@ -0,0 +1,41 @@ +from ..enum import _is_dunder, _is_sunder + + +def test__is_dunder(): + dunder_names = [ + '__i__', + '__test__', + ] + non_dunder_names = [ + 'test', + '__test', + '_test', + '_test_', + 'test__', + '', + ] + + for name in dunder_names: + assert _is_dunder(name) is True + + for name in non_dunder_names: + assert _is_dunder(name) is False + +def test__is_sunder(): + sunder_names = [ + '_i_', + '_test_', + ] + + non_sunder_names = [ + '__i__', + '_i__', + '__i_', + '', + ] + + for name in sunder_names: + assert _is_sunder(name) is True + + for name in non_sunder_names: + assert _is_sunder(name) is False From 0a79df3d13a6aebf7f12b55a185b4aa7a2267430 Mon Sep 17 00:00:00 2001 From: markus Date: Thu, 10 Nov 2016 10:46:34 +0000 Subject: [PATCH 2/2] Added tests for global id. --- graphene/relay/tests/test_global_id.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 graphene/relay/tests/test_global_id.py diff --git a/graphene/relay/tests/test_global_id.py b/graphene/relay/tests/test_global_id.py new file mode 100644 index 00000000..d45b5da6 --- /dev/null +++ b/graphene/relay/tests/test_global_id.py @@ -0,0 +1,22 @@ +from ..node import Node, GlobalID + +from ...types import NonNull, ID + + +class CustomNode(Node): + + class Meta: + name = 'Node' + + +def test_global_id_defaults_to_required_and_node(): + gid = GlobalID() + assert isinstance(gid.type, NonNull) + assert gid.type.of_type == ID + assert gid.node == Node + + +def test_global_id_allows_overriding_of_node_and_required(): + gid = GlobalID(node=CustomNode, required=False) + assert gid.type == ID + assert gid.node == CustomNode