def test_recursive_remove(self): devicetree = DeviceTree() devicetree._add_device(self.disk1) devicetree._add_device(self.partition1) devicetree._add_device(self.partition2) devicetree._add_device(self.disk2) devicetree._add_device(self.vg) devicetree._add_device(self.lv) self.assertIn(self.disk1, devicetree.devices) self.assertIn(self.partition1, devicetree.devices) self.assertIn(self.lv, devicetree.devices) self.assertEqual(devicetree.get_device_by_name(self.disk1.name), self.disk1) self.assertIsNotNone(devicetree.get_device_by_name(self.partition1.name)) self.assertIsNotNone(devicetree.get_device_by_name(self.partition1.name, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_name(self.lv.name, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_path(self.lv.path, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_id(self.partition2.id, hidden=True, incomplete=True)) self.assertEqual(len(devicetree.get_dependent_devices(self.disk1)), 4) with patch('blivet.devicetree.ActionDestroyFormat.apply'): devicetree.recursive_remove(self.disk1) self.assertTrue(self.disk1 in devicetree.devices) self.assertFalse(self.partition1 in devicetree.devices) self.assertFalse(self.partition2 in devicetree.devices) self.assertFalse(self.vg in devicetree.devices) self.assertFalse(self.lv in devicetree.devices)
def test_recursive_remove(self): devicetree = DeviceTree() devicetree._add_device(self.disk1) devicetree._add_device(self.partition1) devicetree._add_device(self.partition2) devicetree._add_device(self.disk2) devicetree._add_device(self.vg) devicetree._add_device(self.lv) self.assertIn(self.disk1, devicetree.devices) self.assertIn(self.partition1, devicetree.devices) self.assertIn(self.lv, devicetree.devices) self.assertEqual(devicetree.get_device_by_name(self.disk1.name), self.disk1) self.assertIsNotNone(devicetree.get_device_by_name(self.partition1.name)) self.assertIsNotNone(devicetree.get_device_by_name(self.partition1.name, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_name(self.lv.name, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_path(self.lv.path, hidden=True)) self.assertIsNotNone(devicetree.get_device_by_id(self.partition2.id, hidden=True, incomplete=True)) self.assertEqual(len(devicetree.get_dependent_devices(self.disk1)), 4) with patch('blivet.devicetree.ActionDestroyFormat.apply'): devicetree.recursive_remove(self.disk1) self.assertTrue(self.disk1 in devicetree.devices) self.assertFalse(self.partition1 in devicetree.devices) self.assertFalse(self.partition2 in devicetree.devices) self.assertFalse(self.vg in devicetree.devices) self.assertFalse(self.lv in devicetree.devices)
def test_recursive_remove(self): dt = DeviceTree() dev1 = StorageDevice("dev1", exists=False, parents=[]) dev2 = StorageDevice("dev2", exists=False, parents=[dev1]) dt._add_device(dev1) dt._add_device(dev2) # normal self.assertTrue(dev1 in dt.devices) self.assertTrue(dev2 in dt.devices) self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1) self.assertFalse(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertNotEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # remove_device clears descendants and formatting but preserves the device dev1.format = get_format("swap") self.assertEqual(dev1.format.type, "swap") self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1, remove_device=False) self.assertTrue(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertEqual(dev1.format.type, None) self.assertNotEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # actions=False performs the removals without scheduling actions self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1, actions=False) self.assertFalse(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # modparent only works when actions=False is passed with patch.object(dt, "_remove_device") as remove_device: dt.recursive_remove(dev1, actions=False) remove_device.assert_called_with(dev1, modparent=True) dt.recursive_remove(dev1, actions=False, modparent=False) remove_device.assert_called_with(dev1, modparent=False)
def test_recursive_remove(self): dt = DeviceTree() dev1 = StorageDevice("dev1", exists=False, parents=[]) dev2 = StorageDevice("dev2", exists=False, parents=[dev1]) dt._add_device(dev1) dt._add_device(dev2) # normal self.assertTrue(dev1 in dt.devices) self.assertTrue(dev2 in dt.devices) self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1) self.assertFalse(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertNotEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # remove_device clears descendants and formatting but preserves the device dev1.format = get_format("swap") self.assertEqual(dev1.format.type, "swap") self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1, remove_device=False) self.assertTrue(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertEqual(dev1.format.type, None) self.assertNotEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # actions=False performs the removals without scheduling actions self.assertEqual(dt.actions._actions, list()) dt.recursive_remove(dev1, actions=False) self.assertFalse(dev1 in dt.devices) self.assertFalse(dev2 in dt.devices) self.assertEqual(dt.actions._actions, list()) dt.reset() dt._add_device(dev1) dt._add_device(dev2, new=False) # restore parent/child relationships # modparent only works when actions=False is passed with patch.object(dt, "_remove_device") as remove_device: dt.recursive_remove(dev1, actions=False) remove_device.assert_called_with(dev1, modparent=True) dt.recursive_remove(dev1, actions=False, modparent=False) remove_device.assert_called_with(dev1, modparent=False)