diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2019-08-24 14:04:55 +0200 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2019-08-26 21:34:44 +0200 |
commit | c415ee4cd87915191b1ca8df2d3fbf7e49d4bbbf (patch) | |
tree | 4192534d6ed4c301cd640417f50223925bd0240e /tests/test_base.py | |
parent | 47fc7229ba24de0610134cadcc61884c6097f4fe (diff) | |
download | semantic-version-c415ee4cd87915191b1ca8df2d3fbf7e49d4bbbf.tar.gz |
Add `Version.precedence_key`.
This will be used in `sort(..., key=lambda v: v.precedence_key)`.
Remove previous comparison/ordering implementation.
The current implementation relies on a 4-tuple:
- major, minor, patch (as integers) - natural order matches precedence
rules
- a tuple of identifiers for the prerelease component.
The identifiers for the prerelease components are based on:
- A `NumericIdentifier` class, that compares number using their natural
order, and always compares lower than non-numeric identifiers
- A `AlphaIdentifier` class for non-numeric identifiers; it compares
versions using ASCII ordering.
- A `MaxIdentifier` class, that compares higher to any other identifier;
used to ensure that a non-prerelease version is greater than any of
its prereleases.
Diffstat (limited to 'tests/test_base.py')
-rwxr-xr-x | tests/test_base.py | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/tests/test_base.py b/tests/test_base.py index d5794b3..5a6497b 100755 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -10,57 +10,6 @@ import unittest from semantic_version import base -class ComparisonTestCase(unittest.TestCase): - def test_identifier_cmp(self): - cases = [ - # Integers - ('1', '1', 0), - ('1', '2', -1), - ('11', '2', 1), - ('3333', '40', 1), - - # Text - ('aa', 'ab', -1), - ('aa', 'aa', 0), - ('ab', 'aa', 1), - ('aaa', 'ab', -1), - - # Mixed - ('10', '1a', -1), - ('1a', '10', 1), - ('ab1', '42', 1), - ] - - for a, b, expected in cases: - with self.subTest(a=a, b=b): - result = base.identifier_cmp(a, b) - self.assertEqual( - expected, result, - "identifier_cmp(%r, %r) returned %d instead of %d" % ( - a, b, result, expected)) - - def test_identifier_list_cmp(self): - cases = [ - # Same length - (['1', '2', '3'], ['1', '2', '3'], 0), - (['1', '2', '3'], ['1', '3', '2'], -1), - (['1', '2', '4'], ['1', '2', '3'], 1), - - # Mixed lengths - (['1', 'a'], ['1', 'a', '0'], -1), - (['1', 'a', '0'], ['1', 'a'], 1), - (['1', 'b'], ['1', 'a', '1000'], 1), - ] - - for a, b, expected in cases: - with self.subTest(a=a, b=b): - result = base.identifier_list_cmp(a, b) - self.assertEqual( - expected, result, - "identifier_list_cmp(%r, %r) returned %d instead of %d" % ( - a, b, result, expected)) - - class TopLevelTestCase(unittest.TestCase): """Test module-level functions.""" |