Example #1
0
 def test_accepts_usable_architecture(self):
     arch = make_usable_architecture(self)
     form = MachineForm(data={
         "hostname": factory.make_name("host"),
         "architecture": arch
     })
     self.assertTrue(form.is_valid(), form._errors)
Example #2
0
 def test_rejects_when_validate_license_key_returns_False(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     release = make_rpc_release(requires_license_key=True)
     osystem = make_rpc_osystem(releases=[release])
     patch_usable_osystems(self, osystems=[osystem])
     license_key = factory.make_name('key')
     mock_validate = self.patch(forms, 'validate_license_key')
     mock_validate.return_value = False
     form = MachineForm(data={
         'hostname':
         factory.make_name('host'),
         'architecture':
         make_usable_architecture(self),
         'osystem':
         osystem['name'],
         'distro_series':
         '%s/%s*' % (osystem['name'], release['name']),
         'license_key':
         license_key,
     },
                        instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['license_key'], form._errors.keys())
Example #3
0
 def test_accepts_usable_architecture(self):
     arch = make_usable_architecture(self)
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': arch,
     })
     self.assertTrue(form.is_valid(), form._errors)
Example #4
0
 def test_rejects_unusable_architecture(self):
     patch_usable_architectures(self)
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': factory.make_name('arch'),
         })
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['architecture'], form._errors.keys())
Example #5
0
 def test_rejects_unusable_architecture(self):
     patch_usable_architectures(self)
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": factory.make_name("arch"),
         })
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(["architecture"], form._errors.keys())
Example #6
0
 def test_set_distro_series_doesnt_allow_short_ubuntu_series(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     make_usable_osystem(self, osystem_name='ubuntu', releases=['trusty'])
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
     },
                        instance=node)
     form.set_distro_series('trust')
     self.assertFalse(form.is_valid())
Example #7
0
 def test_accepts_osystem(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     osystem = make_usable_osystem(self)
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': osystem['name'],
     },
                        instance=node)
     self.assertTrue(form.is_valid(), form._errors)
Example #8
0
 def test_rejects_invalid_osystem(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     patch_usable_osystems(self)
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': factory.make_name('os'),
     },
                        instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['osystem'], form._errors.keys())
Example #9
0
 def test_form_validates_hwe_kernel_by_passing_invalid_config(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     osystem = make_usable_osystem(self)
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': osystem['name'],
         'min_hwe_kernel': 'hwe-t',
         'hwe_kernel': 'hwe-p',
     },
                        instance=node)
     self.assertEqual(form.is_valid(), False)
Example #10
0
 def test_accepts_osystem(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
             "osystem": osystem["name"],
         },
         instance=node,
     )
     self.assertTrue(form.is_valid(), form._errors)
Example #11
0
 def test_set_distro_series_doesnt_allow_short_ubuntu_series(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     make_usable_osystem(self, osystem_name="ubuntu", releases=["trusty"])
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
         },
         instance=node,
     )
     form.set_distro_series("trust")
     self.assertFalse(form.is_valid())
Example #12
0
 def test_accepts_osystem_distro_series(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     release = osystem['default_release']
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': osystem['name'],
         'distro_series': '%s/%s' % (osystem['name'], release),
         },
         instance=node)
     self.assertTrue(form.is_valid(), form._errors)
Example #13
0
 def test_rejects_invalid_osystem_distro_series(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     release = factory.make_name('release')
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': osystem['name'],
         'distro_series': '%s/%s' % (osystem['name'], release),
         },
         instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['distro_series'], form._errors.keys())
Example #14
0
 def test_rejects_mismatch_osystem_distro_series(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     osystem = make_usable_osystem(self)
     release = osystem['default_release']
     invalid = factory.make_name('invalid_os')
     form = MachineForm(data={
         'hostname': factory.make_name('host'),
         'architecture': make_usable_architecture(self),
         'osystem': osystem['name'],
         'distro_series': '%s/%s' % (invalid, release),
     },
                        instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['distro_series'], form._errors.keys())
Example #15
0
 def test_rejects_invalid_osystem(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     patch_usable_osystems(self)
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
             "osystem": factory.make_name("os"),
         },
         instance=node,
     )
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(["osystem"], form._errors.keys())
Example #16
0
 def test_form_validates_hwe_kernel_by_passing_invalid_config(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
             "osystem": osystem["name"],
             "min_hwe_kernel": "hwe-t",
             "hwe_kernel": "hwe-p",
         },
         instance=node,
     )
     self.assertEqual(form.is_valid(), False)
Example #17
0
 def test_accepts_osystem_distro_series(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     release = osystem["default_release"]
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
             "osystem": osystem["name"],
             "distro_series": "%s/%s" % (osystem["name"], release),
         },
         instance=node,
     )
     self.assertTrue(form.is_valid(), form._errors)
Example #18
0
 def test_rejects_invalid_osystem_distro_series(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = make_usable_osystem(self)
     release = factory.make_name("release")
     form = MachineForm(
         data={
             "hostname": factory.make_name("host"),
             "architecture": make_usable_architecture(self),
             "osystem": osystem["name"],
             "distro_series": "%s/%s" % (osystem["name"], release),
         },
         instance=node,
     )
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(["distro_series"], form._errors.keys())
Example #19
0
 def test_rejects_when_validate_license_key_for_raise_no_os(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = factory.make_name('osystem')
     release = factory.make_name('release')
     distro_series = '%s/%s' % (osystem, release)
     make_osystem(self, osystem, [release])
     factory.make_BootResource(name=distro_series)
     license_key = factory.make_name('key')
     mock_validate_for = self.patch(forms, 'validate_license_key_for')
     mock_validate_for.side_effect = NoSuchOperatingSystem()
     form = MachineForm(data={
         'architecture': make_usable_architecture(self),
         'osystem': osystem,
         'distro_series': distro_series,
         'license_key': license_key,
     },
                        instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['license_key'], form._errors.keys())
Example #20
0
 def test_rejects_when_validate_license_key_for_raise_no_os(self):
     self.client_log_in()
     node = factory.make_Node(owner=self.logged_in_user)
     release = make_rpc_release(requires_license_key=True)
     osystem = make_rpc_osystem(releases=[release])
     patch_usable_osystems(self, osystems=[osystem])
     license_key = factory.make_name('key')
     mock_validate_for = self.patch(forms, 'validate_license_key_for')
     mock_validate_for.side_effect = NoSuchOperatingSystem()
     form = MachineForm(data={
         'architecture':
         make_usable_architecture(self),
         'osystem':
         osystem['name'],
         'distro_series':
         '%s/%s*' % (osystem['name'], release['name']),
         'license_key':
         license_key,
     },
                        instance=node)
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(['license_key'], form._errors.keys())
Example #21
0
 def test_rejects_when_validate_license_key_for_raise_no_os(self):
     user = factory.make_User()
     self.client.login(user=user)
     node = factory.make_Node(owner=user)
     osystem = factory.make_name("osystem")
     release = factory.make_name("release")
     distro_series = "%s/%s" % (osystem, release)
     make_osystem(self, osystem, [release])
     factory.make_BootResource(name=distro_series)
     license_key = factory.make_name("key")
     mock_validate_for = self.patch(forms, "validate_license_key_for")
     mock_validate_for.side_effect = NoSuchOperatingSystem()
     form = MachineForm(
         data={
             "architecture": make_usable_architecture(self),
             "osystem": osystem,
             "distro_series": distro_series,
             "license_key": license_key,
         },
         instance=node,
     )
     self.assertFalse(form.is_valid())
     self.assertItemsEqual(["license_key"], form._errors.keys())
Example #22
0
 def test_form_validates_min_hwe_kernel_by_passing_invalid_config(self):
     node = factory.make_Node(min_hwe_kernel='hwe-t')
     form = MachineForm(instance=node)
     self.assertEqual(form.is_valid(), False)