@@ -13,7 +13,7 @@ class MyForm(forms.Form):
1313class PetForm (forms .ModelForm ):
1414 class Meta :
1515 model = Pet
16- fields = ( "name" ,)
16+ fields = '__all__'
1717
1818
1919def test_needs_form_class ():
@@ -51,6 +51,30 @@ class Meta:
5151 self .assertEqual (PetMutation ._meta .return_field_name , "pet" )
5252 self .assertIn ("pet" , PetMutation ._meta .fields )
5353
54+ def test_default_input_meta_fields (self ):
55+ class PetMutation (DjangoModelFormMutation ):
56+ class Meta :
57+ form_class = PetForm
58+
59+ self .assertEqual (PetMutation ._meta .model , Pet )
60+ self .assertEqual (PetMutation ._meta .return_field_name , "pet" )
61+ self .assertIn ("name" , PetMutation .Input ._meta .fields )
62+ self .assertIn ("client_mutation_id" , PetMutation .Input ._meta .fields )
63+ self .assertIn ("id" , PetMutation .Input ._meta .fields )
64+
65+ def test_exclude_fields_input_meta_fields (self ):
66+ class PetMutation (DjangoModelFormMutation ):
67+ class Meta :
68+ form_class = PetForm
69+ exclude_fields = ['id' ]
70+
71+ self .assertEqual (PetMutation ._meta .model , Pet )
72+ self .assertEqual (PetMutation ._meta .return_field_name , "pet" )
73+ self .assertIn ("name" , PetMutation .Input ._meta .fields )
74+ self .assertIn ("age" , PetMutation .Input ._meta .fields )
75+ self .assertIn ("client_mutation_id" , PetMutation .Input ._meta .fields )
76+ self .assertNotIn ("id" , PetMutation .Input ._meta .fields )
77+
5478 def test_return_field_name_is_camelcased (self ):
5579 class PetMutation (DjangoModelFormMutation ):
5680 class Meta :
@@ -76,9 +100,9 @@ class PetMutation(DjangoModelFormMutation):
76100 class Meta :
77101 form_class = PetForm
78102
79- pet = Pet .objects .create (name = "Axel" )
103+ pet = Pet .objects .create (name = "Axel" , age = 10 )
80104
81- result = PetMutation .mutate_and_get_payload (None , None , id = pet .pk , name = "Mia" )
105+ result = PetMutation .mutate_and_get_payload (None , None , id = pet .pk , name = "Mia" , age = 10 )
82106
83107 self .assertEqual (Pet .objects .count (), 1 )
84108 pet .refresh_from_db ()
@@ -90,11 +114,12 @@ class PetMutation(DjangoModelFormMutation):
90114 class Meta :
91115 form_class = PetForm
92116
93- result = PetMutation .mutate_and_get_payload (None , None , name = "Mia" )
117+ result = PetMutation .mutate_and_get_payload (None , None , name = "Mia" , age = 10 )
94118
95119 self .assertEqual (Pet .objects .count (), 1 )
96120 pet = Pet .objects .get ()
97121 self .assertEqual (pet .name , "Mia" )
122+ self .assertEqual (pet .age , 10 )
98123 self .assertEqual (result .errors , [])
99124
100125 def test_model_form_mutation_mutate_invalid_form (self ):
@@ -107,6 +132,10 @@ class Meta:
107132 # A pet was not created
108133 self .assertEqual (Pet .objects .count (), 0 )
109134
110- self .assertEqual (len (result .errors ), 1 )
111- self .assertEqual (result .errors [0 ].field , "name" )
135+
136+ fields_w_error = [e .field for e in result .errors ]
137+ self .assertEqual (len (result .errors ), 2 )
138+ self .assertIn ("name" , fields_w_error )
112139 self .assertEqual (result .errors [0 ].messages , ["This field is required." ])
140+ self .assertIn ("age" , fields_w_error )
141+ self .assertEqual (result .errors [1 ].messages , ["This field is required." ])
0 commit comments