From a427a0fb18b6d2c59893d7c9014b5d67c6866efd Mon Sep 17 00:00:00 2001 From: Timothy Laurent Date: Wed, 9 Nov 2016 22:27:08 -0800 Subject: [PATCH] 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