blob: 05a4a3e977a789ac19daa0368f40e403f08bbe39 [file] [log] [blame]
#!/usr/bin/env python3
import unittest
from registry import Version
# Translated from:
# https://github.com/bazelbuild/bazel/blob/79a53def2ebbd9358450f739ea37bf70662e8614/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/VersionTest.java#L39
class TestVersionCompare(unittest.TestCase):
def testReleaseVersion(self):
self.assertTrue(Version("2.0") > Version("1.0"))
self.assertTrue(Version("2.0") > Version("1.9"))
self.assertTrue(Version("11.0") > Version("3.0"))
self.assertTrue(Version("1.0.1") > Version("1.0"))
self.assertTrue(Version("1.0.0") > Version("1.0"))
self.assertTrue(Version("1.0+build2") == Version("1.0+build3"))
self.assertTrue(Version("1.0") > Version("1.0-pre"))
self.assertTrue(Version("1.0") == Version("1.0+build-notpre"))
def testReleaseVersionWithLetters(self):
self.assertTrue(Version("1.0.patch.3") > Version("1.0"))
self.assertTrue(Version("1.0.patch.3") > Version("1.0.patch.2"))
self.assertTrue(Version("1.0.patch.3") < Version("1.0.patch.10"))
self.assertTrue(Version("1.0.patch3") > Version("1.0.patch10"))
self.assertTrue(Version("4") < Version("a"))
self.assertTrue(Version("abc") < Version("abd"))
def testPrereleaseVersion(self):
self.assertTrue(Version("1.0-pre") > Version("1.0-are"))
self.assertTrue(Version("1.0-3") > Version("1.0-2"))
self.assertTrue(Version("1.0-pre") < Version("1.0-pre.foo"))
self.assertTrue(Version("1.0-pre.3") > Version("1.0-pre.2"))
self.assertTrue(Version("1.0-pre.10") > Version("1.0-pre.2"))
self.assertTrue(Version("1.0-pre.10a") < Version("1.0-pre.2a"))
self.assertTrue(Version("1.0-pre.99") < Version("1.0-pre.2a"))
self.assertTrue(Version("1.0-pre.patch.3") < Version("1.0-pre.patch.4"))
self.assertTrue(Version("1.0--") < Version("1.0----"))
if __name__ == "__main__":
unittest.main()