Fix microversion comparison approach in functional tests

Manila microversions have following template:

x.y

where 'x' and 'y' both digits.

And now manilaclient functional tests transform string 'x.y' to float,
but it is incorrect thing to do because float assumes that each
left value is bigger than right one. And it is not suitable
for microversion comparisons.

Examples:

Microversions true conditions:
2.9 < 2.10
2.9 < 2.81

Float true conditions:
2.9 > 2.10
2.9 > 2.81

Change-Id: Ibb20e394cefdab82f7be946ce710a6681224051d
Closes-bug: #1518996
This commit is contained in:
Valeriy Ponomaryov
2015-12-14 18:48:15 +02:00
parent 9868257a78
commit bdf2045d95
7 changed files with 22 additions and 12 deletions

View File

@@ -17,6 +17,7 @@ import six
from tempest_lib.cli import output_parser from tempest_lib.cli import output_parser
import testtools import testtools
from manilaclient import api_versions
from manilaclient import config from manilaclient import config
CONF = config.CONF CONF = config.CONF
@@ -93,10 +94,11 @@ def listing(output_lines):
def is_microversion_supported(microversion): def is_microversion_supported(microversion):
if (float(microversion) > float(CONF.max_api_microversion) or return (
float(microversion) < float(CONF.min_api_microversion)): api_versions.APIVersion(CONF.min_api_microversion) <=
return False api_versions.APIVersion(microversion) <=
return True api_versions.APIVersion(CONF.max_api_microversion)
)
def skip_if_microversion_not_supported(microversion): def skip_if_microversion_not_supported(microversion):

View File

@@ -30,7 +30,8 @@ class QuotaClassSetsTest(utils.TestCase):
return quota_classes.QuotaClassSetManager(api=mock_microversion) return quota_classes.QuotaClassSetManager(api=mock_microversion)
def _get_resource_path(self, microversion): def _get_resource_path(self, microversion):
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
return quota_classes.RESOURCE_PATH return quota_classes.RESOURCE_PATH
return quota_classes.RESOURCE_PATH_LEGACY return quota_classes.RESOURCE_PATH_LEGACY

View File

@@ -30,7 +30,8 @@ class QuotaSetsTest(utils.TestCase):
return quotas.QuotaSetManager(api=mock_microversion) return quotas.QuotaSetManager(api=mock_microversion)
def _get_resource_path(self, microversion): def _get_resource_path(self, microversion):
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
return quotas.RESOURCE_PATH return quotas.RESOURCE_PATH
return quotas.RESOURCE_PATH_LEGACY return quotas.RESOURCE_PATH_LEGACY

View File

@@ -30,7 +30,8 @@ class ServicesTest(utils.TestCase):
return services.ServiceManager(api=mock_microversion) return services.ServiceManager(api=mock_microversion)
def _get_resource_path(self, microversion): def _get_resource_path(self, microversion):
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
return services.RESOURCE_PATH return services.RESOURCE_PATH
return services.RESOURCE_PATH_LEGACY return services.RESOURCE_PATH_LEGACY

View File

@@ -58,7 +58,8 @@ class ShareInstancesTest(utils.TestCase):
def test_reset_instance_state(self, microversion, instance): def test_reset_instance_state(self, microversion, instance):
manager = self._get_manager(microversion) manager = self._get_manager(microversion)
state = 'available' state = 'available'
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
action_name = "reset_status" action_name = "reset_status"
else: else:
action_name = "os-reset_status" action_name = "os-reset_status"
@@ -78,7 +79,8 @@ class ShareInstancesTest(utils.TestCase):
@ddt.unpack @ddt.unpack
def test_force_delete_share_snapshot(self, microversion, instance): def test_force_delete_share_snapshot(self, microversion, instance):
manager = self._get_manager(microversion) manager = self._get_manager(microversion)
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
action_name = "force_delete" action_name = "force_delete"
else: else:
action_name = "os-force_delete" action_name = "os-force_delete"

View File

@@ -72,7 +72,8 @@ class ShareSnapshotsTest(utils.TestCase):
def test_reset_snapshot_state(self, microversion, snapshot): def test_reset_snapshot_state(self, microversion, snapshot):
manager = self._get_manager(microversion) manager = self._get_manager(microversion)
state = 'available' state = 'available'
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
action_name = "reset_status" action_name = "reset_status"
else: else:
action_name = "os-reset_status" action_name = "os-reset_status"
@@ -97,7 +98,8 @@ class ShareSnapshotsTest(utils.TestCase):
@ddt.unpack @ddt.unpack
def test_force_delete_share_snapshot(self, microversion, snapshot): def test_force_delete_share_snapshot(self, microversion, snapshot):
manager = self._get_manager(microversion) manager = self._get_manager(microversion)
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
action_name = "force_delete" action_name = "force_delete"
else: else:
action_name = "os-force_delete" action_name = "os-force_delete"

View File

@@ -103,7 +103,8 @@ class TypesTest(utils.TestCase):
@ddt.unpack @ddt.unpack
def test_create_with_default_values(self, microversion, dhss): def test_create_with_default_values(self, microversion, dhss):
manager = self._get_share_types_manager(microversion) manager = self._get_share_types_manager(microversion)
if float(microversion) > 2.6: if (api_versions.APIVersion(microversion) >
api_versions.APIVersion("2.6")):
is_public_keyname = "share_type_access:is_public" is_public_keyname = "share_type_access:is_public"
else: else:
is_public_keyname = "os-share-type-access:is_public" is_public_keyname = "os-share-type-access:is_public"