class BuildDepCheckerTests(unittest.TestCase): def setUp(self): self.udd = Udd() self.checker = BuildDepsChecker( self.udd.BindRelease(arch="i386", release="sid")) def tearDown(self): self.udd = None self.checker = None def testCheck(self): """Test checking the build-dependencies of a package""" # simple package, check by source package name b = self.checker.Check(package="pyxplot") self.assertTrue(b) self.assertTrue(len(b.bd.good) > 0) self.assertTrue(len(b.bd.bad) == 0) # big complicated package with lots of arch-dependent entries, check by binary name b = self.checker.Check(package="libc6") self.assertTrue(b) self.assertTrue(len(b.bd.good) > 0) self.assertTrue(len(b.bdi.good) > 0) self.assertTrue(len(b.bd.bad) == 0) self.assertTrue(len(b.bdi.bad) == 0) # check by SourcePackage object p = self.udd.BindSourcePackage(package="latexdraw", release="squeeze") b = self.checker.Check(package=p) self.assertTrue(b) self.assertTrue(len(b.bd.good) > 0) self.assertTrue(len(b.bd.bad) == 0) # non-existent package self.assertRaises(PackageNotFoundError, self.checker.Check, package="no-such-package") # bd and bdi lists p = self.udd.BindSourcePackage(package="libc6") bd = p.RelationshipOptionsList("build_depends") b = self.checker.Check(bdList=bd) self.assertTrue(b) self.assertTrue(len(b.bd.good) > 0) b = self.checker.Check( bdList=p.RelationshipOptionsList("build_depends"), bdiList=p.RelationshipOptionsList("build_depends")) self.assertTrue(b) self.assertTrue(len(b.bd.good) > 0) self.assertTrue(len(b.bdi.good) > 0) self.assertRaises(ValueError, self.checker.Check) self.assertRaises(ValueError, self.checker.Check, bdList=[])
class database(unittest.TestCase): def setUp(self): self.udd = Udd() def tearDown(self): self.udd = None def testDBTypes(self): """Test creating a Debian and derivative UDD instance""" self.assertTrue(Udd(distro='debian')) self.assertRaises(NotImplementedError, Udd, distro='ubuntu') # TODO: update when implemented self.assertRaises(ValueError, Udd, distro='nosuchdistro') def testPassConfig(self): """Test loading a config file manually""" config = Config() self.assertTrue(Udd(config=config)) def testRelease(self): """Test binding to a release and doing a lookup""" r = self.udd.BindRelease('sid', 'i386') self.assertTrue(r) r = self.udd.BindRelease(['stable', 'stable-backports'], 'i386') self.assertTrue(r) def testPackage(self): """Test binding to a binary package and doing a lookup""" r = self.udd.BindPackage('libc6', 'sid', 'i386') self.assertTrue(r) self.assertTrue(r.Found()) def testSource(self): """Test binding to a source package and doing a lookup""" r = self.udd.BindSourcePackage('glibc', 'sid') self.assertTrue(r) self.assertTrue(r.Found()) r = self.udd.BindSourcePackage('libc6', 'sid') self.assertTrue(r) self.assertTrue(r.Found()) self.assertTrue(r.data['version']) def testBts(self): """Test binding to a source package and doing a lookup""" tracker = self.udd.Bts(False) self.assertFalse(tracker.include_archived)
class commands(unittest.TestCase): def setUp(self): self.udd = Udd() self.dispatcher = Commands(self.udd) def tearDown(self): self.udd = None self.dispatcher = None def testVersions(self): """Test version lookups""" self.assertTrue(self.dispatcher.versions('libc6', 'sid', 'i386')) self.assertRaises(PackageNotFoundError, self.dispatcher.versions, 'nosuchpackage', 'sid', 'i386') self.assertRaises(PackageNotFoundError, self.dispatcher.versions, 'libc0.1', 'sid', 'armhf') self.assertTrue(self.dispatcher.versions('libc6', None, 'amd64')) self.assertTrue(self.dispatcher.versions('src:glibc', 'sid', 'i386')) self.assertRaises(PackageNotFoundError, self.dispatcher.versions, 'src:nosuchpackage', 'sid', 'i386') def testInfo(self): """Test package information lookups""" self.assertTrue(self.dispatcher.info('libc6', 'sid', 'i386')) self.assertRaises(PackageNotFoundError, self.dispatcher.info, 'nosuchpackage', 'sid', 'i386') self.assertRaises(PackageNotFoundError, self.dispatcher.info, 'libc6', 'sid', 'ia64') @unittest.skipIf(exclude_slow_tests, 'slow test') def testNames(self): """Test package name lookups""" self.assertTrue(self.dispatcher.names('libc6', 'sid', 'i386')) self.assertTrue(self.dispatcher.names('lib?6', 'sid', 'i386')) self.assertTrue(self.dispatcher.names('libc6*', 'sid', 'i386')) self.assertTrue(self.dispatcher.names('*bc6', 'sid', 'i386')) self.assertTrue(self.dispatcher.names('l*6', 'sid', 'i386')) self.assertFalse(self.dispatcher.names('libc0.1', 'sid', 'armhf')) self.assertTrue(self.dispatcher.names('libc6*', 'sid', 'armhf')) self.assertTrue(self.dispatcher.names('src:glibc', 'sid', 'armhf')) self.assertFalse(self.dispatcher.names('src:nosuchpackage', 'sid', 'i386')) def testArchs(self): """Test architecture availability lookups""" self.assertTrue(self.dispatcher.archs('libc6', 'sid')) self.assertRaises(PackageNotFoundError, self.dispatcher.archs, 'nosuchpackage', 'sid') def testPopcon(self): """Test popcon data lookups""" self.assertTrue(self.dispatcher.popcon('libc6')) self.assertRaises(PackageNotFoundError, self.dispatcher.popcon, 'nosuchpackage') def testUploads(self): """Test upload/maintainer data lookups""" self.assertTrue(self.dispatcher.uploads('glibc', max=10)) self.assertTrue(self.dispatcher.uploads('glibc')) self.assertTrue(self.dispatcher.uploads('eglibc', '2.9-11')) self.assertRaises(PackageNotFoundError, self.dispatcher.uploads, 'nosuchpackage') self.assertRaises(PackageNotFoundError, self.dispatcher.uploads, 'glibc', 'nosuchversion') self.assertRaises(PackageNotFoundError, self.dispatcher.uploads, 'libc6') # only does source packages p = self.udd.BindSourcePackage('glibc', 'sid') self.assertTrue(self.dispatcher.uploads(p), 'Check uploads with bind to source package failed') p = self.udd.BindSourcePackage('libc6', 'sid') self.assertTrue(self.dispatcher.uploads(p), 'Check uploads with bind to source package via bin2src failed') @unittest.skipIf(exclude_slow_tests, 'slow test') def testCheckDeps(self): """Test dependency testing for packages""" # TODO: it would be nice to actually test the accuracy of the tests self.assertTrue(self.dispatcher.checkdeps('libc6', 'sid', 'i386', ['depends'])) self.assertTrue(self.dispatcher.checkdeps('libc6', 'sid', 'i386', ['depends', 'recommends', 'suggests'])) self.assertTrue(self.dispatcher.checkdeps('cbedic', 'sid', 'i386', ['suggests']), 'broken relations not handled correctly') self.assertRaises(PackageNotFoundError, self.dispatcher.checkdeps, 'nosuchpackage', 'squeeze', 'i386', ['depends']) @unittest.skipIf(exclude_slow_tests, 'slow test') def testCheckInstall(self): """Test installability for packages""" # TODO: it would be nice to actually test the accuracy of the tests self.assertTrue(self.dispatcher.checkInstall('libc6', 'sid', 'i386', False)) self.assertTrue(self.dispatcher.checkInstall('perl', 'sid', 'i386', True)) #self.assertTrue(self.dispatcher.checkInstall('openjdk-6-jre-headless', 'lenny', 'i386', False)) #self.assertTrue(self.dispatcher.checkInstall('openjdk-6-jre-headless', 'lenny', 'i386', True)) self.assertRaises(PackageNotFoundError, self.dispatcher.checkInstall, 'nosuchpackage', 'sid', 'i386', True) @unittest.skipIf(exclude_slow_tests, 'slow test') def testWhy(self): """Test existence of package dependency chains""" # TODO: it would be nice to actually test the accuracy of the tests self.assertTrue(self.dispatcher.why('dpkg', 'libc6', 'squeeze', 'i386', False)) self.assertEqual(self.dispatcher.why('dpkg', 'dolphin', 'squeeze','i386', False), []) self.assertEqual(self.dispatcher.why('dpkg', 'libc6-i686', 'squeeze', 'i386', False), []) self.assertTrue(self.dispatcher.why('dpkg', 'libc6-i686', 'squeeze', 'i386', True)) self.assertEqual(self.dispatcher.why('dpkg', 'nosuchpackage', 'squeeze', 'i386', False), []) self.assertRaises(PackageNotFoundError, self.dispatcher.why, 'nosuchpackage', 'dpkg', 'squeeze', 'i386', False) @unittest.skipIf(exclude_slow_tests, 'slow test') def testCheckBackport(self): """Test 'simple sid backport' procedure on packages""" # TODO: it would be nice to actually test the accuracy of the tests fr = self.udd.BindRelease(arch='i386', release='sid') tr = self.udd.BindRelease(arch='i386', release='squeeze') self.assertTrue(self.dispatcher.checkBackport('iceweasel', fr, tr), 'Check [im]possible backport that requires bpo') trbp = self.udd.BindRelease(arch='i386', release=self.udd.data.list_dependent_releases('squeeze', suffixes=['backports'])) self.assertTrue(self.dispatcher.checkBackport('libxfont1', fr, trbp), 'Check possible backport that requires bpo') tro = self.udd.BindRelease(arch='i386', release="squeeze") self.assertTrue(self.dispatcher.checkBackport('gcc', fr, tro), 'Check impossible backport') self.assertTrue(self.dispatcher.checkBackport('openjdk-6', fr, tr), 'Check resolution of arch-dependent build-deps') self.assertTrue(self.dispatcher.checkBackport('pyxplot', fr, tr), 'Check resolution of virtual build-deps') self.assertTrue(self.dispatcher.checkBackport('libv4l-0', fr, tr), 'Check resolution of virtual build-deps') self.assertRaises(PackageNotFoundError, self.dispatcher.checkBackport, 'nosuchpackage', fr, tr)