def test__extract_hctl_from_device_link(self, _populate_disks_entries_mock, readlink_mock): def readlink_side_effect(device_name): links = { "/sys/block/sda/device": "../../../0:0:0:0", "/sys/block/sdb/device": "0000:00/0000:00:10:0/host0/target0:0:0/0:0:0:0", "/sys/block/sdc/device": "platform/host1/session1/target1:0:0:1/1:0:0:3", "/sys/block/sdd/device": "../../../15:16:17:333", } return links[device_name] device_names = ["sda", "sdb", "sdc", "sdd"] expected_results = [HctlInfo(0, 0, 0, 0), HctlInfo(0, 0, 0, 0), HctlInfo(1, 0, 0, 3), HctlInfo(15, 16, 17, 333)] readlink_mock.side_effect = readlink_side_effect dq = LinuxDiskDeviceQueries() for expected_result, device_name in map(None, expected_results, device_names): self.assertEqual(expected_result, dq._extract_hctl_from_device_link(device_name))
def test__extract_hctl_from_device_link_returns_none_on_oserror(self, _populate_disks_entries_mock, readlink_mock): readlink_mock.side_effect = OSError() dq = LinuxDiskDeviceQueries() self.assertEqual(None, dq._extract_hctl_from_device_link("sda"))