From 37b90de09cc920934802a1680fa3d371ee3b1d9d Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Thu, 3 Jan 2019 11:32:18 -0500 Subject: [PATCH 1/4] Remove mirror of input fields --- graphene_django/forms/mutation.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/graphene_django/forms/mutation.py b/graphene_django/forms/mutation.py index 63ea089..273df8b 100644 --- a/graphene_django/forms/mutation.py +++ b/graphene_django/forms/mutation.py @@ -103,7 +103,7 @@ class DjangoFormMutation(BaseDjangoFormMutation): @classmethod def __init_subclass_with_meta__( - cls, form_class=None, only_fields=(), exclude_fields=(), **options + cls, form_class=None, mirror_input=False, only_fields=(), exclude_fields=(), **options ): if not form_class: @@ -111,7 +111,10 @@ class DjangoFormMutation(BaseDjangoFormMutation): form = form_class() input_fields = fields_for_form(form, only_fields, exclude_fields) - output_fields = fields_for_form(form, only_fields, exclude_fields) + if mirror_input: + output_fields = fields_for_form(form, only_fields, exclude_fields) + else: + output_fields = {} _meta = DjangoFormMutationOptions(cls) _meta.form_class = form_class From e150c419d16c7159554c64521279f6ee7648dc0e Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Thu, 3 Jan 2019 11:32:36 -0500 Subject: [PATCH 2/4] Add tests to DjangoFormMutation --- graphene_django/forms/tests/test_mutation.py | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/graphene_django/forms/tests/test_mutation.py b/graphene_django/forms/tests/test_mutation.py index df0ffd5..1f39afe 100644 --- a/graphene_django/forms/tests/test_mutation.py +++ b/graphene_django/forms/tests/test_mutation.py @@ -139,3 +139,36 @@ class ModelFormMutationTests(TestCase): self.assertEqual(result.errors[0].messages, ["This field is required."]) self.assertIn("age", fields_w_error) self.assertEqual(result.errors[1].messages, ["This field is required."]) + + +class FormMutationTests(TestCase): + def test_default_meta_fields(self): + class MyMutation(DjangoFormMutation): + class Meta: + form_class = MyForm + self.assertNotIn("text", MyMutation._meta.fields) + + def test_mirror_meta_fields(self): + class MyMutation(DjangoFormMutation): + class Meta: + form_class = MyForm + mirror_input = True + + self.assertIn("text", MyMutation._meta.fields) + + def test_default_input_meta_fields(self): + class MyMutation(DjangoFormMutation): + class Meta: + form_class = MyForm + + self.assertIn("client_mutation_id", MyMutation.Input._meta.fields) + self.assertIn("text", MyMutation.Input._meta.fields) + + def test_exclude_fields_input_meta_fields(self): + class MyMutation(DjangoFormMutation): + class Meta: + form_class = MyForm + exclude_fields = ['text'] + + self.assertNotIn("text", MyMutation.Input._meta.fields) + self.assertIn("client_mutation_id", MyMutation.Input._meta.fields) From 114202b970bbf6081cee5ed470162dfa952f1dcd Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Wed, 27 Feb 2019 16:11:14 -0500 Subject: [PATCH 3/4] Force push --- graphene_django/fields.py | 1 + 1 file changed, 1 insertion(+) diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 1ecce45..e670316 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -151,3 +151,4 @@ class DjangoConnectionField(ConnectionField): self.max_limit, self.enforce_first_or_last, ) + From 6e087c4bd4f50c8ccae9cdbcaecdaea3d9d0f1fb Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Wed, 27 Feb 2019 16:11:25 -0500 Subject: [PATCH 4/4] Remove change --- graphene_django/fields.py | 1 - 1 file changed, 1 deletion(-) diff --git a/graphene_django/fields.py b/graphene_django/fields.py index e670316..1ecce45 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -151,4 +151,3 @@ class DjangoConnectionField(ConnectionField): self.max_limit, self.enforce_first_or_last, ) -