diff --git a/unit_tests/utilities/test_zaza_utilities_os_versions.py b/unit_tests/utilities/test_zaza_utilities_os_versions.py new file mode 100644 index 000000000..44c29c63f --- /dev/null +++ b/unit_tests/utilities/test_zaza_utilities_os_versions.py @@ -0,0 +1,32 @@ +# Copyright 2023 Canonical Ltd. +# +# 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 a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import unit_tests.utils as ut_utils +from zaza.openstack.utilities import os_versions + + +class TestOpenStackUtils(ut_utils.BaseTestCase): + + def test_compare_openstack(self): + zed = os_versions.CompareOpenStack('zed') + yoga = os_versions.CompareOpenStack('yoga') + xena = os_versions.CompareOpenStack('xena') + self.assertGreater(zed, yoga) + self.assertLess(yoga, zed) + self.assertGreaterEqual(zed, zed) + self.assertGreaterEqual(zed, yoga) + self.assertGreaterEqual(yoga, xena) + + self.assertEqual("CompareOpenStack", repr(zed)) diff --git a/zaza/openstack/charm_tests/octavia/setup.py b/zaza/openstack/charm_tests/octavia/setup.py index c284d2878..49c60d51a 100644 --- a/zaza/openstack/charm_tests/octavia/setup.py +++ b/zaza/openstack/charm_tests/octavia/setup.py @@ -35,7 +35,6 @@ def ensure_lts_images(): glance_setup.add_lts_image(image_name='bionic', release='bionic') glance_setup.add_lts_image(image_name='focal', release='focal') glance_setup.add_lts_image(image_name='jammy', release='jammy') - glance_setup.add_lts_image(image_name='noble', release='noble') def add_amphora_image(image_url=None): diff --git a/zaza/openstack/utilities/os_versions.py b/zaza/openstack/utilities/os_versions.py index fd8de2b71..822be69a2 100644 --- a/zaza/openstack/utilities/os_versions.py +++ b/zaza/openstack/utilities/os_versions.py @@ -359,6 +359,10 @@ def __le__(self, other): """Do less than or equals.""" return not self.__gt__(other) + def __repr__(self): + """Return the representation of CompareOpenStack.""" + return "%s<%s>" % (self.__class__.__name__, self._list[self.index]) + def __str__(self): """Give back the item at the index. @@ -384,3 +388,15 @@ class CompareHostReleases(BasicStringComparator): """ _list = UBUNTU_RELEASES + + +class CompareOpenStack(BasicStringComparator): + """Provide comparisons of OpenStack releases. + + Use in the form of + + if CompareOpenStack(release) > 'yoga': + # do something + """ + + _list = list(OPENSTACK_CODENAMES.values())