RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Per Øyvind Karlsen Root: /v/rpm/cvs Email: pkarl...@rpm5.org Module: rpm Date: 10-Feb-2011 21:16:25 Branch: rpm-5_4 Handle: 2011021020162401 Modified files: (Branch: rpm-5_4) rpm/python Makefile.am rpm/python/test test_rpm.py Log: remove older python regression tests, add a new for evrCompare() Summary: Revision Changes Path 1.88.2.1 +2 -2 rpm/python/Makefile.am 1.6.4.1 +24 -134 rpm/python/test/test_rpm.py ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/python/Makefile.am ============================================================================ $ cvs diff -u -r1.88 -r1.88.2.1 Makefile.am --- rpm/python/Makefile.am 18 Oct 2010 04:21:18 -0000 1.88 +++ rpm/python/Makefile.am 10 Feb 2011 20:16:24 -0000 1.88.2.1 @@ -63,5 +63,5 @@ # FIXME: using .libs/ is not really correct, but whatever check-local: -# @export PYTHONPATH=$(PYTHONPATH):$(shell pwd):$(shell pwd)/.libs/ && \ -# cd test && python test_rpm.py + @export PYTHONPATH=$(PYTHONPATH):$(shell pwd):$(shell pwd)/.libs/ && \ + cd test && python test_rpm.py @@ . patch -p0 <<'@@ .' Index: rpm/python/test/test_rpm.py ============================================================================ $ cvs diff -u -r1.6 -r1.6.4.1 test_rpm.py --- rpm/python/test/test_rpm.py 28 Feb 2010 11:30:59 -0000 1.6 +++ rpm/python/test/test_rpm.py 10 Feb 2011 20:16:25 -0000 1.6.4.1 @@ -3,153 +3,43 @@ # # Copyright (c) 2009 Per Ãyvind Karlsen <peroyv...@mandriva.org> # -import sys, random, rpm, unittest, os, subprocess +import unittest from test.test_support import rmtree +import rpm -DICT = {} -def runCallback(reason, amount, total, key, client_data): - global rpmtsCallback_fd - if reason == rpm.RPMCALLBACK_INST_OPEN_FILE: - rpmtsCallback_fd = os.open(key, os.O_RDONLY) - return rpmtsCallback_fd - elif reason == rpm.RPMCALLBACK_INST_START: - os.close(rpmtsCallback_fd) - -class Test_loadHeader(unittest.TestCase): - def setUp(self): - self.topdir = "%s/tmp" % os.getcwdu() - self.package = "%s/RPMS/noarch/simple-1.0-1-foo2009.1.noarch.rpm" % self.topdir - - top_builddir = os.getenv("TOP_BUILDDIR") - if top_builddir: - rpm_cmd = "%s/rpm" % top_builddir - args = ["--macros", "%s/macros" % top_builddir] - else: - rpm_cmd = "rpm" - args = [] - args.extend(["--define", "_topdir %s" % self.topdir, "-bb", "resources/simple.spec"]) - - build = subprocess.Popen(args, - executable=rpm_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) - self.assertFalse(build.wait()) - self.assertTrue(os.path.isfile(self.package)) - - def test_loadHeader(self): - ts = rpm.TransactionSet() - file = open(self.package) - DICT['hdr'] = h = ts.hdrFromFdno(file.fileno()) - file.close() - self.assertEqual(h['name'], "simple") - self.assertEqual(h['epoch'], 1) - self.assertEqual(h['version'], "1.0") - self.assertEqual(h['release'], "1") - self.assertEqual(h['disttag'], "foo") - self.assertEqual(h['distepoch'], "2009.1") +class Test_evrCompare(unittest.TestCase): - def tearDown(self): - rmtree(self.topdir) -class Test_labelCompare(unittest.TestCase): + def test_e(self): + self.assertEqual(rpm.evrCompare("1", "2"), -1) + self.assertEqual(rpm.evrCompare("3", "2"), 1) + self.assertEqual(rpm.evrCompare("4", "4"), 0) + self.assertEqual(rpm.evrCompare("5", "20"), -1) - def setUp(self): - self.labels = (tuple(DICT['hdr'].sprintf("%{epoch} %{version} %{release} %{distepoch}").split()), ("1", "2.1", "2", "2010.1")) + def test_ev(self): + self.assertEqual(rpm.evrCompare("1:32", "2:231"), -1) + self.assertEqual(rpm.evrCompare("3:1.1", "2:5"), 1) + self.assertEqual(rpm.evrCompare("2:1.1", "2:0.1"), 1) + self.assertEqual(rpm.evrCompare("4:123", "4:123"), 0) + self.assertEqual(rpm.evrCompare("5:1.3", "20:9.3"), -1) def test_evr(self): - le = self.labels[0][0:3] - ge = self.labels[1][0:3] - self.assertEqual(rpm.labelCompare(le, ge), -1) - self.assertEqual(rpm.labelCompare(ge, le), 1) - self.assertEqual(rpm.labelCompare(ge, ge), 0) - self.assertEqual(rpm.labelCompare(ge, ge), 0) + self.assertEqual(rpm.evrCompare("1:3.2-6", "2:9.4-99"), -1) + self.assertEqual(rpm.evrCompare("3:3-1", "2:9.3"), 1) + self.assertEqual(rpm.evrCompare("4:429-999999", "4:0.1-2"), 1) + self.assertEqual(rpm.evrCompare("5:23-83:23", "20:0.0.1-0.1"), -1) def test_evrd(self): - le = self.labels[0] - ge = self.labels[1] - self.assertEqual(rpm.labelCompare(le, ge), -1) - self.assertEqual(rpm.labelCompare(ge, le), 1) - self.assertEqual(rpm.labelCompare(ge, ge), 0) - self.assertEqual(rpm.labelCompare(ge, ge), 0) - - def test_None(self): - no = (None, None, None, None) - yes = self.labels[0] - # first without distepoch - self.assertEqual(rpm.labelCompare(yes[0:3], no[0:3]), 1) - self.assertEqual(rpm.labelCompare(no[0:3], yes[0:3]), -1) - self.assertEqual(rpm.labelCompare(no[0:3], no[0:3]), 0) - # then again with distepoch - self.assertEqual(rpm.labelCompare(yes, no), 1) - self.assertEqual(rpm.labelCompare(no, yes), -1) - self.assertEqual(rpm.labelCompare(no, no), 0) - -class Test_upgrade(unittest.TestCase): - - def setUp(self): - self.topdir = "%s/tmp" % os.getcwdu() - self.first = ( - ("%s/RPMS/noarch/simple-1.0-1-foo2009.1.noarch.rpm" % self.topdir), - ("%s/RPMS/noarch/simple2-1.0-1-foo2009.1.noarch.rpm" % self.topdir, ("--define", "nsuffix 2"))) - self.second = ( - ("%s/RPMS/noarch/simple-1.0-12-foo2009.1.noarch.rpm" % self.topdir, ("--define", "rsuffix 2")), - ("%s/RPMS/noarch/simple2-1.0-12-foo2009.1.noarch.rpm" % self.topdir, ("--define", "nsuffix 2", "--define", "rsuffix 2"))) - - top_builddir = os.getenv("TOP_BUILDDIR") - if top_builddir: - rpm_cmd = "%s/rpm" % top_builddir - rpm_args = ["--macros", "%s/macros" % top_builddir] - else: - rpm_cmd = "rpm" - rpm_args = [] - rpm_args.extend(["--define", "_topdir %s" % self.topdir, "-bb", "resources/simple.spec"]) - - for pl in self.first, self.second: - for p in pl: - args = [] + rpm_args - if len(p) == 2: - filename = p[0] - args.extend(p[1]) - else: - filename = p - build = subprocess.Popen(args, - executable=rpm_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) - self.assertFalse(build.wait()) - self.assertTrue(os.path.isfile(filename)) - - def test_multipleTransactions(self): - for pl in self.first, self.second: - for p in pl: - if len(p) == 2: - filename = p[0] - else: - filename = p - ts = rpm.ts(self.topdir) - f = open(filename) - h = ts.hdrFromFdno(f.fileno()) - ts.addInstall(h, filename, 'u') - ts.check() - ts.order() - ts.run(runCallback, 1) - del ts - - ts = rpm.ts(self.topdir) - mi = ts.dbMatch() - expected = ["simple", "simple2"] - got = [] - for h in mi: - got.append('%(name)s' % h) - got.sort() - self.assertEqual(expected, got) - - def tearDown(self): - rmtree(self.topdir) - + self.assertEqual(rpm.evrCompare("10:321.32a-p21:999", "2:99"), 1) + self.assertEqual(rpm.evrCompare("3", "2:531-9:1"), -1) + self.assertEqual(rpm.evrCompare("4:3-2:1", "4:3-2"), 1) + self.assertEqual(rpm.evrCompare("20:9-3:2011.0", "20:9-3:2011.0"), 0) + def test_main(): from test import test_support test_support.run_unittest( - Test_loadHeader, - Test_labelCompare, - Test_upgrade) + Test_evrCompare) test_support.reap_children() @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org