From e8dfd5e2a860ecf616eca34b132c6161a95b5a49 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Sun, 10 Mar 2013 21:51:39 -0400 Subject: [PATCH] Correct exception args in vfs/guestfs. Updates the exception formatting in vfs/guestfs so that we properly raise in cases where there is no root or multiple roots. Fixes a TypeError that would occur with the previous code. Fixes LP Bug #1153414. Change-Id: I28f9cde5a2da466ebb7397176baaf051ccd4192b --- nova/tests/test_virt_disk_vfs_guestfs.py | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/nova/tests/test_virt_disk_vfs_guestfs.py b/nova/tests/test_virt_disk_vfs_guestfs.py index 1ff2581e7..16c85f815 100644 --- a/nova/tests/test_virt_disk_vfs_guestfs.py +++ b/nova/tests/test_virt_disk_vfs_guestfs.py @@ -16,6 +16,7 @@ import sys +from nova import exception from nova import test from nova.tests import fakeguestfs @@ -51,6 +52,32 @@ class VirtDiskVFSGuestFSTest(test.TestCase): self.assertEqual(handle.closed, True) self.assertEqual(len(handle.mounts), 0) + def test_appliance_setup_inspect_no_root_raises(self): + vfs = vfsimpl.VFSGuestFS(imgfile="/dummy.qcow2", + imgfmt="qcow2", + partition=-1) + # call setup to init the handle so we can stub it + vfs.setup() + + def fake_inspect_os(): + return [] + + self.stubs.Set(vfs.handle, 'inspect_os', fake_inspect_os) + self.assertRaises(exception.NovaException, vfs.setup_os_inspect) + + def test_appliance_setup_inspect_multi_boots_raises(self): + vfs = vfsimpl.VFSGuestFS(imgfile="/dummy.qcow2", + imgfmt="qcow2", + partition=-1) + # call setup to init the handle so we can stub it + vfs.setup() + + def fake_inspect_os(): + return ['fake1', 'fake2'] + + self.stubs.Set(vfs.handle, 'inspect_os', fake_inspect_os) + self.assertRaises(exception.NovaException, vfs.setup_os_inspect) + def test_appliance_setup_static_nopart(self): vfs = vfsimpl.VFSGuestFS(imgfile="/dummy.qcow2", imgfmt="qcow2",