From a273b7887f932e0dddc9e2d5065d9a4b6c1af00f Mon Sep 17 00:00:00 2001 From: Alec Warner Date: Fri, 8 Dec 2006 00:12:41 +0000 Subject: Add pretty basic vercmp unit testing...need more cases svn path=/main/trunk/; revision=5213 --- tests/__init__.py | 21 +++++++++++++++++++++ tests/runTests | 20 ++++++++++++++++++++ tests/test_vercmp.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 tests/__init__.py create mode 100755 tests/runTests create mode 100644 tests/test_vercmp.py (limited to 'tests') 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 + -- cgit v1.2.3-1-g7c22