[arch] fix: some dependencies not being matched during comparisons between numeric and alphanumeric versions

This commit is contained in:
Vinicius Moreira
2021-06-17 17:03:34 -03:00
parent abaffcb850
commit db5eeabfb8
8 changed files with 104 additions and 53 deletions

0
tests/common/__init__.py Normal file
View File

View File

@@ -0,0 +1,46 @@
from unittest import TestCase
from bauh.gems.arch import version
class CompareVersionsTest(TestCase):
def test_both_versions_only_filled_with_numbers_and_same_number_of_divisions(self):
self.assertFalse(version.compare_versions('1', '>', '2'))
self.assertTrue(version.compare_versions('1', '<', '2'))
self.assertTrue(version.compare_versions('1', '<=', '2'))
self.assertTrue(version.compare_versions('2', '>=', '1'))
self.assertTrue(version.compare_versions('1', '==', '1'))
self.assertFalse(version.compare_versions('1.1', '>', '2.0'))
self.assertTrue(version.compare_versions('1.1', '<', '2.0'))
self.assertTrue(version.compare_versions('1.1', '<=', '2.0'))
self.assertTrue(version.compare_versions('2.1', '>', '2.0'))
self.assertTrue(version.compare_versions('2.1', '>=', '2.0'))
self.assertTrue(version.compare_versions('2.0', '==', '2.0'))
def test_versions_only_filled_with_numbers_and_different_number_of_divisons(self):
self.assertFalse(version.compare_versions('1.0', '>', '2'))
self.assertTrue(version.compare_versions('1', '<', '2.0'))
self.assertTrue(version.compare_versions('1.1.1', '<=', '2'))
self.assertTrue(version.compare_versions('2', '>=', '1.0'))
self.assertTrue(version.compare_versions('1.0', '==', '1'))
self.assertTrue(version.compare_versions('1.1', '>', '1'))
self.assertFalse(version.compare_versions('1.1', '<', '1'))
def test_one_version_contain_mixed_letters_and_symbols(self):
self.assertTrue(version.compare_versions('2.3.3op2', '>=', '2.2.6'))
self.assertTrue(version.compare_versions('2.2a', '<', '2.2b'))
self.assertTrue(version.compare_versions('2.2a', '<', '2.3a'))
def test_versions_with_epochs(self):
self.assertTrue(version.compare_versions('1:1', '==', '1:1.0'))
self.assertTrue(version.compare_versions('1:1', '<', '1:1.1'))
self.assertTrue(version.compare_versions('1:1', '<=', '1:1.1'))
self.assertTrue(version.compare_versions('2:0', '>', '1:1.1'))
self.assertTrue(version.compare_versions('1:0', '>', '2.0-1'))
def test_versions_with_release_number(self):
self.assertTrue(version.compare_versions('1.0-1', '<', '1.0-2'))
self.assertTrue(version.compare_versions('1.0-2', '>', '1.0-1'))
self.assertTrue(version.compare_versions('1.0-1', '<', '1.0-10'))
self.assertTrue(version.compare_versions('1.0-10', '>', '1.0-1'))