~julian-edwards/maas/boot_images_beat

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_forms.py

  • Committer: Tarmac
  • Author(s): Jeroen Vermeulen
  • Date: 2012-10-30 09:14:21 UTC
  • mfrom: (1312.2.1 bug-1070774)
  • Revision ID: tarmac-20121030091421-7kdqhx0rr558ymmi
[r=jtv][bug=1070774][author=jtv] Forward-port r1276 from 1.2: Disallow changes to Node.hostname on nodes that are currently allocated. The change would confuse Juju, which will still refer to the node by its old hostname.

Show diffs side-by-side

added added

removed removed

Lines of Context:
334
334
            after_commissioning_action, node.after_commissioning_action)
335
335
        self.assertEqual(power_type, node.power_type)
336
336
 
 
337
    def test_AdminNodeForm_refuses_to_update_hostname_on_allocated_node(self):
 
338
        old_name = factory.make_name('old-hostname')
 
339
        new_name = factory.make_name('new-hostname')
 
340
        node = factory.make_node(
 
341
            hostname=old_name, status=NODE_STATUS.ALLOCATED)
 
342
        form = AdminNodeForm(
 
343
            data={
 
344
                'hostname': new_name,
 
345
                'architecture': node.architecture,
 
346
                },
 
347
            instance=node)
 
348
        self.assertFalse(form.is_valid())
 
349
        self.assertEqual(
 
350
            ["Can't change hostname to %s: node is in use." % new_name],
 
351
            form._errors['hostname'])
 
352
 
 
353
    def test_AdminNodeForm_accepts_unchanged_hostname_on_allocated_node(self):
 
354
        old_name = factory.make_name('old-hostname')
 
355
        node = factory.make_node(
 
356
            hostname=old_name, status=NODE_STATUS.ALLOCATED)
 
357
        form = AdminNodeForm(
 
358
            data={
 
359
                'hostname': old_name,
 
360
                'architecture': node.architecture,
 
361
            },
 
362
            instance=node)
 
363
        self.assertTrue(form.is_valid(), form._errors)
 
364
        form.save()
 
365
        self.assertEqual(old_name, reload_object(node).hostname)
 
366
 
 
367
    def test_AdminNodeForm_accepts_omitted_hostname_on_allocated_node(self):
 
368
        node = factory.make_node(status=NODE_STATUS.ALLOCATED)
 
369
        old_name = node.hostname
 
370
        form = AdminNodeForm(
 
371
            data={
 
372
                'architecture': node.architecture,
 
373
                },
 
374
            instance=node)
 
375
        self.assertTrue(form.is_valid())
 
376
        form.save()
 
377
        self.assertEqual(old_name, reload_object(node).hostname)
 
378
 
337
379
    def test_remove_None_values_removes_None_values_in_dict(self):
338
380
        random_input = factory.getRandomString()
339
381
        self.assertEqual(