From 9f28d2fde48771d699ebc9299a52c8df706a6780 Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Thu, 9 Jul 2020 16:17:09 +0100 Subject: [PATCH] Remove enum compat middleware --- graphene/compat/__init__.py | 0 graphene/compat/middleware.py | 47 -------------- graphene/types/tests/test_enum.py | 100 ------------------------------ 3 files changed, 147 deletions(-) delete mode 100644 graphene/compat/__init__.py delete mode 100644 graphene/compat/middleware.py diff --git a/graphene/compat/__init__.py b/graphene/compat/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/graphene/compat/middleware.py b/graphene/compat/middleware.py deleted file mode 100644 index 7796e978..00000000 --- a/graphene/compat/middleware.py +++ /dev/null @@ -1,47 +0,0 @@ -from graphql import OperationType - -from ..utils.str_converters import to_snake_case -from ..types.definitions import GrapheneEnumType, GrapheneInputObjectType -from ..types.utils import get_underlying_type - - -def convert_enum_args(args, input_arguments): - new_args = {} - - for arg_name, arg in input_arguments.items(): - _type = get_underlying_type(arg.type) - - arg_name = to_snake_case(arg_name) - input_value = args.get(arg_name, None) - - if isinstance(_type, GrapheneEnumType): - # Convert inputs to value - if input_value and isinstance(input_value, _type.graphene_type._meta.enum): - new_args[arg_name] = input_value.value - else: - new_args[arg_name] = input_value - elif isinstance(_type, GrapheneInputObjectType): - _input_arguments = get_underlying_type(arg.type).fields - input_type = input_value.get_type() - new_args[arg_name] = input_type( - **convert_enum_args(input_value, _input_arguments) - ) - else: - new_args[arg_name] = input_value - - return new_args - - -def enum_value_convertor_middleware(next, root, info, **args): - """ - Compatibility middleware for upgrading to v3: - - Convert enums to their values for mutation inputs, like the behaviour in v2 - """ - operation = info.operation.operation - if operation == OperationType.MUTATION: - input_arguments = info.parent_type.fields[info.field_name].args - - new_args = convert_enum_args(args, input_arguments) - - return next(root, info, **new_args) diff --git a/graphene/types/tests/test_enum.py b/graphene/types/tests/test_enum.py index d4bde698..8d5e87af 100644 --- a/graphene/types/tests/test_enum.py +++ b/graphene/types/tests/test_enum.py @@ -1,7 +1,5 @@ from textwrap import dedent -from graphene.compat.middleware import enum_value_convertor_middleware - from ..argument import Argument from ..enum import Enum, PyEnum from ..field import Field @@ -473,101 +471,3 @@ def test_mutation_enum_input_type(): assert result.data == {"createPaint": {"color": "RED"}} assert color_input_value == RGB.RED - - -def test_mutation_enum_input_compatability_middleware(): - """Test the `enum_value_convertor_middleware`""" - - class RGB(Enum): - """Available colors""" - - RED = 1 - GREEN = 2 - BLUE = 3 - - color_input = None - - class CreatePaint(Mutation): - class Arguments: - color = RGB(required=True) - - color = RGB(required=True) - - def mutate(_, info, color): - nonlocal color_input - color_input = color - return CreatePaint(color=color) - - class MyMutation(ObjectType): - create_paint = CreatePaint.Field() - - class Query(ObjectType): - a = String() - - schema = Schema(query=Query, mutation=MyMutation) - result = schema.execute( - """ mutation MyMutation { - createPaint(color: RED) { - color - } - } - """, - middleware=[enum_value_convertor_middleware], - ) - assert not result.errors - assert result.data == {"createPaint": {"color": "RED"}} - - assert color_input == 1 - assert type(color_input) == int - - -def test_mutation_enum_input_compatability_middleware_input_type(): - """Test the `enum_value_convertor_middleware`""" - - class RGB(Enum): - """Available colors""" - - RED = 1 - GREEN = 2 - BLUE = 3 - - class SecondColorInput(InputObjectType): - color = RGB(required=True) - - class ColorInput(InputObjectType): - color_input = SecondColorInput(required=True) - - color_input_value = None - - class CreatePaint(Mutation): - class Arguments: - color_input = ColorInput(required=True) - - color = RGB(required=True) - - def mutate(_, info, color_input): - nonlocal color_input_value - color_input_value = color_input.color_input.color - return CreatePaint(color=color_input_value) - - class MyMutation(ObjectType): - create_paint = CreatePaint.Field() - - class Query(ObjectType): - a = String() - - schema = Schema(query=Query, mutation=MyMutation) - result = schema.execute( - """ mutation MyMutation { - createPaint(colorInput: { colorInput: { color: RED } }) { - color - } - } - """, - middleware=[enum_value_convertor_middleware], - ) - assert not result.errors - assert result.data == {"createPaint": {"color": "RED"}} - - assert color_input_value == 1 - assert type(color_input_value) == int