From 5614a8a8e6db658c89b8768dbbe97a2db35a95af Mon Sep 17 00:00:00 2001 From: Jerry James Date: Nov 29 2020 00:08:18 +0000 Subject: Fixes #1. Fix bugs in handling nonnumeric version fields. --- diff --git a/opam2rpm/version.py b/opam2rpm/version.py index a48a9a3..f7af31b 100644 --- a/opam2rpm/version.py +++ b/opam2rpm/version.py @@ -20,7 +20,7 @@ """Implementation of the Debian versioning scheme. -A version string partitioned into alternating non-digit and digit parts. +A version string is partitioned into alternating non-digit and digit parts. The first part is a (possibly empty) non-digit part. Corresponding parts are compared when deciding whether one version is greater than another. @@ -182,7 +182,7 @@ class Version: ver += dot + ver2 else: ver += '.0' - return ver, '0.1.'.join(elems) if elems else '1' + return ver, '0.1.' + ''.join(elems) if elems else '1' def to_fedora(self) -> Tuple[str, str]: """Convert this version number to Fedora version and release numbers.""" @@ -193,4 +193,4 @@ class Version: (self.elems[0] == '' or self.elems[0] == 'v'): return Version._to_fedora(self.elems[1:]) # The version does not exist or starts with something nonnumeric. - return '0', '0.1.'.join(self.elems) + return '0', '0.1.' + ''.join(self.elems) diff --git a/tests/test_version.py b/tests/test_version.py index 1c49990..aad2a97 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -46,8 +46,8 @@ class TestToFedora: assert(Version("").to_fedora() == ("0", "0.1")) def _test_from_single_digit(self): - # FIXME: this does not look right: - assert(Version("b1.2").to_fedora() == ('0', 'b0.1.10.1..0.1.2')) + assert(Version("b1.2").to_fedora() == ('0', '0.1.b1.2')) + assert(Version("1.2b3").to_fedora() == ('1.2', '0.1.b3')) def test_general_case(self): assert(Version("v0.1.2~").to_fedora() == ("0.1.2.0", "1"))