diff options
author | 2016-12-05 16:11:54 -0500 | |
---|---|---|
committer | 2017-01-12 18:25:04 -0800 | |
commit | f036e9898a69f5041f9cde02e3652c29e2de1643 (patch) | |
tree | 36e5eea75811bb640bb30f442f5a3c617e945909 /tests/unit/benchmark/scenarios/storage/test_storperf.py | |
parent | 5f0b3d417244397b2d5e61c7a6ddd145f1d25046 (diff) |
Add support for Python 3
Porting to Python3 using Openstack guidelines:
https://wiki.openstack.org/wiki/Python3
This passes unittests on Python 3.5 and passes opnfv_smoke suite
Updates:
use six for urlparse and urlopen
fix exception.message attribute removal
run unittests on python3
use unitest.mock on python 3
fix open mock for vsperf
fix float division by using delta/eplison comparison
use unicode in StringIO
use plugin/sample_config.yaml relative path from test case
fixed apexlake unittests
upgraded to mock 2.0.0 to match python3 unittest.mock features
fixed flake8 issues
implement safe JSON decode with oslo_serialization.jsonutils.dump_as_bytes()
implement safe unicode encode/decode with oslo_utils.encodeutils
heat: convert pub key file from bytes to unicode
pkg_resources returns raw bytes, in python3
we have to decode this to utf-8 unicode
so JSON can encode it for heat template
JIRA: YARDSTICK-452
Change-Id: Ib80dd1d0c0eb0592acd832b82f6a7f8f7c20bfda
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Diffstat (limited to 'tests/unit/benchmark/scenarios/storage/test_storperf.py')
-rw-r--r-- | tests/unit/benchmark/scenarios/storage/test_storperf.py | 48 |
1 files changed, 36 insertions, 12 deletions
diff --git a/tests/unit/benchmark/scenarios/storage/test_storperf.py b/tests/unit/benchmark/scenarios/storage/test_storperf.py index 8fc97d2ed..adc9d47c6 100644 --- a/tests/unit/benchmark/scenarios/storage/test_storperf.py +++ b/tests/unit/benchmark/scenarios/storage/test_storperf.py @@ -11,43 +11,58 @@ # Unittest for yardstick.benchmark.scenarios.storage.storperf.StorPerf -import mock +from __future__ import absolute_import + import unittest -import requests -import json + +import mock +from oslo_serialization import jsonutils from yardstick.benchmark.scenarios.storage import storperf def mocked_requests_config_post(*args, **kwargs): class MockResponseConfigPost: + def __init__(self, json_data, status_code): self.content = json_data self.status_code = status_code - return MockResponseConfigPost('{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622","stack_created": "false"}', 200) + return MockResponseConfigPost( + '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",' + '"stack_created": "false"}', + 200) def mocked_requests_config_get(*args, **kwargs): class MockResponseConfigGet: + def __init__(self, json_data, status_code): self.content = json_data self.status_code = status_code - return MockResponseConfigGet('{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622","stack_created": "true"}', 200) + return MockResponseConfigGet( + '{"stack_id": "dac27db1-3502-4300-b301-91c64e6a1622",' + '"stack_created": "true"}', + 200) def mocked_requests_job_get(*args, **kwargs): class MockResponseJobGet: + def __init__(self, json_data, status_code): self.content = json_data self.status_code = status_code - return MockResponseJobGet('{"status": "completed", "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}', 200) + return MockResponseJobGet( + '{"status": "completed",\ + "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}', + 200) def mocked_requests_job_post(*args, **kwargs): class MockResponseJobPost: + def __init__(self, json_data, status_code): self.content = json_data self.status_code = status_code @@ -58,6 +73,7 @@ def mocked_requests_job_post(*args, **kwargs): def mocked_requests_job_delete(*args, **kwargs): class MockResponseJobDelete: + def __init__(self, json_data, status_code): self.content = json_data self.status_code = status_code @@ -67,6 +83,7 @@ def mocked_requests_job_delete(*args, **kwargs): def mocked_requests_delete(*args, **kwargs): class MockResponseDelete: + def __init__(self, json_data, status_code): self.json_data = json_data self.status_code = status_code @@ -76,6 +93,7 @@ def mocked_requests_delete(*args, **kwargs): def mocked_requests_delete_failed(*args, **kwargs): class MockResponseDeleteFailed: + def __init__(self, json_data, status_code): self.json_data = json_data self.status_code = status_code @@ -130,8 +148,9 @@ class StorPerfTestCase(unittest.TestCase): side_effect=mocked_requests_job_post) @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.get', side_effect=mocked_requests_job_get) - @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.delete', - side_effect=mocked_requests_job_delete) + @mock.patch( + 'yardstick.benchmark.scenarios.storage.storperf.requests.delete', + side_effect=mocked_requests_job_delete) def test_successful_run(self, mock_post, mock_get, mock_delete): options = { "agent_count": 8, @@ -152,15 +171,18 @@ class StorPerfTestCase(unittest.TestCase): s = storperf.StorPerf(args, self.ctx) s.setup_done = True - sample_output = '{"status": "completed", "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}' + sample_output = '{"status": "completed",\ + "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}' - expected_result = json.loads(sample_output) + expected_result = jsonutils.loads(sample_output) s.run(self.result) self.assertEqual(self.result, expected_result) - @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.delete', side_effect=mocked_requests_delete) + @mock.patch( + 'yardstick.benchmark.scenarios.storage.storperf.requests.delete', + side_effect=mocked_requests_delete) def test_successful_teardown(self, mock_delete): options = { "agent_count": 8, @@ -184,7 +206,9 @@ class StorPerfTestCase(unittest.TestCase): self.assertFalse(s.setup_done) - @mock.patch('yardstick.benchmark.scenarios.storage.storperf.requests.delete', side_effect=mocked_requests_delete_failed) + @mock.patch( + 'yardstick.benchmark.scenarios.storage.storperf.requests.delete', + side_effect=mocked_requests_delete_failed) def test_failed_teardown(self, mock_delete): options = { "agent_count": 8, |