def test_dependencies_handling(self): device = StorageDevice("testdev1") self.assertTrue(device.controllable) self.assertIsNotNone(ActionCreateDevice(device)) device.exists = True self.assertIsNotNone(ActionDestroyDevice(device)) with patch.object(StorageDevice, "resizable", new_callable=PropertyMock(return_value=True)): self.assertIsNotNone(ActionResizeDevice(device, Size("1 GiB"))) # if any external dependency is missing, it should be impossible to create, destroy, setup, # teardown, or resize the device (controllable encompasses setup & teardown) with patch.object(StorageDevice, "_external_dependencies", new_callable=PropertyMock(return_value=[availability.unavailable_resource("testing")])): device = StorageDevice("testdev1") self.assertFalse(device.controllable) self.assertRaises(DependencyError, ActionCreateDevice, device) device.exists = True self.assertRaises(DependencyError, ActionDestroyDevice, device) self.assertRaises(ValueError, ActionResizeDevice, device, Size("1 GiB")) # same goes for formats, except that the properties they affect vary by format class fmt = get_format("lvmpv") fmt._plugin = availability.available_resource("lvm-testing") self.assertTrue(fmt.supported) self.assertTrue(fmt.formattable) self.assertTrue(fmt.destroyable) fmt._plugin = availability.unavailable_resource("lvm-testing") self.assertFalse(fmt.supported) self.assertFalse(fmt.formattable) self.assertFalse(fmt.destroyable)
def testAvailabililty(self): unavailable_resource = availability.unavailable_resource("unavailable") self.assertNotEqual(unavailable_resource.availabilityErrors, []) self.assertFalse(unavailable_resource.available) available_resource = availability.available_resource("available") self.assertEqual(available_resource.availabilityErrors, []) self.assertTrue(available_resource.available)
def test_availabililty(self): unavailable_resource = availability.unavailable_resource("unavailable") self.assertNotEqual(unavailable_resource.availability_errors, []) self.assertFalse(unavailable_resource.available) available_resource = availability.available_resource("available") self.assertEqual(available_resource.availability_errors, []) self.assertTrue(available_resource.available)
def test_dependencies_handling(self): device = StorageDevice("testdev1") self.assertTrue(device.controllable) self.assertIsNotNone(ActionCreateDevice(device)) device.exists = True self.assertIsNotNone(ActionDestroyDevice(device)) with patch.object(StorageDevice, "resizable", new_callable=PropertyMock(return_value=True)): self.assertIsNotNone(ActionResizeDevice(device, Size("1 GiB"))) # if any external dependency is missing, it should be impossible to create, destroy, setup, # teardown, or resize the device (controllable encompasses setup & teardown) with patch.object(StorageDevice, "_external_dependencies", new_callable=PropertyMock(return_value=[ availability.unavailable_resource("testing") ])): device = StorageDevice("testdev1") self.assertFalse(device.controllable) self.assertRaises(DependencyError, ActionCreateDevice, device) device.exists = True self.assertRaises(DependencyError, ActionDestroyDevice, device) self.assertRaises(ValueError, ActionResizeDevice, device, Size("1 GiB")) # same goes for formats, except that the properties they affect vary by format class fmt = get_format("lvmpv") fmt._plugin = availability.available_resource("lvm-testing") self.assertTrue(fmt.supported) self.assertTrue(fmt.formattable) self.assertTrue(fmt.destroyable) fmt._plugin = availability.unavailable_resource("lvm-testing") self.assertFalse(fmt.supported) self.assertFalse(fmt.formattable) self.assertFalse(fmt.destroyable)
class BasicUnavailableApplication(task.BasicApplication): ext = availability.unavailable_resource("unavailable") description = "unavailable application" def do_task(self): pass