Expands python34 unit tests list

Commit Ibe5ecde51655334adafba12280a44d2ddd22c7ec introduced some
python 3.4 compatible changes that were not tested by gate-nova-python34.

Removes unit tests from tests-py3.txt blacklist that covers the changes
made in the mentioned commit.

Adds fixes in order for newly enabled unit tests to pass.

Partially implements blueprint: nova-python3-mitaka

Change-Id: Id1268b53e68edf375e852d33d028e2da57e69bad
This commit is contained in:
Claudiu Belu 2015-10-07 15:03:15 +03:00
parent 542552754d
commit 0e52003a20
4 changed files with 40 additions and 24 deletions

View File

@ -1689,12 +1689,12 @@ class ComputeManager(manager.Manager):
if update_root_bdm: if update_root_bdm:
root_bdm.save() root_bdm.save()
ephemerals = filter(block_device.new_format_is_ephemeral, ephemerals = list(filter(block_device.new_format_is_ephemeral,
block_devices) block_devices))
swap = filter(block_device.new_format_is_swap, swap = list(filter(block_device.new_format_is_swap,
block_devices) block_devices))
block_device_mapping = filter( block_device_mapping = list(filter(
driver_block_device.is_block_device_mapping, block_devices) driver_block_device.is_block_device_mapping, block_devices))
self._default_device_names_for_instance(instance, self._default_device_names_for_instance(instance,
root_device_name, root_device_name,
@ -4374,6 +4374,10 @@ class ComputeManager(manager.Manager):
instance=instance) instance=instance)
output = self.driver.get_console_output(context, instance) output = self.driver.get_console_output(context, instance)
if type(output) is six.text_type:
# the console output will be bytes.
output = six.b(output)
if tail_length is not None: if tail_length is not None:
output = self._tail_log(output, tail_length) output = self._tail_log(output, tail_length)
@ -4386,9 +4390,9 @@ class ComputeManager(manager.Manager):
length = 0 length = 0
if length == 0: if length == 0:
return '' return b''
else: else:
return '\n'.join(log.split('\n')[-int(length):]) return b'\n'.join(log.split(b'\n')[-int(length):])
@messaging.expected_exceptions(exception.ConsoleTypeInvalid, @messaging.expected_exceptions(exception.ConsoleTypeInvalid,
exception.InstanceNotReady, exception.InstanceNotReady,

View File

@ -2646,11 +2646,11 @@ class ComputeTestCase(BaseTestCase):
def test_rebuild_with_injected_files(self): def test_rebuild_with_injected_files(self):
# Ensure instance can be rebuilt with injected files. # Ensure instance can be rebuilt with injected files.
injected_files = [ injected_files = [
('/a/b/c', base64.b64encode('foobarbaz')), (b'/a/b/c', base64.b64encode(b'foobarbaz')),
] ]
self.decoded_files = [ self.decoded_files = [
('/a/b/c', 'foobarbaz'), (b'/a/b/c', b'foobarbaz'),
] ]
def _spawn(context, instance, image_meta, injected_files, def _spawn(context, instance, image_meta, injected_files,
@ -3235,7 +3235,20 @@ class ComputeTestCase(BaseTestCase):
output = self.compute.get_console_output(self.context, output = self.compute.get_console_output(self.context,
instance=instance, tail_length=None) instance=instance, tail_length=None)
self.assertEqual(output, 'FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE') self.assertEqual(output, b'FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE')
self.compute.terminate_instance(self.context, instance, [], [])
def test_console_output_bytes(self):
# Make sure we can get console output from instance.
instance = self._create_fake_instance_obj()
with mock.patch.object(self.compute,
'get_console_output') as mock_console_output:
mock_console_output.return_value = b'Hello.'
output = self.compute.get_console_output(self.context,
instance=instance, tail_length=None)
self.assertEqual(output, b'Hello.')
self.compute.terminate_instance(self.context, instance, [], []) self.compute.terminate_instance(self.context, instance, [], [])
def test_console_output_tail(self): def test_console_output_tail(self):
@ -3246,7 +3259,7 @@ class ComputeTestCase(BaseTestCase):
output = self.compute.get_console_output(self.context, output = self.compute.get_console_output(self.context,
instance=instance, tail_length=2) instance=instance, tail_length=2)
self.assertEqual(output, 'ANOTHER\nLAST LINE') self.assertEqual(output, b'ANOTHER\nLAST LINE')
self.compute.terminate_instance(self.context, instance, [], []) self.compute.terminate_instance(self.context, instance, [], [])
def test_console_output_not_implemented(self): def test_console_output_not_implemented(self):
@ -6049,8 +6062,12 @@ class ComputeTestCase(BaseTestCase):
def test_add_instance_fault_with_remote_error(self): def test_add_instance_fault_with_remote_error(self):
instance = self._create_fake_instance_obj() instance = self._create_fake_instance_obj()
exc_info = None exc_info = None
raised_exc = None
def fake_db_fault_create(ctxt, values): def fake_db_fault_create(ctxt, values):
global exc_info
global raised_exc
self.assertIn('raise messaging.RemoteError', values['details']) self.assertIn('raise messaging.RemoteError', values['details'])
del values['details'] del values['details']
@ -6066,13 +6083,14 @@ class ComputeTestCase(BaseTestCase):
try: try:
raise messaging.RemoteError('test', 'My Test Message') raise messaging.RemoteError('test', 'My Test Message')
except messaging.RemoteError as exc: except messaging.RemoteError as exc:
raised_exc = exc
exc_info = sys.exc_info() exc_info = sys.exc_info()
self.stubs.Set(nova.db, 'instance_fault_create', fake_db_fault_create) self.stubs.Set(nova.db, 'instance_fault_create', fake_db_fault_create)
ctxt = context.get_admin_context() ctxt = context.get_admin_context()
compute_utils.add_instance_fault_from_exc(ctxt, compute_utils.add_instance_fault_from_exc(ctxt,
instance, exc, exc_info) instance, raised_exc, exc_info)
def test_add_instance_fault_user_error(self): def test_add_instance_fault_user_error(self):
instance = self._create_fake_instance_obj() instance = self._create_fake_instance_obj()
@ -11408,7 +11426,7 @@ class EvacuateHostTestCase(BaseTestCase):
lambda: self._rebuild(on_shared_storage=True)) lambda: self._rebuild(on_shared_storage=True))
def test_driver_does_not_support_recreate(self): def test_driver_does_not_support_recreate(self):
with utils.temporary_mutation(self.compute.driver.capabilities, with mock.patch.dict(self.compute.driver.capabilities,
supports_recreate=False): supports_recreate=False):
self.stubs.Set(self.compute.driver, 'instance_on_disk', self.stubs.Set(self.compute.driver, 'instance_on_disk',
lambda x: True) lambda x: True)

View File

@ -1099,7 +1099,7 @@ class ExceptionHelper(object):
try: try:
return func(*args, **kwargs) return func(*args, **kwargs)
except messaging.ExpectedException as e: except messaging.ExpectedException as e:
raise (e.exc_info[1], None, e.exc_info[2]) six.reraise(*e.exc_info)
return wrapper return wrapper
@ -1296,7 +1296,7 @@ def get_system_metadata_from_image(image_meta, flavor=None):
if image_meta.get('disk_format') == 'vhd': if image_meta.get('disk_format') == 'vhd':
value = flavor['root_gb'] value = flavor['root_gb']
else: else:
value = max(value, flavor['root_gb']) value = max(value or 0, flavor['root_gb'])
if value is None: if value is None:
continue continue

View File

@ -157,16 +157,10 @@ nova.tests.unit.cells.test_cells_state_manager.TestCellsGetCapacity
nova.tests.unit.cells.test_cells_state_manager.TestCellsStateManager nova.tests.unit.cells.test_cells_state_manager.TestCellsStateManager
nova.tests.unit.cells.test_cells_state_manager.TestCellsStateManagerNToOne nova.tests.unit.cells.test_cells_state_manager.TestCellsStateManagerNToOne
nova.tests.unit.cmd.test_baseproxy.BaseProxyTestCase nova.tests.unit.cmd.test_baseproxy.BaseProxyTestCase
nova.tests.unit.compute.test_compute.ComputeAPIAggrCallsSchedulerTestCase
nova.tests.unit.compute.test_compute.ComputeAPITestCase nova.tests.unit.compute.test_compute.ComputeAPITestCase
nova.tests.unit.compute.test_compute.ComputeInjectedFilesTestCase nova.tests.unit.compute.test_compute.ComputeInjectedFilesTestCase
nova.tests.unit.compute.test_compute.ComputePolicyTestCase nova.tests.unit.compute.test_compute.ComputeTestCase.test_finish_resize_with_volumes
nova.tests.unit.compute.test_compute.ComputeRescheduleResizeOrReraiseTestCase
nova.tests.unit.compute.test_compute.ComputeReschedulingTestCase
nova.tests.unit.compute.test_compute.ComputeTestCase
nova.tests.unit.compute.test_compute.ComputeVolumeTestCase nova.tests.unit.compute.test_compute.ComputeVolumeTestCase
nova.tests.unit.compute.test_compute.DisabledInstanceTypesTestCase
nova.tests.unit.compute.test_compute.EvacuateHostTestCase
nova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase nova.tests.unit.compute.test_compute_api.ComputeAPIAPICellUnitTestCase
nova.tests.unit.compute.test_compute_api.ComputeAPIComputeCellUnitTestCase nova.tests.unit.compute.test_compute_api.ComputeAPIComputeCellUnitTestCase
nova.tests.unit.compute.test_compute_api.ComputeAPIUnitTestCase nova.tests.unit.compute.test_compute_api.ComputeAPIUnitTestCase