Fix Python 3 issues in targets unit tests

* Replace StandardError with ZeroDivisionError: StandardError was
  removed in Python 3.
* Replace __builtin__ with six.moves.builtins.
* Open text mode with "w" mode (instead of "wb").
* tox.ini: add targets unit tests to Python 3.4

Note: cinder.tests.unit.targets.test_iet_driver still fails on Python 3,
it will be fixed in a different change.

Blueprint cinder-python3
Change-Id: Ie0f5d2dfaf2ffdeab29fe40f692a2f09fb5a7aba
This commit is contained in:
Victor Stinner
2015-06-30 16:14:09 +02:00
parent 87016e624b
commit e97b10d15a
3 changed files with 14 additions and 8 deletions

View File

@@ -70,7 +70,7 @@ class TestCxtAdmDriver(tf.TargetDriverFixture):
tmp_file.seek(0)
expected = ('otzL', '234Z')
with mock.patch('__builtin__.open') as mock_open:
with mock.patch('six.moves.builtins.open') as mock_open:
ctx = context.get_admin_context()
mock_open.return_value = contextlib.closing(tmp_file)
self.assertEqual(expected,
@@ -79,7 +79,7 @@ class TestCxtAdmDriver(tf.TargetDriverFixture):
self.assertTrue(mock_open.called)
def test_get_target_chap_auth_negative(self):
with mock.patch('__builtin__.open') as mock_open:
with mock.patch('six.moves.builtins.open') as mock_open:
e = IOError()
e.errno = 123
mock_open.side_effect = e
@@ -87,8 +87,8 @@ class TestCxtAdmDriver(tf.TargetDriverFixture):
self.assertRaises(IOError,
self.target._get_target_chap_auth,
ctxt, self.test_vol)
mock_open.side_effect = StandardError()
self.assertRaises(StandardError,
mock_open.side_effect = ZeroDivisionError()
self.assertRaises(ZeroDivisionError,
self.target._get_target_chap_auth,
ctxt, self.test_vol)

View File

@@ -153,7 +153,7 @@ class TestTgtAdmDriver(tf.TargetDriverFixture):
'bspath': self.testvol_path}
with open(os.path.join(self.fake_volumes_dir,
self.test_vol.split(':')[1]),
'wb') as tmp_file:
'w') as tmp_file:
tmp_file.write(persist_file)
ctxt = context.get_admin_context()
expected = ('otzL', '234Z')
@@ -162,7 +162,7 @@ class TestTgtAdmDriver(tf.TargetDriverFixture):
self.test_vol))
def test_get_target_chap_auth_negative(self):
with mock.patch('__builtin__.open') as mock_open:
with mock.patch('six.moves.builtins.open') as mock_open:
e = IOError()
e.errno = 123
mock_open.side_effect = e
@@ -170,8 +170,8 @@ class TestTgtAdmDriver(tf.TargetDriverFixture):
self.assertRaises(IOError,
self.target._get_target_chap_auth,
ctxt, self.test_vol)
mock_open.side_effect = StandardError()
self.assertRaises(StandardError,
mock_open.side_effect = ZeroDivisionError()
self.assertRaises(ZeroDivisionError,
self.target._get_target_chap_auth,
ctxt, self.test_vol)

View File

@@ -29,6 +29,12 @@ downloadcache = ~/cache/pip
[testenv:py34]
commands =
python -m testtools.run \
cinder.tests.unit.targets.test_base_iscsi_driver \
cinder.tests.unit.targets.test_cxt_driver \
cinder.tests.unit.targets.test_iser_driver \
cinder.tests.unit.targets.test_lio_driver \
cinder.tests.unit.targets.test_scst_driver \
cinder.tests.unit.targets.test_tgt_driver \
cinder.tests.unit.test_api_urlmap \
cinder.tests.unit.test_backup \
cinder.tests.unit.test_backup_ceph \