def testExplicitExtendedPartitions(self): """ Verify that explicitly requested extended partitions work. """ disk = self.blivet.disks[0] p1 = self.blivet.newPartition(size=Size("500 MiB"), partType=parted.PARTITION_EXTENDED) self.blivet.createDevice(p1) doPartitioning(self.blivet) self.assertEqual(p1.partedPartition.type, parted.PARTITION_EXTENDED) self.assertEqual(p1.partedPartition, disk.format.extendedPartition) p2 = self.blivet.newPartition(size=Size("1 GiB")) self.blivet.createDevice(p2) doPartitioning(self.blivet) self.assertEqual(p1.partedPartition, disk.format.extendedPartition, "user-specified extended partition was removed") self.blivet.doIt()
def testImplicitExtendedPartitions(self): """ Verify management of implicitly requested extended partition. """ # By running partition allocation multiple times with enough partitions # to require an extended partition, we exercise the code that manages # the implicit extended partition. p1 = self.blivet.newPartition(size=Size("100 MiB")) self.blivet.createDevice(p1) p2 = self.blivet.newPartition(size=Size("200 MiB")) self.blivet.createDevice(p2) p3 = self.blivet.newPartition(size=Size("300 MiB")) self.blivet.createDevice(p3) p4 = self.blivet.newPartition(size=Size("400 MiB")) self.blivet.createDevice(p4) doPartitioning(self.blivet) # at this point there should be an extended partition self.assertIsNotNone(self.blivet.disks[0].format.extendedPartition, "no extended partition was created") # remove the last partition request and verify that the extended goes away as a result self.blivet.destroyDevice(p4) doPartitioning(self.blivet) self.assertIsNone(self.blivet.disks[0].format.extendedPartition, "extended partition was not removed with last logical") p5 = self.blivet.newPartition(size=Size("500 MiB")) self.blivet.createDevice(p5) doPartitioning(self.blivet) p6 = self.blivet.newPartition(size=Size("450 MiB")) self.blivet.createDevice(p6) doPartitioning(self.blivet) self.assertIsNotNone(self.blivet.disks[0].format.extendedPartition, "no extended partition was created") self.blivet.doIt()