Properly handle .0 new style versions.

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
Pedro Algarvio 2023-02-06 07:26:41 +00:00 committed by Pedro Algarvio
parent e7c3ae3d27
commit de0070b713
2 changed files with 41 additions and 3 deletions

View file

@ -323,7 +323,9 @@ class SaltStackVersion:
self.mbugfix = mbugfix
self.pre_type = pre_type
self.pre_num = pre_num
if self.new_version(major):
if self.can_have_dot_zero(major):
vnames_key = (major, 0)
elif self.new_version(major):
vnames_key = (major,)
else:
vnames_key = (major, minor)

View file

@ -323,7 +323,12 @@ def test_discover_version(major, minor, tag, expected):
@pytest.mark.parametrize(
"major,minor,bugfix", [(3000, None, None), (3000, 1, None), (3001, 0, None)]
"major,minor,bugfix",
[
(3000, None, None),
(3000, 1, None),
(3001, 0, None),
],
)
def test_info_new_version(major, minor, bugfix):
"""
@ -337,7 +342,12 @@ def test_info_new_version(major, minor, bugfix):
@pytest.mark.parametrize(
"major,minor,bugfix", [(2019, 2, 1), (2018, 3, 0), (2017, 7, None)]
"major,minor,bugfix",
[
(2019, 2, 1),
(2018, 3, 0),
(2017, 7, None),
],
)
def test_info_old_version(major, minor, bugfix):
"""
@ -518,3 +528,29 @@ def test_versions_report_no_extensions_available():
with patch("salt.utils.entrypoints.iter_entry_points", return_value=()):
versions_information = salt.version.versions_information()
assert "Salt Extensions" not in versions_information
@pytest.mark.parametrize(
"version_str,expected_str,expected_name",
[
("2014.1.4", "2014.1.4", "Hydrogen"),
("3000.1", "3000.1", "Neon"),
("3005", "3005", "Phosphorus"),
("3006", "3006.0", "Sulfur"),
("3015.1", "3015.1", "Manganese"),
("3109.3", "3109.3", None),
],
)
def test_parsed_version_name(version_str, expected_str, expected_name):
"""
Test all versioning schemes name attribute.
The old, new, and dot zero, must properly set the version name attribut
test info property method with new versioning scheme
"""
ver = SaltStackVersion.parse(version_str)
assert str(ver) == expected_str
if expected_name:
assert ver.name == expected_name
else:
assert ver.name is None