| # test_vercmp.py -- Portage Unit Testing Functionality |
| # Copyright 2006 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from portage.tests import TestCase |
| from portage.versions import vercmp |
| |
| class VerCmpTestCase(TestCase): |
| """ A simple testCase for portage.versions.vercmp() |
| """ |
| |
| def testVerCmpGreater(self): |
| |
| tests = [ |
| ("6.0", "5.0"), ("5.0", "5"), |
| ("1.0-r1", "1.0-r0"), |
| ("1.0-r1", "1.0"), |
| ("cvs.9999", "9999"), |
| ("999999999999999999999999999999", "999999999999999999999999999998"), |
| ("1.0.0", "1.0"), |
| ("1.0.0", "1.0b"), |
| ("1b", "1"), |
| ("1b_p1", "1_p1"), |
| ("1.1b", "1.1"), |
| ("12.2.5", "12.2b"), |
| ] |
| for test in tests: |
| self.assertFalse(vercmp(test[0], test[1]) <= 0, msg="%s < %s? Wrong!" % (test[0], test[1])) |
| |
| def testVerCmpLess(self): |
| """ |
| pre < alpha < beta < rc < p -> test each of these, they are inductive (or should be..) |
| """ |
| tests = [ |
| ("4.0", "5.0"), ("5", "5.0"), ("1.0_pre2", "1.0_p2"), |
| ("1.0_alpha2", "1.0_p2"), ("1.0_alpha1", "1.0_beta1"), ("1.0_beta3", "1.0_rc3"), |
| ("1.001000000000000000001", "1.001000000000000000002"), |
| ("1.00100000000", "1.0010000000000000001"), |
| ("9999", "cvs.9999"), |
| ("999999999999999999999999999998", "999999999999999999999999999999"), |
| ("1.01", "1.1"), |
| ("1.0-r0", "1.0-r1"), |
| ("1.0", "1.0-r1"), |
| ("1.0", "1.0.0"), |
| ("1.0b", "1.0.0"), |
| ("1_p1", "1b_p1"), |
| ("1", "1b"), |
| ("1.1", "1.1b"), |
| ("12.2b", "12.2.5"), |
| ] |
| for test in tests: |
| self.assertFalse(vercmp(test[0], test[1]) >= 0, msg="%s > %s? Wrong!" % (test[0], test[1])) |
| |
| def testVerCmpEqual(self): |
| |
| tests = [ |
| ("4.0", "4.0"), |
| ("1.0", "1.0"), |
| ("1.0-r0", "1.0"), |
| ("1.0", "1.0-r0"), |
| ("1.0-r0", "1.0-r0"), |
| ("1.0-r1", "1.0-r1") |
| ] |
| for test in tests: |
| self.assertFalse(vercmp(test[0], test[1]) != 0, msg="%s != %s? Wrong!" % (test[0], test[1])) |
| |
| def testVerNotEqual(self): |
| |
| tests = [ |
| ("1", "2"), ("1.0_alpha", "1.0_pre"), ("1.0_beta", "1.0_alpha"), |
| ("0", "0.0"), |
| ("cvs.9999", "9999"), |
| ("1.0-r0", "1.0-r1"), |
| ("1.0-r1", "1.0-r0"), |
| ("1.0", "1.0-r1"), |
| ("1.0-r1", "1.0"), |
| ("1.0", "1.0.0"), |
| ("1_p1", "1b_p1"), |
| ("1b", "1"), |
| ("1.1b", "1.1"), |
| ("12.2b", "12.2"), |
| ] |
| for test in tests: |
| self.assertFalse(vercmp(test[0], test[1]) == 0, msg="%s == %s? Wrong!" % (test[0], test[1])) |