def _ctor_kwargs(self): kwargs = super(LVMLogicalVolumeDeviceMethodsTestCase, self)._ctor_kwargs() vg_mock = Mock(name="testvg", spec=LVMVolumeGroupDevice) vg_mock.name = "testvg" vg_mock.pvs = vg_mock.parents = [Mock(name="pv.1", protected=False)] vg_mock.protected = False vg_mock.readonly = False kwargs["parents"] = [vg_mock] kwargs["pvs"] = [] return kwargs
def test_run(self, *args): """Test md format populator.""" get_device_by_uuid = args[0] get_devices = args[1] device_is_md = args[2] devicetree = DeviceTree() data = dict() device = Mock() device.name = sentinel.dev1_name device.parents = [] device.size = Size("10g") devicetree._add_device(device) # pylint: disable=attribute-defined-outside-init self._examine = blockdev.md.examine blockdev.md.examine = Mock() self.addCleanup(self._clean_up) # member belongs to a valid array which is already in the tree md_info = Mock() md_info.uuid = sentinel.md_uuid blockdev.md.examine.return_value = md_info md_device = Mock() get_device_by_uuid.return_value = md_device with patch("blivet.udev.device_get_format", return_value=self.udev_type): helper = self.helper_class(devicetree, data, device) helper.run() self.assertEqual( device.format.type, self.blivet_type, msg="Wrong format type after FormatPopulator.run on %s" % self.udev_type) self.assertEqual(get_device_by_uuid.call_count, 1) get_device_by_uuid.assert_called_with(md_info.uuid, incomplete=True) md_device.parents.append.assert_called_once_with(device) # pylint: disable=no-member get_device_by_uuid.reset_mock() get_device_by_uuid.return_value = None # first of two members belonging to a valid array which is not in the tree array_name = "mdtest" md_info.level = "raid1" md_info.num_devices = 2 md_info.metadata = "1.2" md_info.device = "/dev/md/" + array_name blockdev.md.examine.return_value = md_info device_is_md.return_value = True md_udev = { "MD_LEVEL": md_info.level, "MD_UUID": sentinel.md_uuid, "MD_DEVNAME": array_name } get_devices.return_value = [md_udev] with patch("blivet.udev.device_get_format", return_value=self.udev_type): helper = self.helper_class(devicetree, data, device) helper.run() self.assertEqual( device.format.type, self.blivet_type, msg="Wrong format type after FormatPopulator.run on %s" % self.udev_type) self.assertEqual(get_device_by_uuid.call_count, 1) get_device_by_uuid.assert_called_with(md_info.uuid, incomplete=True) array = devicetree.get_device_by_name(array_name) self.assertTrue(array is None) array = devicetree.get_device_by_name(array_name, incomplete=True) self.assertTrue(array is not None) self.assertFalse(array.complete) self.assertEqual(array.name, array_name) get_device_by_uuid.reset_mock() array = devicetree.get_device_by_name(array_name, incomplete=True) get_device_by_uuid.return_value = array # second of two members belonging to a valid array device2 = Mock() device2.name = sentinel.dev2_name device2.parents = [] device2.size = Size("10g") devicetree._add_device(device2) with patch("blivet.udev.device_get_format", return_value=self.udev_type): helper = self.helper_class(devicetree, data, device2) helper.run() self.assertEqual( device2.format.type, self.blivet_type, msg="Wrong format type after FormatPopulator.run on %s" % self.udev_type) self.assertEqual(get_device_by_uuid.call_count, 1) # one for the array get_device_by_uuid.assert_called_with(md_info.uuid, incomplete=True) array = devicetree.get_device_by_name(array_name) self.assertTrue(array is not None) self.assertTrue(array.complete) self.assertEqual(array.name, array_name)