diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2007-08-03 19:24:22 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2007-08-03 19:24:22 +0200 |
commit | 04b38410e88705c26f191ca654cb89ab91c866ad (patch) | |
tree | f79ef1a04932ccfca26f8398d73df858c198806b /test/pre-upload-check.py | |
parent | 8ecd1fedeace0e22f96259e250094006c673d065 (diff) | |
parent | 4b7c5a3fe8e3dfc439fdad88f30e28964059a5e4 (diff) |
* merged from apt--mvo
Diffstat (limited to 'test/pre-upload-check.py')
-rwxr-xr-x | test/pre-upload-check.py | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/test/pre-upload-check.py b/test/pre-upload-check.py new file mode 100755 index 000000000..837a25023 --- /dev/null +++ b/test/pre-upload-check.py @@ -0,0 +1,119 @@ +#!/usr/bin/python + +import sys +import os +import glob +import os.path +from subprocess import call, PIPE + +import unittest + +stdout = os.open("/dev/null",0) #sys.stdout +stderr = os.open("/dev/null",0) # sys.stderr + +class testAuthentication(unittest.TestCase): + + # some class wide data + apt = "apt-get" + args = [] # ["-q", "-q", "-o","Debug::pkgAcquire::Auth=true"] + pkg = "libglib2.0-data" + pkgver = "2.13.6-1ubuntu1" + pkgpath = "/var/cache/apt/archives/libglib2.0-data_2.13.6-1ubuntu1_all.deb" + + def setUp(self): + for f in glob.glob("testkeys/*,key"): + call(["apt-key", "add", f], stdout=stdout, stderr=stderr) + + def _cleanup(self): + " make sure we get new lists and no i-m-s " + call(["rm","-f", "/var/lib/apt/lists/*"]) + if os.path.exists(self.pkgpath): + os.unlink(self.pkgpath) + + def _expectedRes(self, resultstr): + if resultstr == 'ok': + return 0 + elif resultstr == 'broken': + return 100 + + + def testPackages(self): + for f in glob.glob("testsources.list/sources.list*package*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + # update first + call([self.apt,"update", + "-o","Dir::Etc::sourcelist=./%s" % f]+self.args, + stdout=stdout, stderr=stderr) + # then get the pkg + cmd = ["install", "-y", "-d", "--reinstall", + "%s=%s" % (self.pkg, self.pkgver), + "-o","Dir::state::Status=./fake-status"] + res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + + def testGPG(self): + for f in glob.glob("testsources.list/sources.list*gpg*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + # update first + call([self.apt,"update", + "-o","Dir::Etc::sourcelist=./%s" % f]+self.args, + stdout=stdout, stderr=stderr) + # then get the pkg + cmd = ["install", "-y", "-d", "--reinstall", + "%s=%s" % (self.pkg, self.pkgver), + "-o","Dir::state::Status=./fake-status"] + res = call([self.apt, "-o","Dir::Etc::sourcelist=./%s" % f]+ + cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + def testRelease(self): + for f in glob.glob("testsources.list/sources.list*release*"): + self._cleanup() + (prefix, testtype, result) = f.split("-") + expected_res = self._expectedRes(result) + cmd = ["update"] + res = call([self.apt,"-o","Dir::Etc::sourcelist=./%s" % f]+cmd+self.args, + stdout=stdout, stderr=stderr) + self.assert_(res == expected_res, + "test '%s' failed (got %s expected %s" % (f,res,expected_res)) + + +class testPythonApt(unittest.TestCase): + " test if python-apt is still working and if we not accidently broke the ABI " + + def testPythonApt(self): + import apt + cache = apt.Cache() + cache.update() + pkg = cache["apt"] + self.assert_(pkg.name == 'apt') + +class testAptInstall(unittest.TestCase): + " test if installing still works " + + apt = "apt-get" + pkg = "coreutils" + + def testInstall(self): + res = call([self.apt,"-y","install","--reinstall",self.pkg], + stdout=stdout, stderr=stderr) + self.assert_(res == 0, + "installing %s failed (got %s)" % (self.pkg, res)) + +if __name__ == "__main__": + print "Runing simple testsuit on current apt-get and libapt" + if len(sys.argv) > 1 and sys.argv[1] == "-v": + stdout = sys.stdout + stderr = sys.stderr + unittest.main() + + |