diff --git a/oslo_utils/tests/test_versionutils.py b/oslo_utils/tests/test_versionutils.py index 7e8b27f0..35c5bcd1 100644 --- a/oslo_utils/tests/test_versionutils.py +++ b/oslo_utils/tests/test_versionutils.py @@ -83,3 +83,13 @@ class IsCompatibleTestCase(test_base.BaseTestCase): def test_convert_version_to_tuple(self): self.assertEqual((6, 7, 0), versionutils.convert_version_to_tuple('6.7.0')) + self.assertEqual((6, 7, 0), + versionutils.convert_version_to_tuple('6.7.0a1')) + self.assertEqual((6, 7, 0), + versionutils.convert_version_to_tuple('6.7.0alpha1')) + self.assertEqual((6, 7, 0), + versionutils.convert_version_to_tuple('6.7.0b1')) + self.assertEqual((6, 7, 0), + versionutils.convert_version_to_tuple('6.7.0beta1')) + self.assertEqual((6, 7, 0), + versionutils.convert_version_to_tuple('6.7.0rc1')) diff --git a/oslo_utils/versionutils.py b/oslo_utils/versionutils.py index 98827002..3c6a86ca 100644 --- a/oslo_utils/versionutils.py +++ b/oslo_utils/versionutils.py @@ -20,6 +20,7 @@ Helpers for comparing version strings. """ import functools +import re import packaging.version @@ -87,4 +88,5 @@ def convert_version_to_tuple(version_str): .. versionadded:: 2.0 """ + version_str = re.sub(r'(\d+)(a|alpha|b|beta|rc)\d+$', '\\1', version_str) return tuple(int(part) for part in version_str.split('.'))