def test_run(self, *args): """Test multipath device populator.""" device_get_name = args[0] add_slave_devices = args[1] devicetree = DeviceTree() # set up some fake udev data to verify handling of specific entries data = Mock() _data = {"ID_WWN": "0x5000c50086fb75ca", "DM_UUID": "1-2-3-4"} def _getitem_(key, extra=None): return _data.get(key, extra) data.get = Mock(side_effect=_getitem_) data.__getitem__ = Mock(side_effect=_getitem_) device_name = "mpathtest" device_get_name.return_value = device_name slave_1 = Mock(tags=set()) slave_1.parents = [] slave_2 = Mock(tags=set()) slave_2.parents = [] devicetree._add_device(slave_1) devicetree._add_device(slave_2) add_slave_devices.return_value = [slave_1, slave_2] helper = self.helper_class(devicetree, data) device = helper.run() self.assertIsInstance(device, MultipathDevice) self.assertTrue(device.exists) self.assertEqual(device.name, device_name) self.assertEqual(device.wwn, _data["ID_WWN"]) self.assertTrue(device in devicetree.devices)