diff --git a/octoprint_octolapse/test/test_migration_version.py b/octoprint_octolapse/test/test_migration_version.py index c93c84b4..4f6eb444 100644 --- a/octoprint_octolapse/test/test_migration_version.py +++ b/octoprint_octolapse/test/test_migration_version.py @@ -20,6 +20,15 @@ def test_version(self): # test stripping off commit level version info test_version = NumberedVersion('0.4.0rc1+u.dec65f5') + # make sure identical version numbers are considered to be equal + assert ( + NumberedVersion('0.4.0rc1') == NumberedVersion('0.4.0rc1') + ) + + # make sure V prefixes are ignored version numbers are considered to be equal + assert ( + NumberedVersion('v0.4.0rc1') == NumberedVersion('0.4.0rc1') + ) # make sure that rc is always greater than rcX.devX assert ( diff --git a/octoprint_octolapse_setuptools/__init__.py b/octoprint_octolapse_setuptools/__init__.py index 1df4574e..d40274ec 100644 --- a/octoprint_octolapse_setuptools/__init__.py +++ b/octoprint_octolapse_setuptools/__init__.py @@ -31,6 +31,9 @@ class NumberedVersion(version.LooseVersion): exists. ''' def __init__(self, vstring=None, pre_release_tags=['rc'], development_tags=['dev']): + # trim vstring + if vstring != None: + vstring = vstring.strip() self.pre_release_tags = pre_release_tags self.development_tags = development_tags self.original_string = vstring @@ -46,7 +49,11 @@ def __init__(self, vstring=None, pre_release_tags=['rc'], development_tags=['dev self.commit_guid = '' self.is_dirty = False - # First, find any pluses that contain commit level info + # strip off any leading V or v + if len(vstring) > 0 and vstring[0].upper() == "V": + vstring = vstring[1:] + + # find any pluses that contain commit level info if '+' in vstring: index = vstring.find('+') # make sure there is info after the '+'