From 6022c0420d6cf6b29817d1059a34f12b61b4fc7b Mon Sep 17 00:00:00 2001 From: Sun Austin Date: Wed, 2 Jan 2019 11:43:54 +0800 Subject: [PATCH] FIX other issues for Python 2/3 compatible code change func.func_name to func.__name__ change itertools.izip_longest to six.moves.zip_longest change self.assertRaisesRegexp(xxx) to six.assertRaisesRegex(self,xx) use absolute import path Story: 2004585 Task: 28447 Change-Id: I2b4814fb6f96feb90ad0a081ffcab5c72160b0f7 Signed-off-by: Sun Austin --- dcmanager/common/utils.py | 3 +- .../unit/api/v1/controllers/test_subclouds.py | 85 ++++++++++--------- .../v1/controllers/test_sw_update_strategy.py | 37 ++++---- dcorch/common/utils.py | 3 +- dcorch/engine/sync_thread.py | 2 +- 5 files changed, 67 insertions(+), 63 deletions(-) diff --git a/dcmanager/common/utils.py b/dcmanager/common/utils.py index 64a9f10fe..a59c5bf77 100644 --- a/dcmanager/common/utils.py +++ b/dcmanager/common/utils.py @@ -21,6 +21,7 @@ # import itertools +import six.moves from dcmanager.common import consts from dcmanager.common import exceptions @@ -35,7 +36,7 @@ def get_import_path(cls): # Returns a iterator of tuples containing batch_size number of objects in each def get_batch_projects(batch_size, project_list, fillvalue=None): args = [iter(project_list)] * batch_size - return itertools.izip_longest(fillvalue=fillvalue, *args) + return six.moves.zip_longest(fillvalue=fillvalue, *args) # to do validate the quota limits diff --git a/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py b/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py index 61543d2ab..321c1ecc3 100644 --- a/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py +++ b/dcmanager/tests/unit/api/v1/controllers/test_subclouds.py @@ -22,6 +22,7 @@ import copy import mock +import six import webtest from dcmanager.api.controllers.v1 import subclouds @@ -96,9 +97,9 @@ class TestSubclouds(testroot.DCManagerApiTest): '192.168.204.2', '192.168.204.100') mock_get_management_address_pool.return_value = management_address_pool - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(subclouds.SubcloudsController, '_get_management_address_pool') @@ -111,18 +112,18 @@ class TestSubclouds(testroot.DCManagerApiTest): '192.168.204.2', '192.168.204.254') mock_get_management_address_pool.return_value = management_address_pool - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') def test_post_subcloud_bad_subnet(self, mock_db_api, mock_rpc_client): data = copy.copy(FAKE_SUBCLOUD_DATA) data["management-subnet"] = "192.168.101.0/32" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -131,9 +132,9 @@ class TestSubclouds(testroot.DCManagerApiTest): data["management-subnet"] = "192.168.101.0/24" data["management-start-ip"] = "192.168.100.2" data["management-end-ip"] = "192.168.100.50" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -141,9 +142,9 @@ class TestSubclouds(testroot.DCManagerApiTest): data = copy.copy(FAKE_SUBCLOUD_DATA) data["management-start-ip"] = "192.168.101.2" data["management-end-ip"] = "192.168.100.100" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -151,9 +152,9 @@ class TestSubclouds(testroot.DCManagerApiTest): data = copy.copy(FAKE_SUBCLOUD_DATA) data["management-start-ip"] = "192.168.101.2" data["management-end-ip"] = "192.168.101.4" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -161,31 +162,31 @@ class TestSubclouds(testroot.DCManagerApiTest): data = copy.copy(FAKE_SUBCLOUD_DATA) data["management-start-ip"] = "192.168.101.20" data["management-end-ip"] = "192.168.101.4" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') def test_post_subcloud_wrong_url(self, mock_rpc_client): data = FAKE_SUBCLOUD_DATA - self.assertRaisesRegexp(webtest.app.AppError, "404 *", - self.app.post_json, WRONG_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "404 *", + self.app.post_json, WRONG_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') def test_post_no_body(self, mock_rpc_client): data = {} - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') def test_post_no_name(self, mock_rpc_client): data = dict(FAKE_SUBCLOUD_DATA) del data['name'] - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(subclouds.SubcloudsController, '_create_subcloud_config_file') @@ -212,9 +213,9 @@ class TestSubclouds(testroot.DCManagerApiTest): @mock.patch.object(rpc_client, 'ManagerClient') def test_delete_wrong_request(self, mock_rpc_client): delete_url = WRONG_URL + '/' + FAKE_ID - self.assertRaisesRegex(webtest.app.AppError, "404 *", - self.app.delete_json, delete_url, - headers=FAKE_HEADERS) + six.assertRaisesRegex(self, webtest.app.AppError, "404 *", + self.app.delete_json, delete_url, + headers=FAKE_HEADERS) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -227,9 +228,9 @@ class TestSubclouds(testroot.DCManagerApiTest): @mock.patch.object(subclouds, 'db_api') def test_get_wrong_request(self, mock_db_api, mock_rpc_client): get_url = WRONG_URL + '/' + FAKE_ID - self.assertRaisesRegex(webtest.app.AppError, "404 *", - self.app.get, get_url, - headers=FAKE_HEADERS) + six.assertRaisesRegex(self, webtest.app.AppError, "404 *", + self.app.get, get_url, + headers=FAKE_HEADERS) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') @@ -258,14 +259,14 @@ class TestSubclouds(testroot.DCManagerApiTest): @mock.patch.object(rpc_client, 'ManagerClient') def test_patch_subcloud_no_body(self, mock_rpc_client): data = {} - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.patch_json, FAKE_URL + '/' + FAKE_ID, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.patch_json, FAKE_URL + '/' + FAKE_ID, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(subclouds, 'db_api') def test_patch_subcloud_bad_status(self, mock_db_api, mock_rpc_client): data = {'management-state': 'bad-status'} - self.assertRaisesRegex(webtest.app.AppError, "400 *", - self.app.patch_json, FAKE_URL + '/' + FAKE_ID, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.patch_json, FAKE_URL + '/' + FAKE_ID, + headers=FAKE_HEADERS, params=data) diff --git a/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py b/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py index c2b831ca9..a6061df8f 100644 --- a/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py +++ b/dcmanager/tests/unit/api/v1/controllers/test_sw_update_strategy.py @@ -22,6 +22,7 @@ import copy import mock +import six import webtest from dcmanager.api.controllers.v1 import sw_update_strategy @@ -75,18 +76,18 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest): def test_post_sw_update_bad_type(self, mock_db_api, mock_rpc_client): data = copy.copy(FAKE_SW_UPDATE_DATA) data["type"] = "bad type" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(sw_update_strategy, 'db_api') def test_post_sw_update_bad_apply_type(self, mock_db_api, mock_rpc_client): data = copy.copy(FAKE_SW_UPDATE_DATA) data["subcloud-apply-type"] = "bad type" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(sw_update_strategy, 'db_api') @@ -94,24 +95,24 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest): self, mock_db_api, mock_rpc_client): data = copy.copy(FAKE_SW_UPDATE_DATA) data["max-parallel-subclouds"] = "not an integer" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') def test_post_no_body(self, mock_rpc_client): data = {} - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') def test_post_no_type(self, mock_rpc_client): data = copy.copy(FAKE_SW_UPDATE_DATA) del data['type'] - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(sw_update_strategy, 'db_api') @@ -140,9 +141,9 @@ class TestSwUpdateStrategy(testroot.DCManagerApiTest): def test_post_sw_update_bad_action(self, mock_db_api, mock_rpc_client): data = copy.copy(FAKE_SW_UPDATE_APPLY_DATA) data["action"] = "bad action" - self.assertRaisesRegexp(webtest.app.AppError, "400 *", - self.app.post_json, FAKE_URL, - headers=FAKE_HEADERS, params=data) + six.assertRaisesRegex(self, webtest.app.AppError, "400 *", + self.app.post_json, FAKE_URL, + headers=FAKE_HEADERS, params=data) @mock.patch.object(rpc_client, 'ManagerClient') @mock.patch.object(sw_update_strategy, 'db_api') diff --git a/dcorch/common/utils.py b/dcorch/common/utils.py index 40c47d7eb..997bd3c88 100644 --- a/dcorch/common/utils.py +++ b/dcorch/common/utils.py @@ -14,6 +14,7 @@ # limitations under the License. import itertools +import six.moves from dcorch.common import consts from dcorch.common import exceptions @@ -34,7 +35,7 @@ def get_import_path(cls): # Returns a iterator of tuples containing batch_size number of objects in each def get_batch_projects(batch_size, project_list, fillvalue=None): args = [iter(project_list)] * batch_size - return itertools.izip_longest(fillvalue=fillvalue, *args) + return six.moves.zip_longest(fillvalue=fillvalue, *args) # to do validate the quota limits diff --git a/dcorch/engine/sync_thread.py b/dcorch/engine/sync_thread.py index 3b5585292..c54ae4eca 100644 --- a/dcorch/engine/sync_thread.py +++ b/dcorch/engine/sync_thread.py @@ -220,7 +220,7 @@ class SyncThread(object): sync_request.orch_job.resource_id) handler = self.sync_handler_map[rsrc.resource_type] LOG.info("Invoking {} for {} [{}]".format( - handler.func_name, rsrc.resource_type, + handler.__name__, rsrc.resource_type, sync_request.orch_job.operation_type), extra=self.log_extra) handler(sync_request, rsrc)