summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlec Warner <antarus@gentoo.org>2006-12-08 00:12:41 +0000
committerAlec Warner <antarus@gentoo.org>2006-12-08 00:12:41 +0000
commita273b7887f932e0dddc9e2d5065d9a4b6c1af00f (patch)
treee70fd7f7a12bc8d5ea7304b7915aac095fb7cdd3
parent549f824542c1bcb48cb3c368be443777cbe449e8 (diff)
downloadportage-a273b7887f932e0dddc9e2d5065d9a4b6c1af00f.tar.gz
portage-a273b7887f932e0dddc9e2d5065d9a4b6c1af00f.tar.bz2
portage-a273b7887f932e0dddc9e2d5065d9a4b6c1af00f.zip
Add pretty basic vercmp unit testing...need more cases
svn path=/main/trunk/; revision=5213
-rw-r--r--tests/__init__.py21
-rwxr-xr-xtests/runTests20
-rw-r--r--tests/test_vercmp.py47
3 files changed, 88 insertions, 0 deletions
diff --git a/tests/__init__.py b/tests/__init__.py
new file mode 100644
index 000000000..d0d31801d
--- /dev/null
+++ b/tests/__init__.py
@@ -0,0 +1,21 @@
+# tests/__init__.py -- Portage Unit Test functionality
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+import unittest
+
+def main():
+
+ tests = ["test_vercmp"]
+
+ suite = unittest.TestSuite()
+
+ for mod in tests:
+ try:
+ test_mod = __import__(mod)
+ suite.addTest(test_mod.suite())
+ except ImportError:
+ pass
+
+ unittest.TextTestRunner(verbosity=2).run(suite)
diff --git a/tests/runTests b/tests/runTests
new file mode 100755
index 000000000..74b853f09
--- /dev/null
+++ b/tests/runTests
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+# runTests.py -- Portage Unit Test Functionality
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+
+import sys
+import os.path as osp
+
+# Grab SVN portage files instead of normal ones.
+sys.path.insert(0,'../pym')
+
+# Insert our parent dir so we can do shiny import "tests"
+# This line courtesy of Marienz and Pkgcore ;)
+sys.path.insert(0, osp.dirname(osp.dirname(osp.abspath(__file__))))
+
+import tests
+
+tests.main()
diff --git a/tests/test_vercmp.py b/tests/test_vercmp.py
new file mode 100644
index 000000000..ffab892ed
--- /dev/null
+++ b/tests/test_vercmp.py
@@ -0,0 +1,47 @@
+# test_vercmp.py -- Portage Unit Testing Functionality
+# Copyright 2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+from unittest import TestCase
+from unittest import TestLoader
+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")]
+ for test in tests:
+ self.failIf( 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")]
+ for test in tests:
+ self.failIf( vercmp( test[0], test[1]) >= 0, msg="%s > %s? Wrong!" % (test[0],test[1]))
+
+
+ def testVerCmpEqual(self):
+
+ tests = [ ("4.0", "4.0") ]
+ for test in tests:
+ self.failIf( 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")]
+ for test in tests:
+ self.failIf( vercmp( test[0], test[1]) == 0, msg="%s == %s? Wrong!" % (test[0],test[1]))
+
+def suite():
+ suite = TestLoader().loadTestsFromTestCase(VerCmpTestCase)
+ return suite
+