diff --git a/monasca_tempest_tests/tests/api/helpers.py b/monasca_tempest_tests/tests/api/helpers.py index d969a5e..42185fd 100644 --- a/monasca_tempest_tests/tests/api/helpers.py +++ b/monasca_tempest_tests/tests/api/helpers.py @@ -1,4 +1,5 @@ # (C) Copyright 2015 Hewlett Packard Enterprise Development Company LP +# (C) Copyright 2017 SUSE LLC # # 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 @@ -133,36 +134,46 @@ def get_expected_elements_inner_offset_limit(all_elements, offset, limit, inner_ total_statistics = 0 if offset is None: - offset_id = 0 + offset_id = None offset_time = "" + passed_offset = True else: offset_tuple = offset.split('_') - offset_id = int(offset_tuple[0]) if len(offset_tuple) > 1 else 0 + offset_id = offset_tuple[0] if len(offset_tuple) > 1 else u'0' offset_time = offset_tuple[1] if len(offset_tuple) > 1 else offset_tuple[0] + passed_offset = False for element in all_elements: - element_id = int(element['id']) - if offset_id is not None and element_id < offset_id: + element_id = element['id'] + if (not passed_offset) and element_id != offset_id: continue next_element = None - for value in element[inner_key]: - if (element_id == offset_id and value[0] > offset_time) or \ - element_id > offset_id: + for value in element[inner_key]: + if passed_offset or (element_id == offset_id and value[0] > offset_time): + if not passed_offset: + passed_offset = True if not next_element: next_element = element.copy() next_element[inner_key] = [value] else: next_element[inner_key].append(value) total_statistics += 1 - if total_statistics >= limit: - break + if total_statistics >= limit: + break + if next_element: expected_elements.append(next_element) + if total_statistics >= limit: break - for i in range(len(expected_elements)): - expected_elements[i]['id'] = str(i) + if element_id == offset_id: + passed_offset = True + + # if index is used in the element id, reset to start at zero + if expected_elements and expected_elements[0]['id'].isdigit(): + 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_dimensions.py b/monasca_tempest_tests/tests/api/test_dimensions.py index 400b5dd..4a09e40 100644 --- a/monasca_tempest_tests/tests/api/test_dimensions.py +++ b/monasca_tempest_tests/tests/api/test_dimensions.py @@ -1,4 +1,5 @@ # (C) Copyright 2016 Hewlett Packard Enterprise Development LP +# (C) Copyright 2017 SUSE LLC # # 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 @@ -75,9 +76,14 @@ class TestDimensions(base.BaseMonascaTest): resp, response_body = cls.monasca_client.list_metrics( param) elements = response_body['elements'] + metric_name1_count = 0 for element in elements: returned_name_set.add(str(element['name'])) - if cls._test_metric_names.issubset(returned_name_set): + if (str(element['name']) == metric_name1): + metric_name1_count += 1 + # Java version of influxdb never returns both metric1 in the list but Python does. + if cls._test_metric_names.issubset(returned_name_set) \ + and (metric_name1_count == 2 or i == constants.MAX_RETRIES - 1): return time.sleep(constants.RETRY_WAIT_SECS) diff --git a/monasca_tempest_tests/tests/api/test_statistics.py b/monasca_tempest_tests/tests/api/test_statistics.py index 7664dd4..26e1d6a 100644 --- a/monasca_tempest_tests/tests/api/test_statistics.py +++ b/monasca_tempest_tests/tests/api/test_statistics.py @@ -1,4 +1,5 @@ # (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP +# (C) Copyright 2017 SUSE LLC # # 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 @@ -238,7 +239,7 @@ class TestStatistics(base.BaseMonascaTest): resp, response_body = self.monasca_client.list_metrics(query_parms) self.assertEqual(200, resp.status) elements = response_body['elements'] - if elements: + if elements and len(elements) == num_metrics: break else: time.sleep(constants.RETRY_WAIT_SECS) diff --git a/tox.ini b/tox.ini index 1d2a323..b893c40 100644 --- a/tox.ini +++ b/tox.ini @@ -42,9 +42,16 @@ commands = commands = oslo_debug_helper {posargs} [flake8] -# E123, E125 skipped as they are invalid PEP-8. - -show-source = True -ignore = E123,E125 +# TODO: ignored checks should be enabled in the future +# H201 no 'except:' at least use 'except Exception:' +# H302 import only modules +# H405 multi line docstring summary not separated with an empty line +ignore = F821,H201,H302,H405 +# H106: Don’t put vim configuration in source files +# H203: Use assertIs(Not)None to check for None +enable-extensions=H106,H203 +max-complexity = 50 +max-line-length = 120 builtins = _ -exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build +exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,tools,build +show-source = True