diff --git a/monasca_api/common/repositories/sqla/alarm_definitions_repository.py b/monasca_api/common/repositories/sqla/alarm_definitions_repository.py index 829630186..8abfc1e4f 100644 --- a/monasca_api/common/repositories/sqla/alarm_definitions_repository.py +++ b/monasca_api/common/repositories/sqla/alarm_definitions_repository.py @@ -316,7 +316,7 @@ class AlarmDefinitionsRepository(sql_repository.SQLRepository, if severity: severities = severity.split('|') query = query.where( - or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in xrange(len(severities)))) + or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in range(len(severities)))) for i, s in enumerate(severities): parms['b_severity' + str(i)] = s.encode('utf8') diff --git a/monasca_api/common/repositories/sqla/alarms_repository.py b/monasca_api/common/repositories/sqla/alarms_repository.py index c6c7df3bf..594b1f8b5 100644 --- a/monasca_api/common/repositories/sqla/alarms_repository.py +++ b/monasca_api/common/repositories/sqla/alarms_repository.py @@ -281,7 +281,7 @@ class AlarmsRepository(sql_repository.SQLRepository, if 'severity' in query_parms: severities = query_parms['severity'].split('|') query = query.where( - or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in xrange(len(severities)))) + or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in range(len(severities)))) for i, s in enumerate(severities): parms['b_severity' + str(i)] = s.encode('utf8') @@ -492,7 +492,7 @@ class AlarmsRepository(sql_repository.SQLRepository, if 'severity' in query_parms: severities = query_parms['severity'].split('|') query = query.where( - or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in xrange(len(severities)))) + or_(ad.c.severity == bindparam('b_severity' + str(i)) for i in range(len(severities)))) for i, s in enumerate(severities): parms['b_severity' + str(i)] = s.encode('utf8') diff --git a/monasca_api/expression_parser/alarm_expr_parser.py b/monasca_api/expression_parser/alarm_expr_parser.py index 22a2309a4..e9e5315d1 100644 --- a/monasca_api/expression_parser/alarm_expr_parser.py +++ b/monasca_api/expression_parser/alarm_expr_parser.py @@ -16,6 +16,7 @@ import sys import pyparsing +import six _DETERMINISTIC_ASSIGNMENT_LEN = 3 _DETERMINISTIC_ASSIGNMENT_SHORT_LEN = 1 @@ -222,7 +223,7 @@ def periodsValidation(instr, loc, tokens): # Initialize non-ascii unicode code points in the Basic Multilingual Plane. unicode_printables = u''.join( - unichr(c) for c in xrange(128, 65536) if not unichr(c).isspace()) + six.unichr(c) for c in range(128, 65536) if not six.unichr(c).isspace()) # Does not like comma. No Literals from above allowed. valid_identifier_chars = ( diff --git a/monasca_api/hacking/__init__.py b/monasca_api/hacking/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/monasca_api/hacking/checks.py b/monasca_api/hacking/checks.py new file mode 100644 index 000000000..f3470c527 --- /dev/null +++ b/monasca_api/hacking/checks.py @@ -0,0 +1,30 @@ +# Copyright 2017 FUJITSU LIMITED +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import re + + +assert_no_xrange_re = re.compile(r"\s*xrange\s*\(") + + +def no_xrange(logical_line): + """Do not use 'xrange' + B319 + """ + if assert_no_xrange_re.match(logical_line): + yield (0, "B319: Do not use xrange().") + + +def factory(register): + register(no_xrange) diff --git a/monasca_api/tests/test_validation.py b/monasca_api/tests/test_validation.py index d2ca0f1a1..784dbb992 100644 --- a/monasca_api/tests/test_validation.py +++ b/monasca_api/tests/test_validation.py @@ -333,7 +333,7 @@ class TestAlarmDefinitionValidation(unittest.TestCase): def _create_string_of_length(self, length): s = '' - for i in xrange(0, length): + for i in range(0, length): s += str(i % 10) return s diff --git a/monasca_api/v2/common/schemas/alarm_definition_request_body_schema.py b/monasca_api/v2/common/schemas/alarm_definition_request_body_schema.py index 2d5dd5b07..847f62a98 100644 --- a/monasca_api/v2/common/schemas/alarm_definition_request_body_schema.py +++ b/monasca_api/v2/common/schemas/alarm_definition_request_body_schema.py @@ -13,6 +13,7 @@ # under the License. from oslo_log import log +import six from voluptuous import All from voluptuous import Any from voluptuous import Invalid @@ -35,7 +36,7 @@ def validate_action_list(notification_ids, action_type): raise Invalid('Not a list: {}'.format(type(notification_ids))) existing = [] for notification_id in notification_ids: - if not isinstance(notification_id, (str, unicode)): + if not isinstance(notification_id, (str, six.text_type)): raise Invalid('list item <{}> -> {} not one of (str, unicode)' .format(notification_id, type(notification_id))) if len(notification_id) > MAX_ITEM_LENGTH: @@ -59,11 +60,11 @@ def validate_undetermined_action_list(v): validate_action_list(v, 'UNDETERMINED') alarm_definition_schema = { - Required('name'): All(Any(str, unicode), Length(max=255)), - Required('expression'): All(Any(str, unicode)), - Marker('description'): All(Any(str, unicode), Length(max=255)), + Required('name'): All(Any(str, six.text_type), Length(max=255)), + Required('expression'): All(Any(str, six.text_type)), + Marker('description'): All(Any(str, six.text_type), Length(max=255)), Marker('severity'): All(Upper, Any('LOW', 'MEDIUM', 'HIGH', 'CRITICAL')), - Marker('match_by'): Any([unicode], [str]), + Marker('match_by'): Any([six.text_type], [str]), Marker('ok_actions'): validate_ok_action_list, Marker('alarm_actions'): validate_alarm_action_list, Marker('undetermined_actions'): validate_undetermined_action_list, diff --git a/monasca_api/v2/common/schemas/alarm_update_schema.py b/monasca_api/v2/common/schemas/alarm_update_schema.py index 2a63e8498..fbae55b32 100644 --- a/monasca_api/v2/common/schemas/alarm_update_schema.py +++ b/monasca_api/v2/common/schemas/alarm_update_schema.py @@ -13,6 +13,7 @@ # under the License. from oslo_log import log +import six import voluptuous from monasca_api.v2.common.schemas import exceptions @@ -24,9 +25,9 @@ alarm_update_schema = { voluptuous.Optional('state'): voluptuous.All( voluptuous.Any('OK', 'ALARM', 'UNDETERMINED')), voluptuous.Optional('lifecycle_state'): voluptuous.All( - voluptuous.Any(str, unicode), voluptuous.Length(max=50)), + voluptuous.Any(str, six.text_type), voluptuous.Length(max=50)), voluptuous.Optional('link'): voluptuous.All( - voluptuous.Any(str, unicode), voluptuous.Length(max=512)) + voluptuous.Any(str, six.text_type), voluptuous.Length(max=512)) } diff --git a/monasca_api/v2/common/schemas/notifications_request_body_schema.py b/monasca_api/v2/common/schemas/notifications_request_body_schema.py index 70802659b..4507fab73 100644 --- a/monasca_api/v2/common/schemas/notifications_request_body_schema.py +++ b/monasca_api/v2/common/schemas/notifications_request_body_schema.py @@ -14,6 +14,7 @@ import monasca_api.v2.common.validation as validation from oslo_log import log +import six import six.moves.urllib.parse as urlparse from voluptuous import All from voluptuous import Any @@ -29,9 +30,9 @@ LOG = log.getLogger(__name__) schemes = ['http', 'https'] notification_schema = { - Required('name'): Schema(All(Any(str, unicode), Length(max=250))), - Required('type'): Schema(Any(str, unicode)), - Required('address'): Schema(All(Any(str, unicode), Length(max=512))), + Required('name'): Schema(All(Any(str, six.text_type), Length(max=250))), + Required('type'): Schema(Any(str, six.text_type)), + Required('address'): Schema(All(Any(str, six.text_type), Length(max=512))), Marker('period'): All(Any(int, str))} request_body_schema = Schema(Any(notification_schema)) diff --git a/monasca_tempest_tests/tests/api/helpers.py b/monasca_tempest_tests/tests/api/helpers.py index b8a2b5977..d969a5e40 100644 --- a/monasca_tempest_tests/tests/api/helpers.py +++ b/monasca_tempest_tests/tests/api/helpers.py @@ -162,7 +162,7 @@ def get_expected_elements_inner_offset_limit(all_elements, offset, limit, inner_ if total_statistics >= limit: break - for i in xrange(len(expected_elements)): + for i in range(len(expected_elements)): expected_elements[i]['id'] = str(i) return expected_elements diff --git a/monasca_tempest_tests/tests/api/test_alarm_definitions.py b/monasca_tempest_tests/tests/api/test_alarm_definitions.py index 6be34667c..da545ff75 100644 --- a/monasca_tempest_tests/tests/api/test_alarm_definitions.py +++ b/monasca_tempest_tests/tests/api/test_alarm_definitions.py @@ -684,8 +684,8 @@ class TestAlarmDefinitions(base.BaseMonascaTest): self.assertEqual(first_element, elements[0]) self.assertEqual(last_element, elements[1]) - for offset in xrange(0, 2): - for limit in xrange(1, 3 - offset): + for offset in range(0, 2): + for limit in range(1, 3 - offset): query_parms = '?offset=' + str(offset) + '&limit=' + str(limit) resp, response_body = self.monasca_client.list_alarm_definitions(query_parms) self.assertEqual(200, resp.status) @@ -998,7 +998,7 @@ class TestAlarmDefinitions(base.BaseMonascaTest): match_by = kwargs.get('match_by', ['device']) response_body_list = [] - for i in xrange(number_of_definitions): + for i in range(number_of_definitions): name = kwargs.get('name', data_utils.rand_name('alarm_definition')) @@ -1025,7 +1025,7 @@ class TestAlarmDefinitions(base.BaseMonascaTest): def _verify_alarm_definitions_list(self, observed, reference): self.assertEqual(len(reference), len(observed)) - for i in xrange(len(reference)): + for i in range(len(reference)): self._verify_alarm_definitions_element( reference[i], observed[i]) diff --git a/monasca_tempest_tests/tests/api/test_alarm_state_history_multiple_transitions.py b/monasca_tempest_tests/tests/api/test_alarm_state_history_multiple_transitions.py index bf869f56d..c58976b49 100644 --- a/monasca_tempest_tests/tests/api/test_alarm_state_history_multiple_transitions.py +++ b/monasca_tempest_tests/tests/api/test_alarm_state_history_multiple_transitions.py @@ -35,7 +35,7 @@ class TestAlarmStateHistoryMultipleTransitions(base.BaseMonascaTest): name=data_utils.rand_name('alarm_state_history'), expression="min(name-1) < 1.0") cls.monasca_client.create_alarm_definitions(alarm_definition) - for timer in xrange(constants.MAX_RETRIES): + for timer in range(constants.MAX_RETRIES): # create some metrics to prime the system and create # MIN_HISTORY alarms metric = helpers.create_metric( @@ -55,7 +55,7 @@ class TestAlarmStateHistoryMultipleTransitions(base.BaseMonascaTest): time.sleep(constants.MAX_RETRIES) - for timer in xrange(constants.MAX_RETRIES * 2): + for timer in range(constants.MAX_RETRIES * 2): metric = helpers.create_metric( name="name-1", dimensions={'key2': 'value2'}, value=2.0) cls.monasca_client.create_metrics(metric) diff --git a/monasca_tempest_tests/tests/api/test_alarm_transitions.py b/monasca_tempest_tests/tests/api/test_alarm_transitions.py index 5bfad4bba..773305bf3 100644 --- a/monasca_tempest_tests/tests/api/test_alarm_transitions.py +++ b/monasca_tempest_tests/tests/api/test_alarm_transitions.py @@ -33,7 +33,7 @@ class TestAlarmTransitions(base.BaseMonascaTest): super(TestAlarmTransitions, cls).resource_cleanup() def _wait_for_alarm_creation(self, definition_id): - for x in xrange(WAIT_SECS): + for x in range(WAIT_SECS): time.sleep(1) resp, resp_body = self.monasca_client.list_alarms( query_params="?alarm_definition_id=" + definition_id) @@ -47,7 +47,7 @@ class TestAlarmTransitions(base.BaseMonascaTest): return alarm_id, initial_state def _wait_for_alarm_transition(self, alarm_id, expected_state): - for x in xrange(WAIT_SECS): + for x in range(WAIT_SECS): time.sleep(1) resp, resp_body = self.monasca_client.get_alarm(alarm_id) self.assertEqual(200, resp.status) diff --git a/monasca_tempest_tests/tests/api/test_alarms.py b/monasca_tempest_tests/tests/api/test_alarms.py index d4508980d..ddd6de477 100644 --- a/monasca_tempest_tests/tests/api/test_alarms.py +++ b/monasca_tempest_tests/tests/api/test_alarms.py @@ -169,7 +169,7 @@ class TestAlarms(base.BaseMonascaTest): # Ensure the new Alarm Definition gets to the Threshold Engine time.sleep(constants.ALARM_DEFINITION_CREATION_WAIT) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, alarm_def_result = self.monasca_client.create_metrics(metrics) self.assertEqual(204, resp.status) resp, response_body = self.monasca_client.list_alarms('?metric_name=' + metric_name) @@ -214,7 +214,7 @@ class TestAlarms(base.BaseMonascaTest): self.assertEqual(201, resp.status) # Ensure the new Alarm Definition gets to the Threshold Engine time.sleep(constants.ALARM_DEFINITION_CREATION_WAIT) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, alarm_def_result = self.monasca_client.create_metrics(metrics) self.assertEqual(204, resp.status) resp, response_body = self.monasca_client.list_alarms('?metric_name=' + metric_name) @@ -614,7 +614,7 @@ class TestAlarms(base.BaseMonascaTest): # Ensure the new Alarm Definition gets to the Threshold Engine time.sleep(constants.ALARM_DEFINITION_CREATION_WAIT) - for i in xrange(3): + for i in range(3): hostname = data_utils.rand_name('host') metric_1['dimensions']['hostname'] = hostname metric_2['dimensions']['hostname'] = hostname @@ -827,10 +827,10 @@ class TestAlarms(base.BaseMonascaTest): expect_num_elements=2) elements = response_body['elements'] hostnames = [] - for i in xrange(2): + for i in range(2): self.assertEqual(len(elements[i]['metrics']), 2) - for i in xrange(2): - for j in xrange(2): + for i in range(2): + for j in range(2): hostnames.append(elements[i]['metrics'][j]['dimensions'][ 'hostname']) self.assertEqual(hostnames[0], hostnames[1]) @@ -858,11 +858,11 @@ class TestAlarms(base.BaseMonascaTest): expect_num_elements=4) elements = response_body['elements'] dimensions = [] - for i in xrange(4): + for i in range(4): self.assertEqual(len(elements[i]['metrics']), 1) dimensions.append(elements[i]['metrics'][0]['dimensions']) - for i in xrange(4): - for j in xrange(4): + for i in range(4): + for j in range(4): if i != j: self.assertNotEqual(dimensions[i], dimensions[j]) @@ -943,7 +943,7 @@ class TestAlarms(base.BaseMonascaTest): key = data_utils.rand_name('key') value = data_utils.rand_name('value') alarm_definition_ids = [] - for i in xrange(num): + for i in range(num): # create an alarm definition expression = "max(" + metric_name + ") > 0" name = data_utils.rand_name('name-1') @@ -957,8 +957,8 @@ class TestAlarms(base.BaseMonascaTest): # Ensure the new Alarm Definitions get to the Threshold Engine time.sleep(constants.ALARM_DEFINITION_CREATION_WAIT) # create some metrics - for j in xrange(num): - for i in xrange(constants.MAX_RETRIES): + for j in range(num): + for i in range(constants.MAX_RETRIES): self.monasca_client.create_metrics(expected_metric) time.sleep(constants.RETRY_WAIT_SECS) query_param = '?alarm_definition_id=' + \ @@ -1044,7 +1044,7 @@ class TestAlarms(base.BaseMonascaTest): def _wait_for_alarms(self, num, alarm_definition_id): query_param = '?alarm_definition_id=' + str(alarm_definition_id) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): time.sleep(constants.RETRY_WAIT_SECS) resp, response_body = self.monasca_client.\ list_alarms(query_param) diff --git a/monasca_tempest_tests/tests/api/test_alarms_count.py b/monasca_tempest_tests/tests/api/test_alarms_count.py index ba86c56b8..3e4f55dde 100644 --- a/monasca_tempest_tests/tests/api/test_alarms_count.py +++ b/monasca_tempest_tests/tests/api/test_alarms_count.py @@ -47,7 +47,7 @@ class TestAlarmsCount(base.BaseMonascaTest): expression=expression, severity='LOW', match_by=['hostname', 'unique'])) - for i in xrange(100): + for i in range(100): metrics_to_send.append(helpers.create_metric( name='test_metric_01', dimensions={'hostname': 'test_' + str(i % num_hosts), @@ -64,7 +64,7 @@ class TestAlarmsCount(base.BaseMonascaTest): expression=expression, severity='MEDIUM', match_by=['hostname', 'unique'])) - for i in xrange(75): + for i in range(75): metrics_to_send.append(helpers.create_metric( name='test_metric_02', dimensions={'hostname': 'test_' + str(i % num_hosts), @@ -88,7 +88,7 @@ class TestAlarmsCount(base.BaseMonascaTest): expression=expression, severity='HIGH', match_by=['hostname', 'unique'])) - for i in xrange(50): + for i in range(50): metrics_to_send.append(helpers.create_metric( name='test_metric_03', dimensions={'hostname': 'test_' + str(i % num_hosts), @@ -106,7 +106,7 @@ class TestAlarmsCount(base.BaseMonascaTest): expression=expression, severity='CRITICAL', match_by=['hostname', 'unique'])) - for i in xrange(25): + for i in range(25): metrics_to_send.append(helpers.create_metric( name='test_metric_undet', dimensions={'hostname': 'test_' + str(i % num_hosts), @@ -138,7 +138,7 @@ class TestAlarmsCount(base.BaseMonascaTest): while time.time() < time_out: setup_complete = True alarm_count = 0 - for i in xrange(len(cls.alarm_definition_ids)): + for i in range(len(cls.alarm_definition_ids)): resp, response_body = cls.monasca_client.list_alarms( '?alarm_definition_id=' + cls.alarm_definition_ids[i]) if resp.status != 200: @@ -178,7 +178,7 @@ class TestAlarmsCount(base.BaseMonascaTest): else: expected_length = len(response_body['counts']) - for i in xrange(expected_length): + for i in range(expected_length): self.assertEqual(len(expected_columns), len(response_body['counts'][i])) # test with no params diff --git a/monasca_tempest_tests/tests/api/test_alarms_state_history_one_transition.py b/monasca_tempest_tests/tests/api/test_alarms_state_history_one_transition.py index a2cfe24dd..33fb3b6b6 100644 --- a/monasca_tempest_tests/tests/api/test_alarms_state_history_one_transition.py +++ b/monasca_tempest_tests/tests/api/test_alarms_state_history_one_transition.py @@ -33,15 +33,15 @@ class TestAlarmsStateHistoryOneTransition(base.BaseMonascaTest): def resource_setup(cls): super(TestAlarmsStateHistoryOneTransition, cls).resource_setup() - for i in xrange(MIN_HISTORY): + for i in range(MIN_HISTORY): alarm_definition = helpers.create_alarm_definition( name=data_utils.rand_name('alarm_state_history' + str(i + 1)), expression="min(name-" + str(i + 1) + ") < " + str(i + 1)) cls.monasca_client.create_alarm_definitions(alarm_definition) num_transitions = 0 - for timer in xrange(constants.MAX_RETRIES): - for i in xrange(MIN_HISTORY): + for timer in range(constants.MAX_RETRIES): + for i in range(MIN_HISTORY): # Create some metrics to prime the system and waiting for the # alarms to be created and then for them to change state. # MIN_HISTORY number of Alarms State History are needed. @@ -202,12 +202,12 @@ class TestAlarmsStateHistoryOneTransition(base.BaseMonascaTest): self.assertEqual(200, resp.status) elements_set2 = response_body['elements'] self.assertEqual(number_of_alarms, len(elements_set2)) - for index in xrange(MIN_HISTORY - 1): + for index in range(MIN_HISTORY - 1): self.assertEqual(elements_set1[index], elements_set2[index]) - for index in xrange(MIN_HISTORY - 1): + for index in range(MIN_HISTORY - 1): alarm_history = elements_set2[index] max_limit = len(elements_set2) - index - for limit in xrange(1, max_limit): + for limit in range(1, max_limit): first_index = index + 1 last_index = first_index + limit expected_elements = elements_set2[first_index:last_index] @@ -219,7 +219,7 @@ class TestAlarmsStateHistoryOneTransition(base.BaseMonascaTest): self.assertEqual(200, resp.status) new_elements = response_body['elements'] self.assertEqual(limit, len(new_elements)) - for i in xrange(len(expected_elements)): + for i in range(len(expected_elements)): self.assertEqual(expected_elements[i], new_elements[i]) else: error_msg = ("Failed test_list_alarms_state_history_with_offset " diff --git a/monasca_tempest_tests/tests/api/test_dimensions.py b/monasca_tempest_tests/tests/api/test_dimensions.py index e74dd8bf3..400b5dd62 100644 --- a/monasca_tempest_tests/tests/api/test_dimensions.py +++ b/monasca_tempest_tests/tests/api/test_dimensions.py @@ -71,7 +71,7 @@ class TestDimensions(base.BaseMonascaTest): param = '?start_time=' + time_iso returned_name_set = set() - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = cls.monasca_client.list_metrics( param) elements = response_body['elements'] @@ -95,7 +95,7 @@ class TestDimensions(base.BaseMonascaTest): self.assertTrue({'links', 'elements'} == set(response_body)) response_values_length = len(response_body['elements']) values = [str(response_body['elements'][i]['dimension_value']) - for i in xrange(response_values_length)] + for i in range(response_values_length)] self.assertEqual(values, self._dim_values) @decorators.attr(type='gate') @@ -107,7 +107,7 @@ class TestDimensions(base.BaseMonascaTest): self.assertTrue({'links', 'elements'} == set(response_body)) response_values_length = len(response_body['elements']) values = [str(response_body['elements'][i]['dimension_value']) - for i in xrange(response_values_length)] + for i in range(response_values_length)] self.assertEqual(values, self._dim_values_for_metric1) @decorators.attr(type='gate') @@ -117,7 +117,7 @@ class TestDimensions(base.BaseMonascaTest): self.assertEqual(200, resp.status) elements = response_body['elements'] num_dim_values = len(elements) - for limit in xrange(1, num_dim_values): + for limit in range(1, num_dim_values): start_index = 0 params = [('limit', limit)] offset = None @@ -143,12 +143,12 @@ class TestDimensions(base.BaseMonascaTest): self.fail("No dimension names returned") new_elements = [str(response_body['elements'][i] ['dimension_value']) for i in - xrange(response_values_length)] + range(response_values_length)] self.assertEqual(num_expected_elements, len(new_elements)) expected_elements = elements[start_index:start_index + limit] expected_dimension_values = \ - [expected_elements[i]['dimension_value'] for i in xrange( + [expected_elements[i]['dimension_value'] for i in range( len(expected_elements))] self.assertEqual(expected_dimension_values, new_elements) start_index += num_expected_elements @@ -170,7 +170,7 @@ class TestDimensions(base.BaseMonascaTest): self.assertTrue({'links', 'elements'} == set(response_body)) response_names_length = len(response_body['elements']) names = [str(response_body['elements'][i]['dimension_name']) for i - in xrange(response_names_length)] + in range(response_names_length)] self.assertEqual(names, self._dim_names) @decorators.attr(type='gate') @@ -186,7 +186,7 @@ class TestDimensions(base.BaseMonascaTest): self.assertEqual(200, resp.status) elements = response_body['elements'] num_dim_names = len(elements) - for limit in xrange(1, num_dim_names): + for limit in range(1, num_dim_names): start_index = 0 params = [('limit', limit)] offset = None @@ -211,12 +211,12 @@ class TestDimensions(base.BaseMonascaTest): self.fail("No dimension names returned") new_elements = [str(response_body['elements'][i] ['dimension_name']) for i in - xrange(response_names_length)] + range(response_names_length)] self.assertEqual(num_expected_elements, len(new_elements)) expected_elements = elements[start_index:start_index + limit] expected_dimension_names = \ - [expected_elements[i]['dimension_name'] for i in xrange( + [expected_elements[i]['dimension_name'] for i in range( len(expected_elements))] self.assertEqual(expected_dimension_names, new_elements) start_index += num_expected_elements @@ -239,5 +239,5 @@ class TestDimensions(base.BaseMonascaTest): self.assertTrue(set(['links', 'elements']) == set(response_body)) response_names_length = len(response_body['elements']) names = [str(response_body['elements'][i]['dimension_name']) for i - in xrange(response_names_length)] + in range(response_names_length)] self.assertEqual(names, dimension_names) diff --git a/monasca_tempest_tests/tests/api/test_measurements.py b/monasca_tempest_tests/tests/api/test_measurements.py index 46598911a..49ef5e4f4 100644 --- a/monasca_tempest_tests/tests/api/test_measurements.py +++ b/monasca_tempest_tests/tests/api/test_measurements.py @@ -43,7 +43,7 @@ class TestMeasurements(base.BaseMonascaTest): cls._value = value cls._start_timestamp = start_timestamp - for i in xrange(NUM_MEASUREMENTS): + for i in range(NUM_MEASUREMENTS): metric = helpers.create_metric( name=name1, timestamp=start_timestamp + (i * 10), @@ -89,7 +89,7 @@ class TestMeasurements(base.BaseMonascaTest): queries.append('?name={}&start_time={}&end_time={}&merge_metrics=true'. format(name2, start_time, end_time)) - for timer in xrange(constants.MAX_RETRIES): + for timer in range(constants.MAX_RETRIES): responses = map(cls.monasca_client.list_measurements, queries) resp_first = responses[0][0] response_body_first = responses[0][1] @@ -209,7 +209,7 @@ class TestMeasurements(base.BaseMonascaTest): self._verify_list_measurements_meas_len(measurements=measurements, test_len=4) - for measurement_index in xrange(1, len(measurements) - 3): + for measurement_index in range(1, len(measurements) - 3): max_limit = len(measurements) - measurement_index # Get first offset from api @@ -227,7 +227,7 @@ class TestMeasurements(base.BaseMonascaTest): first_index = measurement_index + 1 - for limit in xrange(1, max_limit): + for limit in range(1, max_limit): last_index = measurement_index + limit + 1 expected_measurements = measurements[first_index:last_index] @@ -243,7 +243,7 @@ class TestMeasurements(base.BaseMonascaTest): new_measurements = response_body['elements'][0]['measurements'] self.assertEqual(limit, len(new_measurements)) - for i in xrange(len(expected_measurements)): + for i in range(len(expected_measurements)): self.assertEqual(expected_measurements[i], new_measurements[i]) @@ -348,7 +348,7 @@ class TestMeasurements(base.BaseMonascaTest): format(self._names_list[0], self._start_time, self._end_time)) responses = map(self.monasca_client.list_measurements, queries) - for i in xrange(2): + for i in range(2): self._verify_list_measurements(responses[i][0], responses[i][1]) @decorators.attr(type="gate") @@ -364,7 +364,7 @@ class TestMeasurements(base.BaseMonascaTest): '}&merge_metrics=false'. format(self._names_list[0], self._start_time, self._end_time)) - for i in xrange(2): + for i in range(2): self.assertRaises(exceptions.Conflict, self.monasca_client.list_measurements, queries[i]) diff --git a/monasca_tempest_tests/tests/api/test_metrics.py b/monasca_tempest_tests/tests/api/test_metrics.py index bbdef8d1d..d611e5093 100644 --- a/monasca_tempest_tests/tests/api/test_metrics.py +++ b/monasca_tempest_tests/tests/api/test_metrics.py @@ -17,7 +17,6 @@ # TODO(RMH): test_create_metric_no_value, should return 422 if value not sent import time -from six.moves import range as xrange from six.moves import urllib_parse as urlparse from tempest.lib.common.utils import data_utils @@ -53,7 +52,7 @@ class TestMetrics(base.BaseMonascaTest): self.assertEqual(204, resp.status) query_param = '?name=' + name + '&start_time=' + time_iso + \ '&end_time=' + end_time_iso - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.\ list_measurements(query_param) self.assertEqual(200, resp.status) @@ -95,7 +94,7 @@ class TestMetrics(base.BaseMonascaTest): self.assertEqual(204, resp.status) query_param = '?name=' + urlparse.quote(name.encode('utf8')) + \ '&start_time=' + time_iso + '&end_time=' + end_time_iso - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.\ list_measurements(query_param) self.assertEqual(200, resp.status) @@ -148,7 +147,7 @@ class TestMetrics(base.BaseMonascaTest): self.assertEqual(204, resp.status) query_param = '?name=' + name + '&start_time=' + str(time_iso) + \ '&end_time=' + str(end_time_iso) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.\ list_measurements(query_param) self.assertEqual(200, resp.status) @@ -229,7 +228,7 @@ class TestMetrics(base.BaseMonascaTest): self.assertEqual(204, resp.status) query_param = '?name=' + str(name) + '&start_time=' + str(time_iso) \ + '&end_time=' + str(end_time_iso) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.\ list_measurements(query_param) self.assertEqual(200, resp.status) @@ -268,7 +267,7 @@ class TestMetrics(base.BaseMonascaTest): query_param = '?name=' + name + '&start_time=' + time_iso + \ '&end_time=' + end_time_iso + \ '&dimensions=' + key + ':' + value - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client. \ list_measurements(query_param) self.assertEqual(200, resp.status) @@ -398,7 +397,7 @@ class TestMetrics(base.BaseMonascaTest): resp, response_body = self.monasca_client.create_metrics(metric) self.assertEqual(204, resp.status) query_param = '?dimensions=' + key + ':' + value - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_param) self.assertEqual(200, resp.status) elements = response_body['elements'] @@ -466,7 +465,7 @@ class TestMetrics(base.BaseMonascaTest): resp, response_body = self.monasca_client.create_metrics(metric) self.assertEqual(204, resp.status) query_param = '?name=' + str(name) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_param) self.assertEqual(200, resp.status) elements = response_body['elements'] @@ -498,7 +497,7 @@ class TestMetrics(base.BaseMonascaTest): metric, tenant_id=project['id']) self.assertEqual(204, resp.status) query_param = '?tenant_id=' + str(project['id']) - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_param) self.assertEqual(200, resp.status) elements = response_body['elements'] @@ -533,7 +532,7 @@ class TestMetrics(base.BaseMonascaTest): ] self.monasca_client.create_metrics(metrics) query_param = '?name=' + name - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_param) elements = response_body['elements'] if elements and len(elements) == 4: @@ -554,11 +553,11 @@ class TestMetrics(base.BaseMonascaTest): self.assertEqual(4, len(elements)) self.assertEqual(first_element, elements[0]) - for metric_index in xrange(len(elements) - 1): + for metric_index in range(len(elements) - 1): metric = elements[metric_index] max_limit = 3 - metric_index - for limit in xrange(1, max_limit): + for limit in range(1, max_limit): first_index = metric_index + 1 last_index = first_index + limit expected_elements = elements[first_index:last_index] @@ -572,7 +571,7 @@ class TestMetrics(base.BaseMonascaTest): new_elements = response_body['elements'] self.assertEqual(limit, len(new_elements)) - for i in xrange(len(expected_elements)): + for i in range(len(expected_elements)): self.assertEqual(expected_elements[i], new_elements[i]) def _verify_list_measurements_element(self, element, test_key, test_value): @@ -645,7 +644,7 @@ class TestMetrics(base.BaseMonascaTest): timestamp=now) self.monasca_client.create_metrics(metric) - for timer in xrange(constants.MAX_RETRIES): + for timer in range(constants.MAX_RETRIES): query_parms = '?name=' + name + '&start_time=' + start_iso + '&end_time=' + end_iso resp, response_body = self.monasca_client.list_metrics(query_parms) self.assertEqual(200, resp.status) @@ -678,7 +677,7 @@ class TestMetrics(base.BaseMonascaTest): return metric_dimensions def _verify_dimensions(self, query_param, metric_dimensions): - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_param) self.assertEqual(200, resp.status) elements = response_body['elements'] diff --git a/monasca_tempest_tests/tests/api/test_metrics_names.py b/monasca_tempest_tests/tests/api/test_metrics_names.py index 80c089c22..4ff87b861 100644 --- a/monasca_tempest_tests/tests/api/test_metrics_names.py +++ b/monasca_tempest_tests/tests/api/test_metrics_names.py @@ -55,7 +55,7 @@ class TestMetricsNames(base.BaseMonascaTest): query_param = '?start_time=' + time_iso returned_name_set = set() - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = cls.monasca_client.list_metrics(query_param) elements = response_body['elements'] for element in elements: @@ -92,7 +92,7 @@ class TestMetricsNames(base.BaseMonascaTest): elements = response_body['elements'] num_names = len(elements) - for limit in xrange(1, num_names): + for limit in range(1, num_names): start_index = 0 params = [('limit', limit)] offset = None @@ -115,7 +115,7 @@ class TestMetricsNames(base.BaseMonascaTest): expected_elements = elements[start_index:start_index + limit] expected_names = \ - [expected_elements[i]['name'] for i in xrange( + [expected_elements[i]['name'] for i in range( len(expected_elements))] self.assertEqual(expected_names, new_elements) @@ -158,5 +158,5 @@ class TestMetricsNames(base.BaseMonascaTest): self.fail("No metric names returned") metric_names = [str(response_body['elements'][i]['name']) for i in - xrange(response_names_length)] + range(response_names_length)] return metric_names diff --git a/monasca_tempest_tests/tests/api/test_notification_methods.py b/monasca_tempest_tests/tests/api/test_notification_methods.py index de1e41969..adc228a26 100644 --- a/monasca_tempest_tests/tests/api/test_notification_methods.py +++ b/monasca_tempest_tests/tests/api/test_notification_methods.py @@ -499,7 +499,7 @@ class TestNotificationMethods(base.BaseMonascaTest): self.assertEqual(first_element, response_body['elements'][0]) timeout = time.time() + 60 * 1 # 1 minute timeout - for limit in xrange(1, 5): + for limit in range(1, 5): next_element = elements[limit - 1] offset = limit while True: diff --git a/monasca_tempest_tests/tests/api/test_statistics.py b/monasca_tempest_tests/tests/api/test_statistics.py index e71454df1..7664dd40e 100644 --- a/monasca_tempest_tests/tests/api/test_statistics.py +++ b/monasca_tempest_tests/tests/api/test_statistics.py @@ -62,7 +62,7 @@ class TestStatistics(base.BaseMonascaTest): cls._start_time_iso = start_time_iso num_measurements = 0 - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = cls.monasca_client.\ list_measurements(query_param) elements = response_body['elements'] @@ -100,7 +100,7 @@ class TestStatistics(base.BaseMonascaTest): '&end_time=' + cls._group_by_end_time_iso num_measurements = 0 - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = cls.monasca_client. \ list_measurements(query_param) elements = response_body['elements'] @@ -234,7 +234,7 @@ class TestStatistics(base.BaseMonascaTest): num_metrics = len(metric) self.monasca_client.create_metrics(metric) query_parms = '?name=' + name - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.list_metrics(query_parms) self.assertEqual(200, resp.status) elements = response_body['elements'] @@ -265,7 +265,7 @@ class TestStatistics(base.BaseMonascaTest): self.assertEqual(num_metrics, len(elements)) self.assertEqual(first_element, elements[0]) - for limit in xrange(1, num_metrics): + for limit in range(1, num_metrics): start_index = 0 params = [('name', name), ('merge_metrics', 'true'), @@ -359,9 +359,9 @@ class TestStatistics(base.BaseMonascaTest): self.assertEqual(200, resp.status) all_expected_elements = response_body['elements'] - for limit in xrange(1, 4): + for limit in range(1, 4): offset = None - for i in xrange(4 - limit): + for i in range(4 - limit): query_parms = '?name=' + str(self._group_by_metric_name) + \ '&group_by=key2' + \ '&statistics=avg,max' + \ @@ -398,7 +398,7 @@ class TestStatistics(base.BaseMonascaTest): timestamp_to_iso(self._start_timestamp + 1000 * 4) + \ '&merge_metrics=True' - for i in xrange(constants.MAX_RETRIES): + for i in range(constants.MAX_RETRIES): resp, response_body = self.monasca_client.\ list_measurements(query_param) elements = response_body['elements'] diff --git a/tox.ini b/tox.ini index 03d449a52..639d272f6 100644 --- a/tox.ini +++ b/tox.ini @@ -48,7 +48,7 @@ deps = commands = {[testenv]commands} coverage erase - python setup.py test --coverage --testr-args='{posargs}' --coverage-package-name=monasca_api + python setup.py test --coverage --testr-args='{posargs}' --coverage-package-name=monasca_api --omit=monasca_api/hacking/* coverage report [testenv:debug] @@ -105,3 +105,4 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,tools,build show-source = True [hacking] +local-check-factory = monasca_api.hacking.checks.factory