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
import testtools
from manilaclient import api_versions
from manilaclient import config
CONF = config.CONF
@@ -93,10 +94,11 @@ def listing(output_lines):
def is_microversion_supported(microversion):
if (float(microversion) > float(CONF.max_api_microversion) or
float(microversion) < float(CONF.min_api_microversion)):
return False
return True
return (
api_versions.APIVersion(CONF.min_api_microversion) <=
api_versions.APIVersion(microversion) <=
api_versions.APIVersion(CONF.max_api_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)
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_LEGACY

View File

@@ -30,7 +30,8 @@ class QuotaSetsTest(utils.TestCase):
return quotas.QuotaSetManager(api=mock_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_LEGACY

View File

@@ -30,7 +30,8 @@ class ServicesTest(utils.TestCase):
return services.ServiceManager(api=mock_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_LEGACY

View File

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

View File

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

View File

@@ -103,7 +103,8 @@ class TypesTest(utils.TestCase):
@ddt.unpack
def test_create_with_default_values(self, microversion, dhss):
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"
else:
is_public_keyname = "os-share-type-access:is_public"