Ensure SaltStackVersion attributes in _version.py correct

This commit is contained in:
ch3ll 2020-03-13 21:55:35 -04:00
parent 39cdf5382d
commit 0cbf6d3246
No known key found for this signature in database
GPG key ID: 1124C6796EBDBD8D
3 changed files with 63 additions and 5 deletions

View file

@ -241,7 +241,10 @@ class SaltStackVersion(object):
if bugfix is None and not self.new_version(major=major):
bugfix = 0
elif isinstance(bugfix, string_types):
bugfix = int(bugfix)
if not bugfix:
bugfix = None
else:
bugfix = int(bugfix)
if mbugfix is None:
mbugfix = 0
@ -362,6 +365,23 @@ class SaltStackVersion(object):
self.sha])
return tuple(info)
@property
def full_info_all_versions(self):
'''
Return the full info regardless
of which versioning scheme we
are using.
'''
info = [self.major,
self.minor,
self.bugfix,
self.mbugfix,
self.pre_type,
self.pre_num,
self.noc,
self.sha]
return tuple(info)
@property
def string(self):
if self.new_version(self.major):
@ -477,8 +497,16 @@ class SaltStackVersion(object):
parts.extend([
'major={0}'.format(self.major),
'minor={0}'.format(self.minor),
'bugfix={0}'.format(self.bugfix)
])
])
if self.new_version(self.major):
if not self.minor:
parts.remove(''.join([x for x in parts if re.search('^minor*', x)]))
else:
parts.extend([
'bugfix={0}'.format(self.bugfix)
])
if self.mbugfix:
parts.append('minor-bugfix={0}'.format(self.mbugfix))
if self.pre_type:

View file

@ -256,7 +256,7 @@ class WriteSaltVersion(Command):
open(self.distribution.salt_version_hardcoded_path, 'w').write(
INSTALL_VERSION_TEMPLATE.format(
date=DATE,
full_version_info=salt_version.full_info
full_version_info=salt_version.full_info_all_versions
)
)
# pylint: enable=E0602

View file

@ -42,7 +42,8 @@ class VersionTestCase(TestCase):
('v4518.1', (4518, 1, '', 0, 0, None), '4518.1'),
('v3000rc1', (3000, 'rc', 1, 0, None), '3000rc1'),
('v3000rc1-n/a-abcdefff', (3000, 'rc', 1, -1, 'abcdefff'), None),
('3000-n/a-1e7bc8f', (3000, '', 0, -1, '1e7bc8f'), None)
('3000-n/a-1e7bc8f', (3000, '', 0, -1, '1e7bc8f'), None),
('3000.1-n/a-1e7bc8f', (3000, 1, '', 0, -1, '1e7bc8f'), None),
)
@ -221,6 +222,26 @@ class VersionTestCase(TestCase):
assert saltstack_version.full_info, full_info
assert len(saltstack_version.full_info) == len(full_info)
def test_full_info_all_versions(self):
'''
Test full_info_all_versions property method
'''
expect = (
('v2014.1.4.1rc3-n/a-abcdefff', (2014, 1, 4, 1, 'rc', 3, -1, 'abcdefff')),
('v3.4.1.1', (3, 4, 1, 1, '', 0, 0, None)),
('v3000', (3000, None, None, 0, '', 0, 0, None)),
('v3000.0', (3000, 0, None, 0, '', 0, 0, None)),
('v4518.1', (4518, 1, None, 0, '', 0, 0, None)),
('v3000rc1', (3000, None, None, 0, 'rc', 2, 0, None)),
('v3000rc1-n/a-abcdefff', (3000, None, None, 0, 'rc', 1, -1, 'abcdefff')),
)
for vstr, full_info in expect:
saltstack_version = SaltStackVersion.parse(vstr)
assert saltstack_version.full_info_all_versions, full_info
assert len(saltstack_version.full_info_all_versions) == len(full_info)
def test_discover_version(self):
'''
Test call to __discover_version
@ -275,3 +296,12 @@ class VersionTestCase(TestCase):
assert ver.info == (maj_ver, min_ver, 0, 0)
else:
assert ver.info == (maj_ver, min_ver, bug_fix, 0)
def test_bugfix_string(self):
'''
test when bugfix is an empty string
'''
ret = SaltStackVersion(3000, 1, '', 0, 0, None)
assert ret.info == (3000, 1)
assert ret.minor == 1
assert ret.bugfix is None