#!/usr/bin/python3## Copyright (C) 2022 Red Hat, Inc.# SPDX-License-Identifier: LGPL-2.1-or-laterfrom anacondalib import VirtInstallMachineCasefrom installer import Installerfrom review import Reviewfrom storage import EFI_PARTITION_DEFAULT_SIZE, EFI_PARTITION_DEFAULT_SIZE_MB, Storagefrom testlib import nondestructive, test_main # pylint: disable=import-error@nondestructiveclass TestStorageMountPointsLVM(VirtInstallMachineCase):def _testLVM_partition_disk(self):m = self.machineb = self.browsers = Storage(b, m)disk = "/dev/vda"vgname = "fedoravg"s.partition_disk(disk, [(EFI_PARTITION_DEFAULT_SIZE, "efi"), ("1GiB", "ext4"), ("", None)])m.execute(f"""vgcreate -y -f {vgname} {disk}3lvcreate -y -l40%FREE -n root {vgname}mkfs.ext4 -F /dev/{vgname}/rootlvcreate -y -l90%FREE -n home {vgname}mkfs.ext4 -F /dev/{vgname}/homelvcreate -y -l100%FREE -n swap {vgname}mkswap /dev/{vgname}/swap""")def testLVM(self):"""Description:Test 'Mount point mapping' screen with LVMExpected results:- The mount point mapping screen should show the LVM volumes- The review screen should show the correct mountpoints and devices"""b = self.browserm = self.machinei = Installer(b, m, scenario="mount-point-mapping")s = Storage(b, m)r = Review(b, m)vgname = "fedoravg"dev = "vda"i.open()i.reach(i.steps.INSTALLATION_METHOD)s.select_mountpoint([(dev, True)])# verify gathered requests# root partition is not auto-mappeds.check_mountpoint_row(1, "/", "Select a device", True)s.check_mountpoint_row(2, "/boot/efi", "Select a device", False)s.check_mountpoint_row(3, "/boot", "Select a device", False)s.select_mountpoint_row_device(1, f"{vgname}-root")s.check_mountpoint_row(1, "/", f"{vgname}-root", True, "ext4")s.select_mountpoint_row_device(2, f"{dev}1")s.check_mountpoint_row(2, "/boot/efi", f"{dev}1", False, "EFI System Partition")s.select_mountpoint_row_device(3, f"{dev}2")s.check_mountpoint_row(3, "/boot", f"{dev}2", False, "ext4")s.add_mountpoint_row()s.select_mountpoint_row_device(4, f"{vgname}-home")s.select_mountpoint_row_mountpoint(4, "/home")s.check_mountpoint_row(4, "/home", f"{vgname}-home", False, "ext4")s.add_mountpoint_row()s.select_mountpoint_row_device(5, f"{vgname}-swap")s.check_mountpoint_row(5, "swap", f"{vgname}-swap", False, "swap")# Toggle reformat options.select_mountpoint_row_reformat(3)s.check_mountpoint_row_reformat(3, True)i.reach(i.steps.REVIEW)# verify review screendisk = "vda"r.check_disk(disk, "16.1 GB vda (Virtio Block Device)")r.check_disk_row(disk, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False)r.check_disk_row(disk, "/boot", "vda2", "1.07 GB", True, "ext4")r.check_disk_row(disk, "/", "vda3, LVM", "5.80 GB", True, "ext4")r.check_disk_row(disk, "/home", "vda3, LVM", "7.83 GB", False)r.check_disk_row(disk, "swap", "vda3, LVM", "872 MB", False)i.reach_on_sidebar(i.steps.CUSTOM_MOUNT_POINT)# remove the /home row and check that row 3 is now swaps.remove_mountpoint_row(4, 5)s.check_mountpoint_row_mountpoint(4, "swap")s.check_mountpoint_row_device(4, f"{vgname}-swap")i.reach(i.steps.REVIEW)# verify review screendisk = "vda"r.check_disk(disk, "16.1 GB vda (Virtio Block Device)")r.check_disk_row(disk, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False)r.check_disk_row(disk, "/boot", "vda2", "1.07 GB", True, "ext4")r.check_disk_row(disk, "/", "vda3, LVM", "5.80 GB", True, "ext4")r.check_disk_row(disk, "swap", "vda3, LVM", "872 MB", False)if __name__ == '__main__':test_main()