# 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]))