diff options
author | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2012-05-15 00:23:21 +0200 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polytechnique.org> | 2012-05-15 00:23:21 +0200 |
commit | e57e90d86ec1edf21cde6f0a4da56ac6273fedbc (patch) | |
tree | 9096fb8fa4166de597decfc1ac8ce4df824e834c | |
parent | 8a52f092379ae2f8c45de385cb13ab6a9f2d9017 (diff) | |
download | semantic-version-e57e90d86ec1edf21cde6f0a4da56ac6273fedbc.tar.gz |
Full coverage.
Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org>
-rw-r--r-- | src/semantic_version/base.py | 12 | ||||
-rwxr-xr-x | tests/test_base.py | 14 | ||||
-rwxr-xr-x | tests/test_match.py | 25 | ||||
-rwxr-xr-x | tests/test_parsing.py | 6 |
4 files changed, 45 insertions, 12 deletions
diff --git a/src/semantic_version/base.py b/src/semantic_version/base.py index 5ba09c7..c9a5fef 100644 --- a/src/semantic_version/base.py +++ b/src/semantic_version/base.py @@ -90,18 +90,12 @@ class SemanticVersion(object): major = int(major) if minor is None: - if partial: - return (major, None, None, None, None) - else: - raise ValueError('Missing minor number: %r' % version_string) + return (major, None, None, None, None) else: minor = int(minor) if patch is None: - if partial: - return (major, minor, None, None, None) - else: - raise ValueError('Missing patch number: %r' % version_string) + return (major, minor, None, None, None) else: patch = int(patch) @@ -258,7 +252,7 @@ class RequirementSpec(object): return version >= self.spec elif self.kind == self.KIND_GT: return version > self.spec - else: + else: # pragma: no cover raise ValueError('Unexpected match kind: %r' % self.kind) def __str__(self): diff --git a/tests/test_base.py b/tests/test_base.py index f89e750..0543744 100755 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -91,6 +91,11 @@ class SemanticVersionTestCase(unittest.TestCase): for field in fields: self.assertIn(repr(field), repr(version)) + def test_compare_to_self(self): + for text in self.versions: + self.assertEqual(base.SemanticVersion(text), base.SemanticVersion(text)) + self.assertNotEqual(text, base.SemanticVersion(text)) + partial_versions = { '1.0': (1, 0, None, None, None), '1': (1, None, None, None, None), @@ -128,6 +133,13 @@ class SemanticVersionTestCase(unittest.TestCase): for field in fields: self.assertIn(repr(field), repr(version)) + def test_compare_partial_to_self(self): + for text in self.partial_versions: + self.assertEqual( + base.SemanticVersion(text, partial=True), + base.SemanticVersion(text, partial=True)) + self.assertNotEqual(text, base.SemanticVersion(text, partial=True)) + -if __name__ == '__main__': +if __name__ == '__main__': # pragma: no cover unittest.main() diff --git a/tests/test_match.py b/tests/test_match.py index 64011b1..5c042f5 100755 --- a/tests/test_match.py +++ b/tests/test_match.py @@ -8,6 +8,8 @@ import semantic_version class MatchTestCase(unittest.TestCase): invalid_specs = [ + '', + '!0.1', '<0.1', '<=0.1.4a', '>0.1.1.1', @@ -41,6 +43,26 @@ class MatchTestCase(unittest.TestCase): '0.1.1', '0.1.2-rc1', '0.1.2-rc1.3.4', + '0.1.2', + ], + '<0.1.2': [ + '0.1.1', + '0.1.2-rc1', + '0.1.2-rc1.3.4', + '0.1.2-rc1+build4.5', + ], + '>=0.1.1': [ + '0.1.1', + '0.1.1+build4.5', + '0.1.2-rc1.3', + '0.2.0', + '1.0.0', + ], + '>0.1.1': [ + '0.1.1+build4.5', + '0.1.2-rc1.3', + '0.2.0', + '1.0.0', ], } @@ -60,8 +82,9 @@ class MatchTestCase(unittest.TestCase): version = semantic_version.SemanticVersion(version_txt) self.assertTrue(spec.match(version), "%r does not match %r" % (version, spec)) + self.assertTrue(semantic_version.match(spec_txt, version_txt)) -if __name__ == '__main__': +if __name__ == '__main__': # pragma: no cover unittest.main() diff --git a/tests/test_parsing.py b/tests/test_parsing.py index cdf21fc..b59b8a3 100755 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -8,6 +8,9 @@ import semantic_version class ParsingTestCase(unittest.TestCase): invalids = [ + None, + '', + '0', '0.1', '0.1.4a', '0.1.1.1', @@ -58,7 +61,8 @@ class ComparisonTestCase(unittest.TestCase): self.assertTrue(first_ver == second_ver, '%r != %r' % (first_ver, second_ver)) else: self.assertTrue(first_ver > second_ver, '%r !> %r' % (first_ver, second_ver)) + self.assertEqual(cmp(i, j), semantic_version.compare(first, second)) -if __name__ == '__main__': +if __name__ == '__main__': # pragma: no cover unittest.main() |