diff --git a/fuel_plugin/ostf_adapter/nose_plugin/nose_utils.py b/fuel_plugin/ostf_adapter/nose_plugin/nose_utils.py index 6af88b8d..19d8312c 100644 --- a/fuel_plugin/ostf_adapter/nose_plugin/nose_utils.py +++ b/fuel_plugin/ostf_adapter/nose_plugin/nose_utils.py @@ -202,8 +202,8 @@ def _compare_release_versions(cluster_release_version, test_release_version): test_openstack_ver, test_fuel_ver = test_release_version.split('-') cond = ( - (version.StrictVersion(cl_openstack_ver) >= - version.StrictVersion(test_openstack_ver)) + (version.LooseVersion(cl_openstack_ver) >= + version.LooseVersion(test_openstack_ver)) and (version.StrictVersion(cl_fuel_ver) >= version.StrictVersion(test_fuel_ver)) diff --git a/fuel_plugin/testing/fixture/dummy_tests/test_versioning.py b/fuel_plugin/testing/fixture/dummy_tests/test_versioning.py index 3a53cb6e..cec459bb 100644 --- a/fuel_plugin/testing/fixture/dummy_tests/test_versioning.py +++ b/fuel_plugin/testing/fixture/dummy_tests/test_versioning.py @@ -47,3 +47,13 @@ class TestVersioning(unittest2.TestCase): Deployment tags: releases_comparison """ self.assertTrue(True) + + def test_simple_fake_alphabetic(self): + """This is simple fake test + for versioning checking. + It should be discovered for + releases == of >= liberty-8.0 + Available since release: liberty-8.0 + Deployment tags: releases_comparison + """ + self.assertTrue(True) diff --git a/fuel_plugin/testing/tests/unit/test_nose_discovery.py b/fuel_plugin/testing/tests/unit/test_nose_discovery.py index 2b129d9f..fd1186f9 100644 --- a/fuel_plugin/testing/tests/unit/test_nose_discovery.py +++ b/fuel_plugin/testing/tests/unit/test_nose_discovery.py @@ -12,6 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. +import random + from mock import Mock from nose import case @@ -63,10 +65,30 @@ class TestNoseDiscovery(base.BaseUnitTest): def _find_needed_test_set(self, test_set_id): return next(t for t in self.test_sets if t.id == test_set_id) + def test_compare_release_versions(self): + def cmp_version(first, second): + if nose_utils._compare_release_versions(first, second): + return 1 + else: + return -1 + + expected = [ + '2014.2-6.0', + '2014.2.2-6.1', + '2015.1.0-7.0', + 'liberty-8.0' + ] + + releases = expected[:] + random.shuffle(releases) + self.assertEqual(expected, + sorted(releases, + cmp=cmp_version)) + def test_discovery(self): expected = { 'test_sets_count': 10, - 'tests_count': 29 + 'tests_count': 30 } self.assertTrue( @@ -187,6 +209,10 @@ class TestNoseDiscovery(base.BaseUnitTest): 'test_versioning.TestVersioning.' 'test_simple_fake_second'), 'available_since_release': '2015.2-6.1', }, + {'name': ('fuel_plugin.testing.fixture.dummy_tests.' + 'test_versioning.TestVersioning.' + 'test_simple_fake_alphabetic'), + 'available_since_release': 'liberty-8.0', } ] }