Merge ~d0ugal/maas:assert-form-valid into maas:master
- Git
- lp:~d0ugal/maas
- assert-form-valid
- Merge into master
Proposed by
Dougal Matthews
Status: | Merged |
---|---|
Approved by: | Dougal Matthews |
Approved revision: | 8ed13ebbe2019317d864008658eb46f1b077a4fa |
Merge reported by: | MAAS Lander |
Merged at revision: | not available |
Proposed branch: | ~d0ugal/maas:assert-form-valid |
Merge into: | maas:master |
Diff against target: |
372 lines (+37/-37) 11 files modified
src/maasserver/forms/tests/test_clone.py (+1/-1) src/maasserver/forms/tests/test_machinewithmacaddresses.py (+7/-7) src/maasserver/forms/tests/test_parameters.py (+11/-11) src/maasserver/forms/tests/test_partition.py (+4/-4) src/maasserver/forms/tests/test_pods.py (+2/-2) src/maasserver/forms/tests/test_script.py (+4/-4) src/maasserver/forms/tests/test_user.py (+2/-2) src/maasserver/forms/tests/test_vlan.py (+1/-1) src/maasserver/forms/tests/test_zone.py (+1/-1) src/maasserver/tests/test_config_forms.py (+3/-3) src/maasserver/tests/test_node_constraint_filter_forms.py (+1/-1) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
MAAS Lander | Approve | ||
Björn Tillenius | Approve | ||
Review via email: mp+394344@code.launchpad.net |
Commit message
Improve the error message on tests that verify a form is valid
Without this change the error is something like "False is not True" and
provides you with no other context. This will include the form error
messages in the failure.
Description of the change
To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote : | # |
UNIT TESTS
-b assert-form-valid lp:~d0ugal/maas/+git/maas into -b master lp:~maas-committers/maas
STATUS: SUCCESS
COMMIT: 8ed13ebbe201931
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/src/maasserver/forms/tests/test_clone.py b/src/maasserver/forms/tests/test_clone.py |
2 | index 83b7035..7868ea8 100644 |
3 | --- a/src/maasserver/forms/tests/test_clone.py |
4 | +++ b/src/maasserver/forms/tests/test_clone.py |
5 | @@ -195,6 +195,6 @@ class TestCloneForm(MAASServerTestCase): |
6 | "interfaces": True, |
7 | }, |
8 | ) |
9 | - self.assertTrue(form.is_valid()) |
10 | + self.assertTrue(form.is_valid(), form.errors) |
11 | # An exception here will cause the test to fail. |
12 | form.save() |
13 | diff --git a/src/maasserver/forms/tests/test_machinewithmacaddresses.py b/src/maasserver/forms/tests/test_machinewithmacaddresses.py |
14 | index f851adf..716cc25 100644 |
15 | --- a/src/maasserver/forms/tests/test_machinewithmacaddresses.py |
16 | +++ b/src/maasserver/forms/tests/test_machinewithmacaddresses.py |
17 | @@ -157,7 +157,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
18 | ) |
19 | ) |
20 | |
21 | - self.assertTrue(form.is_valid()) |
22 | + self.assertTrue(form.is_valid(), form.errors) |
23 | |
24 | def test_mac_address_is_required(self): |
25 | form = MachineWithMACAddressesForm( |
26 | @@ -176,14 +176,14 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
27 | params["architecture"] = None |
28 | params["power_type"] = "ipmi" |
29 | form = MachineWithMACAddressesForm(data=params) |
30 | - self.assertTrue(form.is_valid()) |
31 | + self.assertTrue(form.is_valid(), form.errors) |
32 | |
33 | def test_save(self): |
34 | macs = ["aa:bb:cc:dd:ee:ff", "9a:bb:c3:33:e5:7f"] |
35 | form = MachineWithMACAddressesForm( |
36 | data=self.make_params(mac_addresses=macs) |
37 | ) |
38 | - self.assertTrue(form.is_valid()) |
39 | + self.assertTrue(form.is_valid(), form.errors) |
40 | node = form.save() |
41 | |
42 | self.assertIsNotNone(node.id) # The node is persisted. |
43 | @@ -194,7 +194,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
44 | |
45 | def test_form_without_hostname_generates_hostname(self): |
46 | form = MachineWithMACAddressesForm(data=self.make_params(hostname="")) |
47 | - self.assertTrue(form.is_valid()) |
48 | + self.assertTrue(form.is_valid(), form.errors) |
49 | node = form.save() |
50 | self.assertTrue(len(node.hostname) > 0) |
51 | |
52 | @@ -203,7 +203,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
53 | form = MachineWithMACAddressesForm( |
54 | data=self.make_params(hostname=ip_based_hostname) |
55 | ) |
56 | - self.assertTrue(form.is_valid()) |
57 | + self.assertTrue(form.is_valid(), form.errors) |
58 | node = form.save() |
59 | self.assertNotEqual("192-168-12-10", node.hostname) |
60 | |
61 | @@ -212,7 +212,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
62 | form = MachineWithMACAddressesForm( |
63 | data=self.make_params(hostname=ip_prefixed_hostname) |
64 | ) |
65 | - self.assertTrue(form.is_valid()) |
66 | + self.assertTrue(form.is_valid(), form.errors) |
67 | node = form.save() |
68 | self.assertEqual("192-168-12-10-extra", node.hostname) |
69 | |
70 | @@ -220,7 +220,7 @@ class MachineWithMACAddressesFormTest(MAASServerTestCase): |
71 | form = MachineWithMACAddressesForm( |
72 | data={"commission": True, **self.make_params()} |
73 | ) |
74 | - self.assertTrue(form.is_valid()) |
75 | + self.assertTrue(form.is_valid(), form.errors) |
76 | machine = form.save() |
77 | self.assertEquals(NODE_STATUS.COMMISSIONING, machine.status) |
78 | self.assertIsNotNone(machine.current_commissioning_script_set) |
79 | diff --git a/src/maasserver/forms/tests/test_parameters.py b/src/maasserver/forms/tests/test_parameters.py |
80 | index 57dc716..ac3eed3 100644 |
81 | --- a/src/maasserver/forms/tests/test_parameters.py |
82 | +++ b/src/maasserver/forms/tests/test_parameters.py |
83 | @@ -237,7 +237,7 @@ class TestParametersForm(MAASServerTestCase): |
84 | "runtime": {"type": "runtime"}, |
85 | } |
86 | ) |
87 | - self.assertTrue(form.is_valid()) |
88 | + self.assertTrue(form.is_valid(), form.errors) |
89 | |
90 | def test_validates_against_unsupported_parameter_types(self): |
91 | unsupported_type = factory.make_name("unsupported") |
92 | @@ -258,7 +258,7 @@ class TestParametersForm(MAASServerTestCase): |
93 | form = ParametersForm( |
94 | data={"storage": {"type": unsupported_type, "required": False}} |
95 | ) |
96 | - self.assertTrue(form.is_valid()) |
97 | + self.assertTrue(form.is_valid(), form.errors) |
98 | |
99 | def test_validates_storage_interface_type_has_no_min_or_max(self): |
100 | ptype = random.choice(["storage", "interface"]) |
101 | @@ -902,7 +902,7 @@ class TestParametersForm(MAASServerTestCase): |
102 | def test_input_url_defaults_empty_with_no_input(self): |
103 | script = factory.make_Script(parameters={"url": {"type": "url"}}) |
104 | form = ParametersForm(data={}, script=script, node=factory.make_Node()) |
105 | - self.assertTrue(form.is_valid()) |
106 | + self.assertTrue(form.is_valid(), form.errors) |
107 | self.assertDictEqual({}, form.cleaned_data["input"][0]) |
108 | |
109 | def test_input_url_allows_ipv4(self): |
110 | @@ -1074,7 +1074,7 @@ class TestParametersForm(MAASServerTestCase): |
111 | data={param_type: input}, script=script, node=factory.make_Node() |
112 | ) |
113 | |
114 | - self.assertTrue(form.is_valid()) |
115 | + self.assertTrue(form.is_valid(), form.errors) |
116 | self.assertEqual( |
117 | input, form.cleaned_data["input"][0][param_type]["value"] |
118 | ) |
119 | @@ -1091,7 +1091,7 @@ class TestParametersForm(MAASServerTestCase): |
120 | data={param_type: input}, script=script, node=factory.make_Node() |
121 | ) |
122 | |
123 | - self.assertTrue(form.is_valid()) |
124 | + self.assertTrue(form.is_valid(), form.errors) |
125 | self.assertEqual( |
126 | input, form.cleaned_data["input"][0][param_type]["value"] |
127 | ) |
128 | @@ -1106,7 +1106,7 @@ class TestParametersForm(MAASServerTestCase): |
129 | |
130 | form = ParametersForm(data={}, script=script, node=factory.make_Node()) |
131 | |
132 | - self.assertTrue(form.is_valid()) |
133 | + self.assertTrue(form.is_valid(), form.errors) |
134 | self.assertEqual( |
135 | default, form.cleaned_data["input"][0][param_type]["value"] |
136 | ) |
137 | @@ -1120,7 +1120,7 @@ class TestParametersForm(MAASServerTestCase): |
138 | |
139 | form = ParametersForm(data={}, script=script, node=factory.make_Node()) |
140 | |
141 | - self.assertTrue(form.is_valid()) |
142 | + self.assertTrue(form.is_valid(), form.errors) |
143 | self.assertEqual( |
144 | maas_auto_ipmi_user, |
145 | form.cleaned_data["input"][0]["maas_auto_ipmi_user"]["value"], |
146 | @@ -1139,7 +1139,7 @@ class TestParametersForm(MAASServerTestCase): |
147 | |
148 | form = ParametersForm(data={}, script=script, node=factory.make_Node()) |
149 | |
150 | - self.assertTrue(form.is_valid()) |
151 | + self.assertTrue(form.is_valid(), form.errors) |
152 | self.assertEqual( |
153 | maas_auto_ipmi_k_g_bmc_key, |
154 | form.cleaned_data["input"][0]["maas_auto_ipmi_k_g_bmc_key"][ |
155 | @@ -1203,7 +1203,7 @@ class TestParametersForm(MAASServerTestCase): |
156 | data={"choice": choice}, script=script, node=factory.make_Node() |
157 | ) |
158 | |
159 | - self.assertTrue(form.is_valid()) |
160 | + self.assertTrue(form.is_valid(), form.errors) |
161 | self.assertEqual( |
162 | choice, form.cleaned_data["input"][0]["choice"]["value"] |
163 | ) |
164 | @@ -1223,7 +1223,7 @@ class TestParametersForm(MAASServerTestCase): |
165 | data={"choice": choice}, script=script, node=factory.make_Node() |
166 | ) |
167 | |
168 | - self.assertTrue(form.is_valid()) |
169 | + self.assertTrue(form.is_valid(), form.errors) |
170 | self.assertEqual( |
171 | choice, form.cleaned_data["input"][0]["choice"]["value"] |
172 | ) |
173 | @@ -1247,7 +1247,7 @@ class TestParametersForm(MAASServerTestCase): |
174 | |
175 | form = ParametersForm(data={}, script=script, node=factory.make_Node()) |
176 | |
177 | - self.assertTrue(form.is_valid()) |
178 | + self.assertTrue(form.is_valid(), form.errors) |
179 | self.assertEqual( |
180 | default, form.cleaned_data["input"][0]["choice"]["value"] |
181 | ) |
182 | diff --git a/src/maasserver/forms/tests/test_partition.py b/src/maasserver/forms/tests/test_partition.py |
183 | index f1a7494..ee378d0 100644 |
184 | --- a/src/maasserver/forms/tests/test_partition.py |
185 | +++ b/src/maasserver/forms/tests/test_partition.py |
186 | @@ -78,7 +78,7 @@ class TestAddPartitionForm(MAASServerTestCase): |
187 | ) |
188 | data = {"size": size} |
189 | form = AddPartitionForm(block_device, data=data) |
190 | - self.assertTrue(form.is_valid()) |
191 | + self.assertTrue(form.is_valid(), form.errors) |
192 | partition = form.save() |
193 | self.assertEqual(rounded_size, partition.size) |
194 | |
195 | @@ -87,7 +87,7 @@ class TestAddPartitionForm(MAASServerTestCase): |
196 | part_uuid = "%s" % uuid.uuid4() |
197 | data = {"size": MIN_BLOCK_DEVICE_SIZE, "uuid": part_uuid} |
198 | form = AddPartitionForm(block_device, data=data) |
199 | - self.assertTrue(form.is_valid()) |
200 | + self.assertTrue(form.is_valid(), form.errors) |
201 | partition = form.save() |
202 | self.assertEqual(part_uuid, partition.uuid) |
203 | |
204 | @@ -95,7 +95,7 @@ class TestAddPartitionForm(MAASServerTestCase): |
205 | block_device = factory.make_PhysicalBlockDevice() |
206 | data = {"size": MIN_BLOCK_DEVICE_SIZE, "bootable": True} |
207 | form = AddPartitionForm(block_device, data=data) |
208 | - self.assertTrue(form.is_valid()) |
209 | + self.assertTrue(form.is_valid(), form.errors) |
210 | partition = form.save() |
211 | self.assertTrue(partition.bootable, "Partition should be bootable.") |
212 | |
213 | @@ -109,7 +109,7 @@ class TestAddPartitionForm(MAASServerTestCase): |
214 | ) |
215 | data = {"uuid": str(uuid.uuid4())} |
216 | form = AddPartitionForm(block_device, data=data) |
217 | - self.assertTrue(form.is_valid()) |
218 | + self.assertTrue(form.is_valid(), form.errors) |
219 | partition = form.save() |
220 | self.assertEqual( |
221 | partition.size, partition_table.get_size() - first_partition.size |
222 | diff --git a/src/maasserver/forms/tests/test_pods.py b/src/maasserver/forms/tests/test_pods.py |
223 | index b47d412..fe04080 100644 |
224 | --- a/src/maasserver/forms/tests/test_pods.py |
225 | +++ b/src/maasserver/forms/tests/test_pods.py |
226 | @@ -1001,7 +1001,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase): |
227 | request = MagicMock() |
228 | pod = make_pod_with_hints() |
229 | form = ComposeMachineForm(data={}, request=request, pod=pod) |
230 | - self.assertTrue(form.is_valid()) |
231 | + self.assertTrue(form.is_valid(), form.errors) |
232 | request_machine = form.get_requested_machine( |
233 | get_known_host_interfaces(pod) |
234 | ) |
235 | @@ -2067,7 +2067,7 @@ class TestComposeMachineForm(MAASTransactionServerTestCase): |
236 | mock_commissioning = self.patch(Machine, "start_commissioning") |
237 | |
238 | form = ComposeMachineForm(data={}, request=request, pod=pod) |
239 | - self.assertTrue(form.is_valid()) |
240 | + self.assertTrue(form.is_valid(), form.errors) |
241 | created_machine = form.compose() |
242 | self.assertThat( |
243 | created_machine, |
244 | diff --git a/src/maasserver/forms/tests/test_script.py b/src/maasserver/forms/tests/test_script.py |
245 | index cc6efb7..13df30f 100644 |
246 | --- a/src/maasserver/forms/tests/test_script.py |
247 | +++ b/src/maasserver/forms/tests/test_script.py |
248 | @@ -151,7 +151,7 @@ class TestScriptForm(MAASServerTestCase): |
249 | "default": True, |
250 | } |
251 | ) |
252 | - self.assertTrue(form.is_valid()) |
253 | + self.assertTrue(form.is_valid(), form.errors) |
254 | script = form.save() |
255 | self.assertFalse(script.default) |
256 | |
257 | @@ -317,7 +317,7 @@ class TestScriptForm(MAASServerTestCase): |
258 | data={"tags": ",".join(tags), "timeout": str(timeout)}, |
259 | instance=script, |
260 | ) |
261 | - self.assertTrue(form.is_valid()) |
262 | + self.assertTrue(form.is_valid(), form.errors) |
263 | script = form.save() |
264 | |
265 | self.assertThat(script.tags, ContainsAll(tags)) |
266 | @@ -596,7 +596,7 @@ class TestScriptForm(MAASServerTestCase): |
267 | "type": script_type, |
268 | } |
269 | ) |
270 | - self.assertTrue(form.is_valid()) |
271 | + self.assertTrue(form.is_valid(), form.errors) |
272 | script = form.save() |
273 | self.assertEquals(script_type, script.script_type) |
274 | |
275 | @@ -698,7 +698,7 @@ class TestScriptForm(MAASServerTestCase): |
276 | ), |
277 | } |
278 | ) |
279 | - self.assertTrue(form.is_valid()) |
280 | + self.assertTrue(form.is_valid(), form.errors) |
281 | |
282 | def test_errors_on_bad_yaml(self): |
283 | form = ScriptForm( |
284 | diff --git a/src/maasserver/forms/tests/test_user.py b/src/maasserver/forms/tests/test_user.py |
285 | index 0cb8f75..8cf451b 100644 |
286 | --- a/src/maasserver/forms/tests/test_user.py |
287 | +++ b/src/maasserver/forms/tests/test_user.py |
288 | @@ -38,7 +38,7 @@ class TestUniqueEmailForms(MAASServerTestCase): |
289 | email = "%s@example.com" % factory.make_string() |
290 | user = factory.make_User(email=email) |
291 | form = ProfileForm(instance=user, data={"email": email}) |
292 | - self.assertTrue(form.is_valid()) |
293 | + self.assertTrue(form.is_valid(), form.errors) |
294 | |
295 | def test_NewUserCreationForm_fails_validation_if_email_taken(self): |
296 | email = "%s@example.com" % factory.make_string() |
297 | @@ -70,7 +70,7 @@ class TestUniqueEmailForms(MAASServerTestCase): |
298 | instance=user, |
299 | data={"email": email, "username": factory.make_string()}, |
300 | ) |
301 | - self.assertTrue(form.is_valid()) |
302 | + self.assertTrue(form.is_valid(), form.errors) |
303 | |
304 | |
305 | class TestNewUserCreationForm(MAASServerTestCase): |
306 | diff --git a/src/maasserver/forms/tests/test_vlan.py b/src/maasserver/forms/tests/test_vlan.py |
307 | index 0b91be7..1f25e3a 100644 |
308 | --- a/src/maasserver/forms/tests/test_vlan.py |
309 | +++ b/src/maasserver/forms/tests/test_vlan.py |
310 | @@ -248,7 +248,7 @@ class TestVLANForm(MAASServerTestCase): |
311 | form = VLANForm( |
312 | instance=vlan, data={"secondary_rack": second_rack.system_id} |
313 | ) |
314 | - self.assertTrue(form.is_valid()) |
315 | + self.assertTrue(form.is_valid(), form.errors) |
316 | form.save() |
317 | vlan = reload_object(vlan) |
318 | self.assertEqual(second_rack, vlan.secondary_rack) |
319 | diff --git a/src/maasserver/forms/tests/test_zone.py b/src/maasserver/forms/tests/test_zone.py |
320 | index da2f041..859e156 100644 |
321 | --- a/src/maasserver/forms/tests/test_zone.py |
322 | +++ b/src/maasserver/forms/tests/test_zone.py |
323 | @@ -54,4 +54,4 @@ class TestZoneForm(MAASServerTestCase): |
324 | form = ZoneForm( |
325 | data={"name": factory.make_name("zone")}, instance=zone |
326 | ) |
327 | - self.assertTrue(form.is_valid()) |
328 | + self.assertTrue(form.is_valid(), form.errors) |
329 | diff --git a/src/maasserver/tests/test_config_forms.py b/src/maasserver/tests/test_config_forms.py |
330 | index 896bcab..53f2508 100644 |
331 | --- a/src/maasserver/tests/test_config_forms.py |
332 | +++ b/src/maasserver/tests/test_config_forms.py |
333 | @@ -83,7 +83,7 @@ class TestFormWithDictCharField(MAASServerTestCase): |
334 | |
335 | form = FakeForm(data) |
336 | |
337 | - self.assertTrue(form.is_valid()) |
338 | + self.assertTrue(form.is_valid(), form.errors) |
339 | self.assertEqual( |
340 | {"field_a": fielda_value, "field_b": "", "field_c": fieldc_value}, |
341 | form.cleaned_data["multi_field"], |
342 | @@ -139,7 +139,7 @@ class TestFormWithDictCharField(MAASServerTestCase): |
343 | |
344 | form = FakeFormSkip(data) |
345 | |
346 | - self.assertTrue(form.is_valid()) |
347 | + self.assertTrue(form.is_valid(), form.errors) |
348 | self.assertEqual( |
349 | {field_name: field_value}, form.cleaned_data["multi_field"] |
350 | ) |
351 | @@ -191,7 +191,7 @@ class TestFormWithDictCharField(MAASServerTestCase): |
352 | char_value = factory.make_string(10) |
353 | data = QueryDict("char_field=%s" % char_value) |
354 | form = FakeFormRequiredFalse(data) |
355 | - self.assertTrue(form.is_valid()) |
356 | + self.assertTrue(form.is_valid(), form.errors) |
357 | self.assertEqual( |
358 | {"char_field": char_value, "multi_field": None}, form.cleaned_data |
359 | ) |
360 | diff --git a/src/maasserver/tests/test_node_constraint_filter_forms.py b/src/maasserver/tests/test_node_constraint_filter_forms.py |
361 | index d58df42..96dd0a6 100644 |
362 | --- a/src/maasserver/tests/test_node_constraint_filter_forms.py |
363 | +++ b/src/maasserver/tests/test_node_constraint_filter_forms.py |
364 | @@ -262,7 +262,7 @@ class TestFilterNodeForm(MAASServerTestCase, FilterConstraintsMixin): |
365 | def test_no_constraints(self): |
366 | nodes = [factory.make_Node() for _ in range(3)] |
367 | form = FilterNodeForm(data={}) |
368 | - self.assertTrue(form.is_valid()) |
369 | + self.assertTrue(form.is_valid(), form.errors) |
370 | self.assertItemsEqual(nodes, Machine.objects.all()) |
371 | |
372 | def test_subnets_filters_by_name(self): |
+1