def test_get_file_system_free_space(self):
        """Test GetFileSystemFreeSpace."""
        self._add_device(
            StorageDevice("dev1",
                          fmt=get_format("ext4", mountpoint="/"),
                          size=Size("5 GiB")))

        self._add_device(
            StorageDevice("dev2",
                          fmt=get_format("ext4", mountpoint="/usr"),
                          size=Size("5 GiB")))

        total_size = self.interface.GetFileSystemFreeSpace([])
        assert total_size == 0

        total_size = self.interface.GetFileSystemFreeSpace(["/", "/usr"])
        assert total_size < Size("10 GiB").get_bytes()
        assert total_size > Size("8 GiB").get_bytes()
    def test_get_device_size_limits(self):
        """Test GetDeviceSizeLimits."""
        self.module.on_storage_changed(create_storage())
        self._add_device(
            StorageDevice("dev1", fmt=get_format("ext4"), size=Size("10 MiB")))

        min_size, max_size = self.interface.GetDeviceSizeLimits("dev1")
        assert min_size == 0
        assert max_size == 0
예제 #3
0
파일: lvm_test.py 프로젝트: vathpela/blivet
    def test_lvm_logical_volume_with_pvs_init(self):
        pv = StorageDevice("pv1",
                           fmt=blivet.formats.get_format("lvmpv"),
                           size=Size("1025 MiB"))
        pv2 = StorageDevice("pv2",
                            fmt=blivet.formats.get_format("lvmpv"),
                            size=Size("512 MiB"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])

        pv_spec = LVPVSpec(pv, Size("1 GiB"))
        lv = LVMLogicalVolumeDevice("testlv",
                                    parents=[vg],
                                    size=Size("1 GiB"),
                                    fmt=blivet.formats.get_format("xfs"),
                                    exists=False,
                                    pvs=[pv_spec])

        self.assertEqual([spec.pv for spec in lv._pv_specs], [pv])
예제 #4
0
    def get_existing_systems_test(self):
        """Test GetExistingSystems."""
        self.assertEqual(self.interface.GetExistingSystems(), [])

        root_device = StorageDevice("dev1", fmt=get_format("ext4"))
        swap_device = StorageDevice("dev2", fmt=get_format("swap"))

        self.storage.roots = [Root(
            name="My Linux",
            mounts={"/": root_device},
            swaps=[swap_device]
        )]

        self.assertEqual(self.interface.GetExistingSystems(), [{
            'os-name': get_variant(Str, 'My Linux'),
            'mount-points': get_variant(Dict[Str, Str], {'/': 'dev1'}),
            'swap-devices': get_variant(List[Str], ['dev2'])
        }])
예제 #5
0
    def test_net_device_manual(self):
        """ Verify netdev mount option is not removed if explicitly set by the user. """
        dev = StorageDevice("dev1", fmt=get_format("ext4", mountopts="_netdev"))
        self.assertTrue("_netdev" in dev.format.options.split(","))

        # these create methods shouldn't write anything to disk
        dev.create()

        self.assertTrue("_netdev" in dev.format.options.split(","))
예제 #6
0
    def get_file_system_free_space_test(self):
        """Test GetFileSystemFreeSpace."""
        self._add_device(
            StorageDevice("dev1",
                          fmt=get_format("ext4", mountpoint="/"),
                          size=Size("5 GiB")))

        self._add_device(
            StorageDevice("dev2",
                          fmt=get_format("ext4", mountpoint="/usr"),
                          size=Size("5 GiB")))

        total_size = self.interface.GetFileSystemFreeSpace([])
        self.assertEqual(total_size, 0)

        total_size = self.interface.GetFileSystemFreeSpace(["/", "/usr"])
        self.assertLess(total_size, Size("10 GiB").get_bytes())
        self.assertGreater(total_size, Size("8 GiB").get_bytes())
    def generate_system_data_test(self):
        """Test GenerateSystemData."""
        self._add_device(
            StorageDevice("dev1", fmt=get_format("ext4", mountpoint="/boot")))
        self._add_device(
            StorageDevice("dev2", fmt=get_format("ext4", mountpoint="/")))
        self._add_device(StorageDevice("dev3", fmt=get_format("swap")))

        os_data = self.interface.GenerateSystemData("dev1")
        self.assertEqual(
            get_native(os_data), {
                'mount-points': {
                    '/boot': 'dev1',
                    '/': 'dev2'
                },
                'os-name': 'New anaconda bluesky Installation',
                'swap-devices': ['dev3']
            })
예제 #8
0
    def testNetDevSetting(self):
        """ Verify netdev mount option setting after format assignment. """
        netdev = FakeNetDev("net1")
        dev = StorageDevice("dev1", fmt=getFormat("ext4"))
        self.assertFalse("_netdev" in dev.format.options.split(","))

        dev.parents.append(netdev)
        dev.format = getFormat("ext4")
        self.assertTrue("_netdev" in dev.format.options.split(","))
예제 #9
0
    def setUp(self):
        self.dev1 = BTRFSVolumeDevice(
            "dev1",
            parents=[
                StorageDevice("deva",
                              fmt=blivet.formats.get_format("btrfs"),
                              size=BTRFS_MIN_MEMBER_SIZE)
            ])

        self.dev2 = BTRFSSubVolumeDevice(
            "dev2",
            parents=[self.dev1],
            fmt=blivet.formats.get_format("btrfs"))

        dev = StorageDevice("deva",
                            fmt=blivet.formats.get_format("btrfs"),
                            size=Size("500 MiB"))
        self.dev3 = BTRFSVolumeDevice("dev3", parents=[dev])
    def test_get_device_mount_options(self):
        """Test GetDeviceMountOptions."""
        dev1 = StorageDevice("dev1", size=Size("10 GiB"))
        self._add_device(dev1)
        assert self.interface.GetDeviceMountOptions("dev1") == ""

        dev1.format = get_format("ext4")
        dev1.format.options = "defaults,ro"
        assert self.interface.GetDeviceMountOptions("dev1") == "defaults,ro"
예제 #11
0
    def reset_device_test(self):
        """Test ResetDevice."""
        dev1 = StorageDevice("dev1",
                             exists=False,
                             size=Size("15 GiB"),
                             fmt=get_format("disklabel"))

        dev2 = StorageDevice("dev2",
                             exists=False,
                             parents=[dev1],
                             size=Size("6 GiB"),
                             fmt=get_format("ext4"))

        dev3 = StorageDevice("dev3", exists=True, size=Size("6 GiB"))

        dev3.original_format = get_format("ext4")
        dev3.format = get_format("xfs")

        self.module.on_storage_changed(create_storage())
        self.module.storage.devicetree._add_device(dev1)
        self.module.storage.devicetree._add_device(dev2)
        self.module.storage.devicetree._add_device(dev3)

        with self.assertRaises(StorageConfigurationError):
            self.interface.ResetDevice("dev1")

        self.assertIn(dev1, self.module.storage.devices)
        self.assertIn(dev2, self.module.storage.devices)
        self.assertIn(dev3, self.module.storage.devices)
        self.assertEqual(dev3.format.type, "xfs")

        self.interface.ResetDevice("dev2")

        self.assertNotIn(dev1, self.module.storage.devices)
        self.assertNotIn(dev2, self.module.storage.devices)
        self.assertIn(dev3, self.module.storage.devices)
        self.assertEqual(dev3.format.type, "xfs")

        self.interface.ResetDevice("dev3")

        self.assertNotIn(dev1, self.module.storage.devices)
        self.assertNotIn(dev2, self.module.storage.devices)
        self.assertIn(dev3, self.module.storage.devices)
        self.assertEqual(dev3.format.type, "ext4")
    def test_update_container_data(self):
        """Test UpdateContainerData."""
        pv1 = StorageDevice("pv1",
                            size=Size("1025 MiB"),
                            fmt=get_format("lvmpv"))
        pv2 = StorageDevice("pv2",
                            size=Size("513 MiB"),
                            fmt=get_format("lvmpv"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv1, pv2])

        self._add_device(pv1)
        self._add_device(pv2)
        self._add_device(vg)

        request = DeviceFactoryRequest()
        request.device_type = DEVICE_TYPE_PARTITION

        with pytest.raises(StorageError):
            self.interface.UpdateContainerData(
                DeviceFactoryRequest.to_structure(request), "anaconda")

        request.device_type = DEVICE_TYPE_BTRFS
        request = DeviceFactoryRequest.from_structure(
            self.interface.UpdateContainerData(
                DeviceFactoryRequest.to_structure(request), "anaconda"))

        assert request.container_spec == ""
        assert request.container_name == "anaconda"
        assert request.container_encrypted is False
        assert request.container_raid_level == "single"
        assert request.container_size_policy == 0
        assert request.disks == []

        request.device_type = DEVICE_TYPE_LVM
        request = DeviceFactoryRequest.from_structure(
            self.interface.UpdateContainerData(
                DeviceFactoryRequest.to_structure(request), "testvg"))

        assert request.container_spec == "testvg"
        assert request.container_name == "testvg"
        assert request.container_encrypted is False
        assert request.container_raid_level == ""
        assert request.container_size_policy == Size("1.5 GiB").get_bytes()
        assert request.disks == []
    def test_reset_device(self):
        """Test ResetDevice."""
        dev1 = StorageDevice("dev1",
                             exists=False,
                             size=Size("15 GiB"),
                             fmt=get_format("disklabel"))

        dev2 = StorageDevice("dev2",
                             exists=False,
                             parents=[dev1],
                             size=Size("6 GiB"),
                             fmt=get_format("ext4"))

        dev3 = StorageDevice("dev3", exists=True, size=Size("6 GiB"))

        dev3.original_format = get_format("ext4")
        dev3.format = get_format("xfs")

        self.module.on_storage_changed(create_storage())
        self.module.storage.devicetree._add_device(dev1)
        self.module.storage.devicetree._add_device(dev2)
        self.module.storage.devicetree._add_device(dev3)

        with pytest.raises(StorageConfigurationError):
            self.interface.ResetDevice("dev1")

        assert dev1 in self.module.storage.devices
        assert dev2 in self.module.storage.devices
        assert dev3 in self.module.storage.devices
        assert dev3.format.type == "xfs"

        self.interface.ResetDevice("dev2")

        assert dev1 not in self.module.storage.devices
        assert dev2 not in self.module.storage.devices
        assert dev3 in self.module.storage.devices
        assert dev3.format.type == "xfs"

        self.interface.ResetDevice("dev3")

        assert dev1 not in self.module.storage.devices
        assert dev2 not in self.module.storage.devices
        assert dev3 in self.module.storage.devices
        assert dev3.format.type == "ext4"
예제 #14
0
    def test_lvm_logical_volume_metadata_size(self):
        pv = StorageDevice("pv1",
                           fmt=blivet.formats.get_format("lvmpv"),
                           size=Size("1025 MiB"))
        pv2 = StorageDevice("pv2",
                            fmt=blivet.formats.get_format("lvmpv"),
                            size=Size("513 MiB"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])

        lv = LVMLogicalVolumeDevice("testlv",
                                    parents=[vg],
                                    size=Size("512 MiB"),
                                    fmt=blivet.formats.get_format("xfs"),
                                    exists=False,
                                    seg_type="raid1",
                                    pvs=[pv, pv2])
        self.assertEqual(lv.metadata_size, Size("4 MiB"))
        # two copies of metadata
        self.assertEqual(lv.metadata_vg_space_used, Size("8 MiB"))
예제 #15
0
    def get_device_mount_options_test(self):
        """Test GetDeviceMountOptions."""
        dev1 = StorageDevice("dev1", size=Size("10 GiB"))
        self._add_device(dev1)
        self.assertEqual(self.interface.GetDeviceMountOptions("dev1"), "")

        dev1.format = get_format("ext4")
        dev1.format.options = "defaults,ro"
        self.assertEqual(self.interface.GetDeviceMountOptions("dev1"),
                         "defaults,ro")
예제 #16
0
    def test_lvm_logical_volume_insuf_seg_type(self):
        # pylint: disable=unused-variable
        pv = StorageDevice("pv1",
                           fmt=blivet.formats.get_format("lvmpv"),
                           size=Size("1025 MiB"))
        pv2 = StorageDevice("pv2",
                            fmt=blivet.formats.get_format("lvmpv"),
                            size=Size("513 MiB"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])

        # pvs have to be specified for non-linear LVs
        with self.assertRaises(ValueError):
            lv = LVMLogicalVolumeDevice("testlv",
                                        parents=[vg],
                                        size=Size("512 MiB"),
                                        fmt=blivet.formats.get_format("xfs"),
                                        exists=False,
                                        seg_type="raid1")
        with self.assertRaises(ValueError):
            lv = LVMLogicalVolumeDevice("testlv",
                                        parents=[vg],
                                        size=Size("512 MiB"),
                                        fmt=blivet.formats.get_format("xfs"),
                                        exists=False,
                                        seg_type="striped")

        # no or complete specification has to be given for linear LVs
        with self.assertRaises(ValueError):
            lv = LVMLogicalVolumeDevice("testlv",
                                        parents=[vg],
                                        size=Size("512 MiB"),
                                        fmt=blivet.formats.get_format("xfs"),
                                        exists=False,
                                        pvs=[pv])
        with self.assertRaises(ValueError):
            pv_spec = LVPVSpec(pv, Size("256 MiB"))
            pv_spec2 = LVPVSpec(pv2, Size("250 MiB"))
            lv = LVMLogicalVolumeDevice("testlv",
                                        parents=[vg],
                                        size=Size("512 MiB"),
                                        fmt=blivet.formats.get_format("xfs"),
                                        exists=False,
                                        pvs=[pv_spec, pv_spec2])
예제 #17
0
    def test_lvmcached_logical_volume_init(self):
        pv = StorageDevice("pv1",
                           fmt=blivet.formats.get_format("lvmpv"),
                           size=Size("1 GiB"))
        pv2 = StorageDevice("pv2",
                            fmt=blivet.formats.get_format("lvmpv"),
                            size=Size("512 MiB"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])

        cache_req = LVMCacheRequest(Size("512 MiB"), [pv2], "writethrough")
        xfs_fmt = blivet.formats.get_format("xfs")
        lv = LVMLogicalVolumeDevice("testlv",
                                    parents=[vg],
                                    fmt=xfs_fmt,
                                    size=Size(xfs_fmt.min_size),
                                    exists=False,
                                    cache_request=cache_req)
        self.assertEqual(lv.size, xfs_fmt.min_size)

        # check that the LV behaves like a cached LV
        self.assertTrue(lv.cached)
        cache = lv.cache
        self.assertIsNotNone(cache)

        # the cache reserves space for its metadata from the requested size, but
        # it may require (and does in this case) a pmspare LV to be allocated
        self.assertEqual(lv.vg_space_used,
                         lv.cache.size + lv.cache.md_size + lv.size)

        # check parameters reported by the (non-existing) cache
        # 512 MiB - 8 MiB (metadata) - 8 MiB (pmspare)
        self.assertEqual(cache.size, Size("496 MiB"))
        self.assertEqual(cache.md_size, Size("8 MiB"))
        self.assertEqual(cache.vg_space_used, Size("504 MiB"))
        self.assertIsInstance(cache.size, Size)
        self.assertIsInstance(cache.md_size, Size)
        self.assertIsInstance(cache.vg_space_used, Size)
        self.assertFalse(cache.exists)
        self.assertIsNone(cache.stats)
        self.assertEqual(cache.mode, "writethrough")
        self.assertIsNone(cache.backing_device_name)
        self.assertIsNone(cache.cache_device_name)
        self.assertEqual(set(cache.fast_pvs), set([pv2]))
예제 #18
0
 def test_lvm_logical_volume_pv_free_linear(self):
     pv = StorageDevice("pv1",
                        fmt=blivet.formats.get_format("lvmpv"),
                        size=Size("1025 MiB"))
     pv2 = StorageDevice("pv2",
                         fmt=blivet.formats.get_format("lvmpv"),
                         size=Size("513 MiB"))
     vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])
     pv_spec = LVPVSpec(pv, Size("256 MiB"))
     pv_spec2 = LVPVSpec(pv2, Size("256 MiB"))
     lv = LVMLogicalVolumeDevice("testlv",
                                 parents=[vg],
                                 size=Size("512 MiB"),
                                 fmt=blivet.formats.get_format("xfs"),
                                 exists=False,
                                 pvs=[pv_spec, pv_spec2])
     self.assertEqual(lv.seg_type, "linear")
     self.assertEqual(pv.format.free, Size("768 MiB"))
     self.assertEqual(pv2.format.free, Size("256 MiB"))
예제 #19
0
    def test_vgchunk_with_cache(self):
        pv = StorageDevice("pv1", size=Size("40 GiB"),
                           fmt=get_format("lvmpv"))
        # 1025 MiB so that the PV provides 1024 MiB of free space (see
        # LVMVolumeGroupDevice.extents)
        pv2 = StorageDevice("pv2", size=Size("1025 MiB"),
                            fmt=get_format("lvmpv"))
        vg = LVMVolumeGroupDevice("vg", parents=[pv, pv2])

        cache_req1 = LVMCacheRequest(Size("512 MiB"), [pv2], "writethrough")
        lv1 = LVMLogicalVolumeDevice("lv1", parents=[vg],
                                     size=Size("1 GiB"), grow=True,
                                     cache_request=cache_req1)

        cache_req2 = LVMCacheRequest(Size("512 MiB"), [pv2], "writethrough")
        lv2 = LVMLogicalVolumeDevice("lv2", parents=[vg],
                                     size=Size("10 GiB"), grow=True,
                                     cache_request=cache_req2)

        lv3 = LVMLogicalVolumeDevice("lv3", parents=[vg],
                                     size=Size("10 GiB"), grow=True,
                                     maxsize=Size("12 GiB"))

        req1 = LVRequest(lv1)
        req2 = LVRequest(lv2)
        req3 = LVRequest(lv3)
        chunk = VGChunk(vg, requests=[req1, req2, req3])

        chunk.grow_requests()

        # the chunk is done growing since its pool has been exhausted
        self.assertEqual(chunk.done, True)

        # there are still two requests remaining since lv1 and lv2 have no max
        self.assertEqual(chunk.remaining, 2)

        # All the sizes should be the same as without the caches (see the
        # test_vgchunk test for their "rationales") because the space for the
        # caches should just be reserved.
        self.assertEqual(req1.growth, 395)
        self.assertEqual(req2.growth, 3956)
        self.assertEqual(req3.growth, 512)
    def test_get_devices(self):
        """Test GetDevices."""
        assert self.interface.GetDevices() == []

        self._add_device(
            DiskDevice("dev1", fmt=get_format("ext4"), size=Size("10 GiB")))

        self._add_device(
            StorageDevice("dev2", fmt=get_format("ext4"), size=Size("10 GiB")))

        assert self.interface.GetDevices() == ["dev1", "dev2"]
예제 #21
0
    def test_lvm_logical_volume_segtype_pv_free(self):
        pv = StorageDevice("pv1",
                           fmt=blivet.formats.get_format("lvmpv"),
                           size=Size("1025 MiB"))
        pv2 = StorageDevice("pv2",
                            fmt=blivet.formats.get_format("lvmpv"),
                            size=Size("513 MiB"))
        vg = LVMVolumeGroupDevice("testvg", parents=[pv, pv2])

        lv = LVMLogicalVolumeDevice("testlv",
                                    parents=[vg],
                                    size=Size("1 GiB"),
                                    fmt=blivet.formats.get_format("xfs"),
                                    exists=False,
                                    seg_type="striped",
                                    pvs=[pv, pv2])

        self.assertEqual(lv.seg_type, "striped")
        self.assertEqual(pv.format.free, Size("512 MiB"))
        self.assertEqual(pv2.format.free, 0)
예제 #22
0
    def test_mount_existing_system_with_task(self, publisher):
        """Test MountExistingSystemWithTask."""
        self._add_device(StorageDevice("dev1", fmt=get_format("ext4")))

        task_path = self.interface.MountExistingSystemWithTask("dev1", True)

        obj = check_task_creation(self, task_path, publisher, MountExistingSystemTask)

        self.assertEqual(obj.implementation._storage, self.module.storage)
        self.assertEqual(obj.implementation._device.name, "dev1")
        self.assertEqual(obj.implementation._read_only, True)
예제 #23
0
    def test_set_device_passphrase(self):
        """Test SetDevicePassphrase."""
        dev1 = StorageDevice("dev1", fmt=get_format("ext4"), size=Size("10 GiB"))
        self._add_device(dev1)

        dev2 = LUKSDevice("dev2", parents=[dev1], fmt=get_format("luks"), size=Size("10 GiB"))
        self._add_device(dev2)

        self.assertEqual(self.interface.FindUnconfiguredLUKS(), ["dev2"])
        self.interface.SetDevicePassphrase("dev2", "123456")
        self.assertEqual(self.interface.FindUnconfiguredLUKS(), [])
예제 #24
0
    def get_devices_test(self):
        """Test GetDevices."""
        self.assertEqual(self.interface.GetDevices(), [])

        self._add_device(
            DiskDevice("dev1", fmt=get_format("ext4"), size=Size("10 GiB")))

        self._add_device(
            StorageDevice("dev2", fmt=get_format("ext4"), size=Size("10 GiB")))

        self.assertEqual(self.interface.GetDevices(), ["dev1", "dev2"])
예제 #25
0
    def mount_existing_system_test(self, mount):
        storage = create_storage()
        device = StorageDevice("dev1", fmt=get_format("ext4"))
        storage.devicetree._add_device(device)

        task = MountExistingSystemTask(storage, device, True)
        task.run()

        mount.assert_called_once_with(storage=storage,
                                      root_device=device,
                                      read_only=True)
예제 #26
0
    def gather_unusable_requests_test(self):
        """Test GatherRequests with unusable devices."""
        self.module.on_storage_changed(create_storage())

        # Add device with no size.
        self._add_device(StorageDevice("dev1", size=Size(0)))

        self.assertEqual(self.interface.GatherRequests(), [])

        # Add protected device.
        device = StorageDevice("dev2", size=Size("1 GiB"))

        device.protected = True
        self._add_device(device)
        self.assertEqual(self.interface.GatherRequests(), [])

        # Add unselected disk.
        self._add_device(DiskDevice("dev3", size=Size("1 GiB")))

        self.module.on_selected_disks_changed(["dev1", "dev2"])
        self.assertEqual(self.interface.GatherRequests(), [])
예제 #27
0
    def test_get_device_by_name(self):
        dt = DeviceTree()

        dev1 = StorageDevice("dev1", exists=False, parents=[])
        dev2 = StorageDevice("dev2", exists=False, parents=[dev1])
        dt._add_device(dev1)
        dt._add_device(dev2)

        self.assertIsNone(dt.get_device_by_name("dev3"))
        self.assertEqual(dt.get_device_by_name("dev2"), dev2)
        self.assertEqual(dt.get_device_by_name("dev1"), dev1)

        dev2.complete = False
        self.assertEqual(dt.get_device_by_name("dev2"), None)
        self.assertEqual(dt.get_device_by_name("dev2", incomplete=True), dev2)

        dev3 = StorageDevice("dev3", exists=True, parents=[])
        dt._add_device(dev3)
        dt.hide(dev3)
        self.assertIsNone(dt.get_device_by_name("dev3"))
        self.assertEqual(dt.get_device_by_name("dev3", hidden=True), dev3)
예제 #28
0
    def test_find_mountable_partitions(self, update_size_info):
        """Test FindMountablePartitions."""
        self._add_device(StorageDevice(
            "dev1",
            fmt=get_format("ext4"))
        )
        self._add_device(PartitionDevice(
            "dev2",
            fmt=get_format("ext4", exists=True)
        ))

        self.assertEqual(self.interface.FindMountablePartitions(), ["dev2"])
예제 #29
0
    def test_find_install_media(self, check_module):
        """Test FindInstallMedia."""
        dev1 = OpticalDevice("dev1")
        dev1.size = Size("2 GiB")
        dev1.format = get_format("iso9660")
        dev1.controllable = True
        self._add_device(dev1)

        dev2 = StorageDevice("dev2")
        dev2.size = Size("2 GiB")
        dev2.format = get_format("iso9660")
        dev2.controllable = True
        self._add_device(dev2)

        dev3 = StorageDevice("dev3")
        dev3.size = Size("2 GiB")
        dev3.format = get_format("ext4")
        dev3.controllable = True
        self._add_device(dev3)

        self.assertEqual(self.interface.FindOpticalMedia(), ["dev1", "dev2"])
    def get_file_systems_for_device_test(self):
        """Test GetFileSystemsForDevice."""
        self._add_device(StorageDevice("dev1", fmt=get_format("ext4")))
        result = self.interface.GetFileSystemsForDevice("dev1")

        self.assertIsInstance(result, list)
        self.assertNotEqual(len(result), 0)
        self.assertIn("ext4", result)

        for fs in result:
            self.assertIsInstance(fs, str)
            self.assertEqual(fs, get_format(fs).type)