Port test_inspector to Python 3
* Replace contextlib.nested() with contextlib.ExitStack * Add contextlib2 dependency for Python 2.6 and 2.7 to get ExitStack * TestLibvirtInspection: set libvirtError because it must be a subclass of Exception on Python 3 Enable ceilometer.tests.compute.virt.libvirt.test_inspector on Python 3. Change-Id: I82f4b911c1b3ede90805150630c222b1dd5f3474
This commit is contained in:
parent
7d70942132
commit
ce08e620fa
@ -16,7 +16,10 @@
|
|||||||
"""Tests for libvirt inspector.
|
"""Tests for libvirt inspector.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import contextlib
|
try:
|
||||||
|
import contextlib2 as contextlib # for Python < 3.3
|
||||||
|
except ImportError:
|
||||||
|
import contextlib
|
||||||
|
|
||||||
import fixtures
|
import fixtures
|
||||||
import mock
|
import mock
|
||||||
@ -29,6 +32,9 @@ from ceilometer.compute.virt.libvirt import inspector as libvirt_inspector
|
|||||||
|
|
||||||
class TestLibvirtInspection(base.BaseTestCase):
|
class TestLibvirtInspection(base.BaseTestCase):
|
||||||
|
|
||||||
|
class fakeLibvirtError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestLibvirtInspection, self).setUp()
|
super(TestLibvirtInspection, self).setUp()
|
||||||
|
|
||||||
@ -40,16 +46,18 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
self.inspector.connection = mock.Mock()
|
self.inspector.connection = mock.Mock()
|
||||||
libvirt_inspector.libvirt = mock.Mock()
|
libvirt_inspector.libvirt = mock.Mock()
|
||||||
libvirt_inspector.libvirt.VIR_DOMAIN_SHUTOFF = 5
|
libvirt_inspector.libvirt.VIR_DOMAIN_SHUTOFF = 5
|
||||||
|
libvirt_inspector.libvirt.libvirtError = self.fakeLibvirtError
|
||||||
self.domain = mock.Mock()
|
self.domain = mock.Mock()
|
||||||
self.addCleanup(mock.patch.stopall)
|
self.addCleanup(mock.patch.stopall)
|
||||||
|
|
||||||
def test_inspect_cpus(self):
|
def test_inspect_cpus(self):
|
||||||
with contextlib.nested(mock.patch.object(self.inspector.connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(self.inspector.connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(0, 0, 0,
|
return_value=(0, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
cpu_info = self.inspector.inspect_cpus(self.instance)
|
cpu_info = self.inspector.inspect_cpus(self.instance)
|
||||||
self.assertEqual(2, cpu_info.number)
|
self.assertEqual(2, cpu_info.number)
|
||||||
self.assertEqual(999999, cpu_info.time)
|
self.assertEqual(999999, cpu_info.time)
|
||||||
@ -120,17 +128,18 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
interfaceStats = interface_stats.__getitem__
|
interfaceStats = interface_stats.__getitem__
|
||||||
|
|
||||||
connection = self.inspector.connection
|
connection = self.inspector.connection
|
||||||
with contextlib.nested(mock.patch.object(connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'XMLDesc',
|
stack.enter_context(mock.patch.object(self.domain, 'XMLDesc',
|
||||||
return_value=dom_xml),
|
return_value=dom_xml))
|
||||||
mock.patch.object(self.domain,
|
stack.enter_context(mock.patch.object(self.domain,
|
||||||
'interfaceStats',
|
'interfaceStats',
|
||||||
side_effect=interfaceStats),
|
side_effect=interfaceStats))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(0, 0, 0,
|
return_value=(0, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
interfaces = list(self.inspector.inspect_vnics(self.instance))
|
interfaces = list(self.inspector.inspect_vnics(self.instance))
|
||||||
|
|
||||||
self.assertEqual(3, len(interfaces))
|
self.assertEqual(3, len(interfaces))
|
||||||
@ -172,12 +181,13 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
|
|
||||||
def test_inspect_vnics_with_domain_shutoff(self):
|
def test_inspect_vnics_with_domain_shutoff(self):
|
||||||
connection = self.inspector.connection
|
connection = self.inspector.connection
|
||||||
with contextlib.nested(mock.patch.object(connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(5, 0, 0,
|
return_value=(5, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
inspect = self.inspector.inspect_vnics
|
inspect = self.inspector.inspect_vnics
|
||||||
self.assertRaises(virt_inspector.InstanceShutOffException,
|
self.assertRaises(virt_inspector.InstanceShutOffException,
|
||||||
list, inspect(self.instance))
|
list, inspect(self.instance))
|
||||||
@ -198,17 +208,18 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
</domain>
|
</domain>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
with contextlib.nested(mock.patch.object(self.inspector.connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(self.inspector.connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'XMLDesc',
|
stack.enter_context(mock.patch.object(self.domain, 'XMLDesc',
|
||||||
return_value=dom_xml),
|
return_value=dom_xml))
|
||||||
mock.patch.object(self.domain, 'blockStats',
|
stack.enter_context(mock.patch.object(self.domain, 'blockStats',
|
||||||
return_value=(1, 2, 3,
|
return_value=(1, 2, 3,
|
||||||
4, -1)),
|
4, -1)))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(0, 0, 0,
|
return_value=(0, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
disks = list(self.inspector.inspect_disks(self.instance))
|
disks = list(self.inspector.inspect_disks(self.instance))
|
||||||
|
|
||||||
self.assertEqual(1, len(disks))
|
self.assertEqual(1, len(disks))
|
||||||
@ -221,12 +232,13 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
|
|
||||||
def test_inspect_disks_with_domain_shutoff(self):
|
def test_inspect_disks_with_domain_shutoff(self):
|
||||||
connection = self.inspector.connection
|
connection = self.inspector.connection
|
||||||
with contextlib.nested(mock.patch.object(connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(5, 0, 0,
|
return_value=(5, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
inspect = self.inspector.inspect_disks
|
inspect = self.inspector.inspect_disks
|
||||||
self.assertRaises(virt_inspector.InstanceShutOffException,
|
self.assertRaises(virt_inspector.InstanceShutOffException,
|
||||||
list, inspect(self.instance))
|
list, inspect(self.instance))
|
||||||
@ -261,17 +273,18 @@ class TestLibvirtInspection(base.BaseTestCase):
|
|||||||
</domain>
|
</domain>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
with contextlib.nested(mock.patch.object(self.inspector.connection,
|
with contextlib.ExitStack() as stack:
|
||||||
|
stack.enter_context(mock.patch.object(self.inspector.connection,
|
||||||
'lookupByUUIDString',
|
'lookupByUUIDString',
|
||||||
return_value=self.domain),
|
return_value=self.domain))
|
||||||
mock.patch.object(self.domain, 'XMLDesc',
|
stack.enter_context(mock.patch.object(self.domain, 'XMLDesc',
|
||||||
return_value=dom_xml),
|
return_value=dom_xml))
|
||||||
mock.patch.object(self.domain, 'blockInfo',
|
stack.enter_context(mock.patch.object(self.domain, 'blockInfo',
|
||||||
return_value=(1, 2, 3,
|
return_value=(1, 2, 3,
|
||||||
-1)),
|
-1)))
|
||||||
mock.patch.object(self.domain, 'info',
|
stack.enter_context(mock.patch.object(self.domain, 'info',
|
||||||
return_value=(0, 0, 0,
|
return_value=(0, 0, 0,
|
||||||
2, 999999))):
|
2, 999999)))
|
||||||
disks = list(self.inspector.inspect_disk_info(self.instance))
|
disks = list(self.inspector.inspect_disk_info(self.instance))
|
||||||
|
|
||||||
self.assertEqual(1, len(disks))
|
self.assertEqual(1, len(disks))
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
# Hacking already pins down pep8, pyflakes and flake8
|
# Hacking already pins down pep8, pyflakes and flake8
|
||||||
hacking>=0.10.0,<0.11
|
hacking>=0.10.0,<0.11
|
||||||
Babel>=1.3
|
Babel>=1.3
|
||||||
|
contextlib2>=0.4.0 # PSF License
|
||||||
coverage>=3.6
|
coverage>=3.6
|
||||||
discover
|
discover
|
||||||
elasticsearch>=1.3.0
|
elasticsearch>=1.3.0
|
||||||
|
1
tox.ini
1
tox.ini
@ -49,6 +49,7 @@ commands =
|
|||||||
deps = -r{toxinidir}/requirements.txt
|
deps = -r{toxinidir}/requirements.txt
|
||||||
-r{toxinidir}/test-requirements-py3.txt
|
-r{toxinidir}/test-requirements-py3.txt
|
||||||
commands = python -m testtools.run \
|
commands = python -m testtools.run \
|
||||||
|
ceilometer.tests.compute.virt.libvirt.test_inspector \
|
||||||
ceilometer.tests.compute.virt.vmware.test_vsphere_operations \
|
ceilometer.tests.compute.virt.vmware.test_vsphere_operations \
|
||||||
ceilometer.tests.data_processing.test_notifications \
|
ceilometer.tests.data_processing.test_notifications \
|
||||||
ceilometer.tests.energy.test_kwapi \
|
ceilometer.tests.energy.test_kwapi \
|
||||||
|
Loading…
Reference in New Issue
Block a user