[Yum-devel] [PATCH 1/2] Testcase to make sure a specifc nevra comes out of _compare_providers()
Tim Lauridsen
tim.lauridsen at googlemail.com
Thu Aug 6 07:30:52 UTC 2009
On 08/05/2009 11:40 PM, James Antill wrote:
> ---
> test/simpleupdatetests.py | 59 +++++++++++++++++++++++++++++++++++++++++++++
> test/testbase.py | 23 +++++++++++++++--
> 2 files changed, 79 insertions(+), 3 deletions(-)
>
> diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
> index d543013..b973fce 100644
> --- a/test/simpleupdatetests.py
> +++ b/test/simpleupdatetests.py
> @@ -694,3 +694,62 @@ class SimpleUpdateTests(OperationsTests):
> [pa1, pa2, pa3])
> self.assert_(res=='ok', msg)
> self.assertResult((pa1, pa2, pa3))
> +
> + def testUpdateMultiAvailPkgs1(self):
> + pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
> + pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
> + pa2 = FakePackage('B', '1', '1', '0', 'i386')
> + pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
> + pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
> + pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
> + pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
> + pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
> +
> + res, msg = self.runOperation(['install', 'A'],
> + [],
> + [pa1, pa2, pa3, pa4])
> + self.assert_(res=='ok', msg)
> + self.assertResult((pa1, pa3))
> +
> + def testUpdateMultiAvailPkgs2(self):
> + pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
> + pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
> + pa2 = FakePackage('B', '1', '1', '0', 'i386')
> + pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
> + pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
> + pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
> + pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
> + pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
> +
> + res, msg = self.runOperation(['install', 'A'],
> + [],
> + [pa1, pa2, pa4, pa3])
> + self.assert_(res=='ok', msg)
> + self.assertResult((pa1, pa3))
> +
> + def testUpdateMultiAvailPkgs3(self):
> + pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
> + pa1.addRequires('B', 'EQ', ('0', '1', '1'))
> + pa2 = FakePackage('B', '1', '1', '0', 'i386')
> + pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
> + pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
> +
> + res, msg = self.runOperation(['install', 'A'],
> + [],
> + [pa1, pa2, pa3, pa4])
> + self.assert_(res=='ok', msg)
> + self.assertResult((pa1, pa3))
> +
> +
> + def testUpdateMultiAvailPkgs4(self):
> + pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
> + pa1.addRequires('B', 'EQ', ('0', '1', '1'))
> + pa2 = FakePackage('B', '1', '1', '0', 'i386')
> + pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
> + pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
> +
> + res, msg = self.runOperation(['install', 'A'],
> + [],
> + [pa1, pa2, pa4, pa3])
> + self.assert_(res=='ok', msg)
> + self.assertResult((pa1, pa3))
> diff --git a/test/testbase.py b/test/testbase.py
> index d91c01c..cadc28b 100644
> --- a/test/testbase.py
> +++ b/test/testbase.py
> @@ -49,6 +49,17 @@ class FakeRepo(object):
> def __init__(self, id=None,sack=None):
> self.id = id
> self.sack = sack
> + self.cost = 1000
> +
> + def __cmp__(self, other):
> + """ Sort base class repos. by alphanumeric on their id, also
> + see __cmp__ in YumRepository(). """
> + if self.id> other.id:
> + return 1
> + elif self.id< other.id:
> + return -1
> + else:
> + return 0
>
> class FakePackage(packages.YumAvailablePackage):
>
> @@ -290,10 +301,14 @@ class DepsolveTests(_DepsolveTestsBase):
> for po in self.rpmdb:
> po.repoid = po.repo.id = "installed"
> for po in self.xsack:
> - po.repoid = po.repo.id = "TestRepository"
> + if po.repo.id is None:
> + po.repo.id = "TestRepository"
> + po.repoid = po.repo.id
> for txmbr in self.tsInfo:
> if txmbr.ts_state in ('u', 'i'):
> - txmbr.po.repoid = txmbr.po.repo.id = "TestRepository"
> + if txmbr.po.repo.id is None:
> + txmbr.po.repo.id = "TestRepository"
> + txmbr.po.repoid = txmbr.po.repo.id
> else:
> txmbr.po.repoid = txmbr.po.repo.id = "installed"
>
> @@ -338,7 +353,9 @@ class OperationsTests(_DepsolveTestsBase):
> po.repoid = po.repo.id = "installed"
> self.depsolver.rpmdb.addPackage(po)
> for po in available:
> - po.repoid = po.repo.id = "TestRepository"
> + if po.repo.id is None:
> + po.repo.id = "TestRepository"
> + po.repoid = po.repo.id
> self.depsolver._pkgSack.addPackage(po)
>
> self.depsolver.basecmd = args[0]
Look good, but i would love some comments/docstrings in the testcases to make it easier to see what the single case is
testing for :)
Tim
More information about the Yum-devel
mailing list