def test_GET(self): node_device = factory.make_NodeDevice() response = self.client.get(self.get_node_device_uri(node_device)) self.assertThat(response, HasStatusCode(http.client.OK)) parsed_result = json_load_bytes(response.content) self.assertEqual( { "id": node_device.id, "bus": node_device.bus, "bus_name": node_device.get_bus_display(), "hardware_type": node_device.hardware_type, "hardware_type_name": node_device.get_hardware_type_display(), "system_id": node_device.node.system_id, "numa_node": node_device.numa_node.index, "physical_blockdevice": None, "physical_interface": None, "vendor_id": node_device.vendor_id, "product_id": node_device.product_id, "vendor_name": node_device.vendor_name, "product_name": node_device.product_name, "commissioning_driver": node_device.commissioning_driver, "bus_number": node_device.bus_number, "device_number": node_device.device_number, "pci_address": node_device.pci_address, "resource_uri": self.get_node_device_uri(node_device, True), }, parsed_result, )
def test_DELETE(self): self.become_admin() node_device = factory.make_NodeDevice() response = self.client.delete(self.get_node_device_uri(node_device)) self.assertThat(response, HasStatusCode(http.client.NO_CONTENT)) self.assertIsNone(reload_object(node_device))
def test_hander_path(self): node_device = factory.make_NodeDevice() self.assertEqual( "/MAAS/api/2.0/nodes/%s/devices/%s/" % (node_device.node.system_id, node_device.id), self.get_node_device_uri(node_device, True), )
def test_GET_filter_vendor_id(self): vendor_id = factory.make_hex_string(4) node_devices = [ factory.make_NodeDevice(node=self.node, vendor_id=vendor_id) for _ in range(3) ] response = self.client.get(self.get_script_results_uri(), {"vendor_id": vendor_id}) self.assertThat(response, HasStatusCode(http.client.OK)) parsed_results = json_load_bytes(response.content) self.assertCountEqual( [node_device.id for node_device in node_devices], [node_device["id"] for node_device in parsed_results], )
def test_GET_filter_product_name(self): product_name = factory.make_name("product_name") node_devices = [ factory.make_NodeDevice(node=self.node, product_name=product_name) for _ in range(3) ] response = self.client.get(self.get_script_results_uri(), {"product_name": product_name}) self.assertThat(response, HasStatusCode(http.client.OK)) parsed_results = json_load_bytes(response.content) self.assertCountEqual( [node_device.id for node_device in node_devices], [node_device["id"] for node_device in parsed_results], )
def test_GET_filter_commissioning_driver(self): commissioning_driver = factory.make_name("commissioning_driver") node_devices = [ factory.make_NodeDevice(node=self.node, commissioning_driver=commissioning_driver) for _ in range(3) ] response = self.client.get( self.get_script_results_uri(), {"commissioning_driver": commissioning_driver}, ) self.assertThat(response, HasStatusCode(http.client.OK)) parsed_results = json_load_bytes(response.content) self.assertCountEqual( [node_device.id for node_device in node_devices], [node_device["id"] for node_device in parsed_results], )
def create_node_device(self, params=None): if params is None: params = {} return factory.make_NodeDevice(**params)
def test_DELETE_admin_only(self): node_device = factory.make_NodeDevice() response = self.client.delete(self.get_node_device_uri(node_device)) self.assertThat(response, HasStatusCode(http.client.FORBIDDEN)) self.assertIsNotNone(reload_object(node_device))
def test_save_validates_no_pci_address_on_usb(self): node_device = factory.make_NodeDevice(bus=NODE_DEVICE_BUS.PCIE) node_device.bus = NODE_DEVICE_BUS.USB self.assertRaises(ValidationError, node_device.save)