diff --git a/blivetgui/blivet_utils.py b/blivetgui/blivet_utils.py index 58c92007..f75dda58 100644 --- a/blivetgui/blivet_utils.py +++ b/blivetgui/blivet_utils.py @@ -532,7 +532,7 @@ def delete_device(self, blivet_device, delete_parents): return result try: - if blivet_device.format.type and not blivet_device.format_immutable: + if not blivet_device.format_immutable: ac_fmt = blivet.deviceaction.ActionDestroyFormat(blivet_device) self.storage.devicetree.actions.add(ac_fmt) actions.append(ac_fmt) @@ -707,8 +707,7 @@ def format_device(self, user_input): fmt_actions = [] - if user_input.edit_device.format.type is not None: - fmt_actions.append(blivet.deviceaction.ActionDestroyFormat(user_input.edit_device)) + fmt_actions.append(blivet.deviceaction.ActionDestroyFormat(user_input.edit_device)) if user_input.filesystem: fmt_actions.extend(self._create_format(user_input, user_input.edit_device)) diff --git a/blivetgui/list_partitions.py b/blivetgui/list_partitions.py index 9dcfabd7..98c0985a 100644 --- a/blivetgui/list_partitions.py +++ b/blivetgui/list_partitions.py @@ -133,7 +133,16 @@ def _add_to_store(self, device, parent_iter=None): """ devtype = "lvm" if device.type == "lvmvg" else "raid" if device.type == "mdarray" else device.type - fmt = device.format.type if device.format else None + + if device.format.type: + fmt = device.format.type + else: + if device.format.name != "Unknown": + # format recognized by blkid but not supported by blivet + fmt = device.format.name + else: + fmt = None + if self.installer_mode: mnt = device.format.mountpoint if (device.format and device.format.mountable) else None else: diff --git a/tests/blivetgui_tests/list_partitions_test.py b/tests/blivetgui_tests/list_partitions_test.py index 5cbf1007..99c6be29 100644 --- a/tests/blivetgui_tests/list_partitions_test.py +++ b/tests/blivetgui_tests/list_partitions_test.py @@ -101,9 +101,20 @@ def test_add_to_store(self): self.assertEqual(self.list_partitions.partitions_list.get_value(it, 1), device.name) self.assertEqual(self.list_partitions.partitions_list.get_value(it, 6), ", ".join(mountpoints)) + # partition with unknown/unsupported filesystem + fmt = MagicMock(type=None, mountable=False, label=None) + fmt.configure_mock(name="exfat") + device = MagicMock(type="partition", size=Size("1 GiB"), path="/dev/vda1", + format=fmt) + device.configure_mock(name="vda1") + it = self.list_partitions._add_to_store(device) + self.assertEqual(self.list_partitions.partitions_list.get_value(it, 3), device.format.name) + # lvmvg with long name -- name should be elipsized and type should be 'lvm' + fmt = MagicMock(type=None, mountable=False, label=None) + fmt.configure_mock(name="Unknown") device = MagicMock(type="lvmvg", size=Size("1 GiB"), - format=MagicMock(type=None, mountable=False, label=None)) + format=fmt) device.configure_mock(name="".join(["a" for i in range(20)])) it = self.list_partitions._add_to_store(device) diff --git a/tests/blivetutils_tests/test_10_disks.py b/tests/blivetutils_tests/test_10_disks.py index 4cccf22e..9ba06a38 100644 --- a/tests/blivetutils_tests/test_10_disks.py +++ b/tests/blivetutils_tests/test_10_disks.py @@ -101,13 +101,18 @@ def test_30_raw_format(self): actions = self.format_device(device=blivet_disk, fstype=fs) # check scheduled actions - self.assertEqual(len(actions), 1) - self.assertIsInstance(actions[0], blivet.deviceaction.ActionCreateFormat) + self.assertEqual(len(actions), 2) + self.assertIsInstance(actions[0], blivet.deviceaction.ActionDestroyFormat) + self.assertIsInstance(actions[1], blivet.deviceaction.ActionCreateFormat) self.assertEqual(actions[0].device, blivet_disk) - self.assertTrue(actions[0].is_create) + self.assertTrue(actions[0].is_destroy) self.assertTrue(actions[0].is_format) + self.assertEqual(actions[1].device, blivet_disk) + self.assertTrue(actions[1].is_create) + self.assertTrue(actions[1].is_format) + # check that the device has been changed blivet_disk = self.get_blivet_device(self.vdevs[0]) self.assertEqual(blivet_disk.format.type, fs)