Make metrics test compatible with python3

Story: 2000975
Task: 24396

Change-Id: I18094bed65d7de763d9bfd05ce2e7f4be5f2ee91
This commit is contained in:
Adrian Czarnecki 2018-08-06 10:06:52 +02:00
parent 41e082b214
commit 33bc7a08c0
11 changed files with 53 additions and 38 deletions

View File

@ -197,7 +197,7 @@ class MonascaClient(rest_client.RestClient):
request_body['ok_actions'] = ok_actions
request_body['undetermined_actions'] = undetermined_actions
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
request_body[key] = value
resp, response_body = self.put(uri, json.dumps(request_body))
@ -236,7 +236,7 @@ class MonascaClient(rest_client.RestClient):
if undetermined_actions is not None:
request_body['undetermined_actions'] = undetermined_actions
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
request_body[key] = value
resp, response_body = self.patch(uri, json.dumps(request_body))
@ -266,7 +266,7 @@ class MonascaClient(rest_client.RestClient):
request_body['lifecycle_state'] = lifecycle_state
request_body['link'] = link
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
request_body[key] = value
resp, response_body = self.put(uri, json.dumps(request_body))
@ -283,7 +283,7 @@ class MonascaClient(rest_client.RestClient):
if link is not None:
request_body['link'] = link
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
request_body[key] = value
resp, response_body = self.patch(uri, json.dumps(request_body))
@ -328,7 +328,7 @@ class MonascaClient(rest_client.RestClient):
request_body['alarm_actions'] = alarm_actions
request_body['undetermined_actions'] = undetermined_actions
for key, value in kwargs.iteritems():
for key, value in kwargs.items():
request_body[key] = value
resp, response_body = self.put(uri, json.dumps(request_body))

View File

@ -16,6 +16,7 @@
import time
import six.moves.urllib.parse as urlparse
from six import PY3
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions
@ -219,8 +220,7 @@ class TestAlarmDefinitions(base.BaseMonascaTest):
alarm_def_name = data_utils.rand_name('monitoring_alarm')
alarm_definition = helpers.create_alarm_definition(
name=alarm_def_name,
expression="avg(mem_total_mb{dev=\usr\local\bin}) "
"gt 0",
expression="avg(mem_total_mb{dev=\\usr\local\bin}) gt 0",
alarm_actions=[notification_id],
ok_actions=[notification_id],
undetermined_actions=[notification_id],
@ -339,8 +339,9 @@ class TestAlarmDefinitions(base.BaseMonascaTest):
@decorators.attr(type="gate")
def test_list_alarm_definitions_with_multibyte_character(self):
name = data_utils.rand_name('_').decode('utf8')
description = ''.decode('utf8')
rand_name = data_utils.rand_name('_')
name = rand_name if PY3 else rand_name.decode('utf8')
description = '' if PY3 else ''.decode('utf8')
response_body_list = self._create_alarm_definitions(
name=name,
@ -720,8 +721,9 @@ class TestAlarmDefinitions(base.BaseMonascaTest):
@decorators.attr(type="gate")
def test_get_alarm_definition_with_multibyte_character(self):
# Create an alarm definition
name = data_utils.rand_name('_').decode('utf8')
description = ''.decode('utf8')
rand_name = data_utils.rand_name('_')
name = rand_name if PY3 else rand_name.decode('utf-8')
description = '' if PY3 else ''.decode('utf8')
response_body_list = self._create_alarm_definitions(
name=name,
description=description,

View File

@ -13,7 +13,6 @@
# under the License.
import time
import urllib
import six.moves.urllib.parse as urlparse
@ -527,7 +526,7 @@ class TestAlarms(base.BaseMonascaTest):
for iter in range(2):
sort_by_params = 'link,lifecycle_state'
if iter == 1:
query_parms = urllib.urlencode([('sort_by', sort_by_params)])
query_parms = urlparse.urlencode([('sort_by', sort_by_params)])
else:
query_parms = 'sort_by=' + sort_by_params
resp, response_body = self.monasca_client.list_alarms(

View File

@ -13,7 +13,8 @@
# under the License.
import time
import urllib
import six.moves.urllib.parse as parse
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
@ -239,7 +240,7 @@ class TestAlarmsCount(base.BaseMonascaTest):
# a string. The API needs to handle both.
# test_with_all_group_by_params tests multiple group_by without
# urlencode
query_params = urllib.urlencode([('group_by', 'state,severity')])
query_params = parse.urlencode([('group_by', 'state,severity')])
resp, response_body = self.monasca_client.count_alarms("?" + query_params)
self._verify_counts_format(response_body, group_by=['state', 'severity'])

View File

@ -92,7 +92,7 @@ class TestAlarmsStateHistoryOneTransition(base.BaseMonascaTest):
if elements:
element = elements[0]
dimension = element['metrics'][0]['dimensions']
dimension_items = dimension.items()
dimension_items = list(dimension.items())
dimension_item = dimension_items[0]
dimension_item_0 = dimension_item[0]
dimension_item_1 = dimension_item[1]

View File

@ -14,7 +14,8 @@
# under the License.
import time
from urllib import urlencode
from six.moves.urllib.parse import urlencode
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators

View File

@ -14,6 +14,8 @@
import time
from six import text_type
from monasca_tempest_tests.tests.api import base
from monasca_tempest_tests.tests.api import constants
from monasca_tempest_tests.tests.api import helpers
@ -90,7 +92,7 @@ class TestMeasurements(base.BaseMonascaTest):
format(name2, start_time, end_time))
for timer in range(constants.MAX_RETRIES):
responses = map(cls.monasca_client.list_measurements, queries)
responses = list(map(cls.monasca_client.list_measurements, queries))
resp_first = responses[0][0]
response_body_first = responses[0][1]
resp_second = responses[1][0]
@ -271,7 +273,7 @@ class TestMeasurements(base.BaseMonascaTest):
self._verify_list_measurements_elements(elements, None, None)
for measurements in elements:
self.assertEqual(1, len(measurements['dimensions'].keys()))
self.assertEqual([u'key2'], measurements['dimensions'].keys())
self.assertEqual([u'key2'], list(measurements['dimensions'].keys()))
@decorators.attr(type="gate")
def test_list_measurements_with_group_by_multiple(self):
@ -347,7 +349,7 @@ class TestMeasurements(base.BaseMonascaTest):
'}&merge_metrics=false'.
format(self._names_list[0], self._start_time,
self._end_time))
responses = map(self.monasca_client.list_measurements, queries)
responses = list(map(self.monasca_client.list_measurements, queries))
for i in range(2):
self._verify_list_measurements(responses[i][0], responses[i][1])
@ -388,7 +390,7 @@ class TestMeasurements(base.BaseMonascaTest):
self.assertEqual(set(element),
set(['columns', 'dimensions', 'id',
'measurements', 'name']))
self.assertTrue(type(element['name']) is unicode)
self.assertTrue(type(element['name']) is text_type)
self.assertTrue(type(element['dimensions']) is dict)
self.assertTrue(type(element['columns']) is list)
self.assertTrue(type(element['measurements']) is list)

View File

@ -18,6 +18,8 @@
import time
from six.moves import urllib_parse as urlparse
from six import PY3
from six import text_type
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
@ -75,15 +77,20 @@ class TestMetrics(base.BaseMonascaTest):
@decorators.attr(type='gate')
def test_create_metric_with_multibyte_character(self):
name = data_utils.rand_name('').decode('utf8')
key = data_utils.rand_name('').decode('utf8')
value = data_utils.rand_name('').decode('utf8')
name = data_utils.rand_name('') if PY3 \
else data_utils.rand_name('').decode('utf8')
key = data_utils.rand_name('') if PY3 \
else data_utils.rand_name('').decode('utf8')
value = data_utils.rand_name('') if PY3 \
else data_utils.rand_name('').decode('utf8')
timestamp = int(round(time.time() * 1000))
time_iso = helpers.timestamp_to_iso(timestamp)
end_timestamp = int(round((time.time() + 3600 * 24) * 1000))
end_time_iso = helpers.timestamp_to_iso(end_timestamp)
value_meta_key = data_utils.rand_name('value_meta_').decode('utf8')
value_meta_value = data_utils.rand_name('value_meta_').decode('utf8')
value_meta_key = data_utils.rand_name('value_meta_') if PY3 \
else data_utils.rand_name('value_meta_').decode('utf8')
value_meta_value = data_utils.rand_name('value_meta_') if PY3 \
else data_utils.rand_name('value_meta_').decode('utf8')
metric = helpers.create_metric(name=name,
dimensions={key: value},
timestamp=timestamp,
@ -616,8 +623,8 @@ class TestMetrics(base.BaseMonascaTest):
def _verify_list_metrics_element(self, element, test_key=None,
test_value=None, test_name=None):
self.assertTrue(type(element['id']) is unicode)
self.assertTrue(type(element['name']) is unicode)
self.assertTrue(type(element['id']) is text_type)
self.assertTrue(type(element['name']) is text_type)
self.assertTrue(type(element['dimensions']) is dict)
self.assertEqual(set(element), set(['dimensions', 'id', 'name']))
self.assertTrue(str(element['id']) is not None)
@ -653,7 +660,7 @@ class TestMetrics(base.BaseMonascaTest):
if elements:
dimensions = elements[0]
dimension = dimensions['dimensions']
value = dimension[unicode(key)]
value = dimension[text_type(key)]
self.assertEqual(value_org, str(value))
break
else:

View File

@ -14,12 +14,13 @@
import time
from six.moves.urllib.parse import urlencode
from monasca_tempest_tests.tests.api import base
from monasca_tempest_tests.tests.api import constants
from monasca_tempest_tests.tests.api import helpers
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from urllib import urlencode
class TestMetricsNames(base.BaseMonascaTest):

View File

@ -15,6 +15,7 @@
import time
import six.moves.urllib.parse as urlparse
from six import text_type
from monasca_tempest_tests.tests.api import base
from monasca_tempest_tests.tests.api import constants
@ -336,11 +337,11 @@ class TestNotificationMethods(base.BaseMonascaTest):
element = elements[0]
self.assertTrue(set(['id', 'links', 'name', 'type', 'address', 'period']) ==
set(element))
self.assertTrue(type(element['id']) is unicode)
self.assertTrue(type(element['id']) is text_type)
self.assertTrue(type(element['links']) is list)
self.assertTrue(type(element['name']) is unicode)
self.assertTrue(type(element['type']) is unicode)
self.assertTrue(type(element['address']) is unicode)
self.assertTrue(type(element['name']) is text_type)
self.assertTrue(type(element['type']) is text_type)
self.assertTrue(type(element['address']) is text_type)
resp, response_body = self.monasca_client.\
delete_notification_method(id)

View File

@ -16,6 +16,8 @@
import time
import six.moves.urllib.parse as urlparse
from six.moves.urllib.parse import urlencode
from six import text_type
from monasca_tempest_tests.tests.api import base
from monasca_tempest_tests.tests.api import constants
@ -23,7 +25,6 @@ from monasca_tempest_tests.tests.api import helpers
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions
from urllib import urlencode
NUM_MEASUREMENTS = 100
MIN_REQUIRED_MEASUREMENTS = 2
@ -331,7 +332,7 @@ class TestStatistics(base.BaseMonascaTest):
self.assertEqual(len(elements), 2)
for statistics in elements:
self.assertEqual(1, len(statistics['dimensions'].keys()))
self.assertEqual([u'key2'], statistics['dimensions'].keys())
self.assertEqual([u'key2'], list(statistics['dimensions'].keys()))
@decorators.attr(type="gate")
def test_list_statistics_with_group_by_multiple(self):
@ -479,9 +480,9 @@ class TestStatistics(base.BaseMonascaTest):
def _verify_element(self, element):
self.assertTrue(set(['id', 'name', 'dimensions', 'columns',
'statistics']) == set(element))
self.assertTrue(type(element['id']) is unicode)
self.assertTrue(type(element['id']) is text_type)
self.assertTrue(element['id'] is not None)
self.assertTrue(type(element['name']) is unicode)
self.assertTrue(type(element['name']) is text_type)
self.assertTrue(type(element['dimensions']) is dict)
self.assertEqual(len(element['dimensions']), 0)
self.assertTrue(type(element['columns']) is list)