def test_update_does_not_raise_validation_error_for_invalid_arch(self): user = factory.make_admin() handler = DeviceHandler(user, {}) node = factory.make_Node(interface=True, node_type=NODE_TYPE.DEVICE) node_data = self.dehydrate_device(node, user) arch = factory.make_name("arch") node_data["architecture"] = arch handler.update(node_data)
def test_update_owned_with_rbac(self): self.useFixture(RBACEnabled()) user = factory.make_User(is_local=False) node = factory.make_Node(owner=user, node_type=NODE_TYPE.DEVICE) handler = DeviceHandler(user, {}, None) new_hostname = factory.make_name("hostname") updated_node = handler.update({ "system_id": node.system_id, 'hostname': new_hostname }) self.assertEqual(updated_node['hostname'], new_hostname)
def test_update_owned_with_rbac(self): rbac = self.useFixture(RBACEnabled()) user = factory.make_User(is_local=False) rbac.store.allow(user.username, factory.make_ResourcePool(), "admin-machines") node = factory.make_Node(owner=user, node_type=NODE_TYPE.DEVICE) handler = DeviceHandler(user, {}, None) new_hostname = factory.make_name("hostname") updated_node = handler.update({ "system_id": node.system_id, "hostname": new_hostname }) self.assertEqual(updated_node["hostname"], new_hostname)
def test_update_updates_node(self): user = factory.make_admin() handler = DeviceHandler(user, {}) node = factory.make_Node(interface=True, node_type=NODE_TYPE.DEVICE) node_data = self.dehydrate_device(node, user) new_zone = factory.make_Zone() new_hostname = factory.make_name("hostname") node_data["hostname"] = new_hostname node_data["zone"] = { "name": new_zone.name, } updated_node = handler.update(node_data) self.assertEqual(updated_node["hostname"], new_hostname) self.assertEqual(updated_node["zone"]["id"], new_zone.id)
def test_update_updates_node_non_admin_update_own(self): user = factory.make_User() handler = DeviceHandler(user, {}, None) node = factory.make_Node(owner=user, interface=True, node_type=NODE_TYPE.DEVICE) node_data = self.dehydrate_device(node, user) new_zone = factory.make_Zone() new_hostname = factory.make_name("hostname") new_tags = [factory.make_name("tag") for _ in range(3)] node_data["hostname"] = new_hostname node_data["zone"] = {"name": new_zone.name} node_data["tags"] = new_tags updated_node = handler.update(node_data) self.assertEqual(updated_node["hostname"], new_hostname) self.assertEqual(updated_node["zone"]["id"], new_zone.id) self.assertItemsEqual(updated_node["tags"], new_tags)