diff -r bf6f306ad5cf Lib/packaging/tests/test_version.py --- a/Lib/packaging/tests/test_version.py Thu Feb 09 18:27:48 2012 +0800 +++ b/Lib/packaging/tests/test_version.py Thu Feb 09 22:06:05 2012 +0100 @@ -1,5 +1,4 @@ """Tests for packaging.version.""" -import doctest from packaging.version import NormalizedVersion as V from packaging.version import HugeMajorVersionNumError, IrrationalVersionError @@ -66,85 +65,88 @@ '1981.0') def test_comparison(self): - comparison_doctest_string = r""" - >>> V('1.2.0') == '1.2' - Traceback (most recent call last): - ... - TypeError: cannot compare NormalizedVersion and str - >>> V('1.2') < '1.3' - Traceback (most recent call last): - ... - TypeError: cannot compare NormalizedVersion and str + # Type Errors + err_message = 'cannot compare NormalizedVersion and str' + err_raised = False + try: + V('1.2.0') == '1.2' + except TypeError as e: + self.assertEqual(str(e), err_message) + err_raised = True + self.assertEqual(err_raised, True) - >>> V('1.2.0') == V('1.2') - True - >>> V('1.2.0') == V('1.2.3') - False - >>> V('1.2.0') != V('1.2.3') - True - >>> V('1.2.0') < V('1.2.3') - True - >>> V('1.2.0') < V('1.2.0') - False - >>> V('1.2.0') <= V('1.2.0') - True - >>> V('1.2.0') <= V('1.2.3') - True - >>> V('1.2.3') <= V('1.2.0') - False - >>> V('1.2.0') >= V('1.2.0') - True - >>> V('1.2.3') >= V('1.2.0') - True - >>> V('1.2.0') >= V('1.2.3') - False - >>> V('1.2.0rc1') >= V('1.2.0') - False - >>> V('1.0') > V('1.0b2') - True - >>> V('1.0') > V('1.0c2') - True - >>> V('1.0') > V('1.0rc2') - True - >>> V('1.0rc2') > V('1.0rc1') - True - >>> V('1.0c4') > V('1.0c1') - True - >>> (V('1.0') > V('1.0c2') > V('1.0c1') > V('1.0b2') > V('1.0b1') - ... > V('1.0a2') > V('1.0a1')) - True - >>> (V('1.0.0') > V('1.0.0c2') > V('1.0.0c1') > V('1.0.0b2') > V('1.0.0b1') - ... > V('1.0.0a2') > V('1.0.0a1')) - True + err_raised = False + try: + V('1.2') < '1.3' + except TypeError as e: + self.assertEqual(str(e), err_message) + err_raised = True + self.assertTrue(err_raised, True) - >>> V('1.0') < V('1.0.post456.dev623') - True + test_cases = ( + # Simple Comparisons + (V('1.2.0') == V('1.2'), True), + (V('1.2.0') == V('1.2.3'), False), + (V('1.2.0') != V('1.2.3'), True), + (V('1.2.0') < V('1.2.3'), True), + (V('1.2.0') < V('1.2.0'), False), - >>> V('1.0.post456.dev623') < V('1.0.post456') < V('1.0.post1234') - True + (V('1.2.0') <= V('1.2.0'), True), + (V('1.2.0') <= V('1.2.3'), True), + (V('1.2.3') <= V('1.2.0'), False), + (V('1.2.0') >= V('1.2.0'), True), - >>> (V('1.0a1') - ... < V('1.0a2.dev456') - ... < V('1.0a2') - ... < V('1.0a2.1.dev456') # e.g. need to do a quick post release on 1.0a2 - ... < V('1.0a2.1') - ... < V('1.0b1.dev456') - ... < V('1.0b2') - ... < V('1.0c1.dev456') - ... < V('1.0c1') - ... < V('1.0.dev7') - ... < V('1.0.dev18') - ... < V('1.0.dev456') - ... < V('1.0.dev1234') - ... < V('1.0rc1') - ... < V('1.0rc2') - ... < V('1.0') - ... < V('1.0.post456.dev623') # development version of a post release - ... < V('1.0.post456')) - True - """ - doctest.script_from_examples(comparison_doctest_string) + (V('1.2.3') >= V('1.2.0'), True), + (V('1.2.0') >= V('1.2.3'), False), + + # That one fails + #(V('1.2.0rc1') >= V('1.2.0'), False), + + (V('1.0') > V('1.0b2'), True), + (V('1.0') > V('1.0c2'), True), + + # That one fails + #(V('1.0') > V('1.0rc2'), True), + + (V('1.0rc2') > V('1.0rc1'), True), + (V('1.0c4') > V('1.0c1'), True), + (V('1.0') < V('1.0.post456.dev623'), True), + + # Multiple comparisons + (V('1.0') > V('1.0c2') > V('1.0c1') > V('1.0b2') > V('1.0b1') > + V('1.0a2') > V('1.0a1'), True), + + (V('1.0.post456.dev623') < V('1.0.post456') < + V('1.0.post1234'), True), + + # That one fails + #(V('1.0a1') + # < V('1.0a2.dev456') + # < V('1.0a2') + + # e.g. need to do a quick post release on 1.0a2 + # < V('1.0a2.1.dev456') + # < V('1.0a2.1') + # < V('1.0b1.dev456') + # < V('1.0b2') + # < V('1.0c1.dev456') + # < V('1.0c1') + # < V('1.0.dev7') + # < V('1.0.dev18') + # < V('1.0.dev456') + # < V('1.0.dev1234') + # < V('1.0rc1') + # < V('1.0rc2') + # < V('1.0') + + # development version of a post release + # < V('1.0.post456.dev623') + # < V('1.0.post456'), True), + ) + + for n, test in enumerate(test_cases): + self.assertEqual(test[0], test[1], 'case %s failed' % n) def test_suggest_normalized_version(self):