@@ -13,7 +13,7 @@ class MyForm(forms.Form):
13
13
class PetForm (forms .ModelForm ):
14
14
class Meta :
15
15
model = Pet
16
- fields = ( "name" ,)
16
+ fields = '__all__'
17
17
18
18
19
19
def test_needs_form_class ():
@@ -51,6 +51,30 @@ class Meta:
51
51
self .assertEqual (PetMutation ._meta .return_field_name , "pet" )
52
52
self .assertIn ("pet" , PetMutation ._meta .fields )
53
53
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
+
54
78
def test_return_field_name_is_camelcased (self ):
55
79
class PetMutation (DjangoModelFormMutation ):
56
80
class Meta :
@@ -76,9 +100,9 @@ class PetMutation(DjangoModelFormMutation):
76
100
class Meta :
77
101
form_class = PetForm
78
102
79
- pet = Pet .objects .create (name = "Axel" )
103
+ pet = Pet .objects .create (name = "Axel" , age = 10 )
80
104
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 )
82
106
83
107
self .assertEqual (Pet .objects .count (), 1 )
84
108
pet .refresh_from_db ()
@@ -90,11 +114,12 @@ class PetMutation(DjangoModelFormMutation):
90
114
class Meta :
91
115
form_class = PetForm
92
116
93
- result = PetMutation .mutate_and_get_payload (None , None , name = "Mia" )
117
+ result = PetMutation .mutate_and_get_payload (None , None , name = "Mia" , age = 10 )
94
118
95
119
self .assertEqual (Pet .objects .count (), 1 )
96
120
pet = Pet .objects .get ()
97
121
self .assertEqual (pet .name , "Mia" )
122
+ self .assertEqual (pet .age , 10 )
98
123
self .assertEqual (result .errors , [])
99
124
100
125
def test_model_form_mutation_mutate_invalid_form (self ):
@@ -107,6 +132,10 @@ class Meta:
107
132
# A pet was not created
108
133
self .assertEqual (Pet .objects .count (), 0 )
109
134
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 )
112
139
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