[yum-cvs] 4 commits - Makefile test/alltests.py test/depsolvetests.py test/operationstests.py test/packagetests.py test/simpleobsoletestests.py test/simpleremovetests.py test/simpleupdatetests.py test/testbase.py

James Bowes jbowes at linux.duke.edu
Fri Nov 30 14:37:08 UTC 2007


 Makefile                     |    4 ++--
 test/alltests.py             |   24 ------------------------
 test/depsolvetests.py        |    9 ---------
 test/operationstests.py      |   15 ++-------------
 test/packagetests.py         |   11 -----------
 test/simpleobsoletestests.py |    9 ---------
 test/simpleremovetests.py    |   10 ----------
 test/simpleupdatetests.py    |    8 --------
 test/testbase.py             |    4 ++--
 9 files changed, 6 insertions(+), 88 deletions(-)

New commits:
commit 2a80224ff6015543fd13ec1a7c52e7fbae7fb9bd
Merge: 3edbb4c... ea9bb5a...
Author: James Bowes <jbowes at redhat.com>
Date:   Thu Nov 29 21:56:55 2007 -0500

    Merge branch 'nose'
    
    Conflicts:
    
    	test/alltests.py
    	test/depsolvetests.py
    	test/operationstests.py

diff --cc test/depsolvetests.py
index a5fa9f5,67e0d8e..011b8be
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@@ -497,32 -500,3 +497,23 @@@ class DepsolveTests(DepsolveTests)
  
          self.assertEquals('ok', *self.resolveCode())
          self.assertResult((po, updatepo))
 +
 +    def testEraseSinglePackage(self):
 +        po = FakePackage('zsh', '1', '1', '0', 'i386')
 +        self.rpmdb.addPackage(po)
 +        self.tsInfo.addErase(po)
 +
 +        self.assertEquals('ok', *self.resolveCode())
 +        self.assertResult(())
 +
 +    def testEraseSinglePackageRequiredByOneInstalled(self):
 +        po = FakePackage('zippy', '1', '1', '0', 'i386')
 +        po.addRequires('zsh', None, (None, None, None))
 +        self.rpmdb.addPackage(po)
 +
 +        po = FakePackage('zsh', '1', '1', '0', 'i386')
 +        self.rpmdb.addPackage(po)
 +        self.tsInfo.addErase(po)
 +
 +        self.assertEquals('ok', *self.resolveCode())
 +        self.assertResult(())
- 
- 
- def suite():
-     suite = unittest.TestSuite()
-     suite.addTest(unittest.makeSuite(DepsolveTests))
-     return suite
- 
- if __name__ == "__main__":
-     unittest.main(defaultTest="suite")
diff --cc test/operationstests.py
index 51f3241,4f82dd7..eeeb48f
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@@ -1,124 -1,334 +1,113 @@@
  from testbase import *
- from simpleobsoletestests import SimpleObsoletesTests
++import simpleobsoletestests
  
 -
 -class SimpleUpdateTests(OperationsTests):
 +# Obsolete for conflict
 +class ComplicatedTests(OperationsTests):
  
      @staticmethod
      def buildPkgs(pkgs, *args):
-         SimpleObsoletesTests.buildPkgs(pkgs)
 -        # installed
 -        pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
 -        pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
 -        pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
 -        # updates
 -        pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
 -        pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
 -        pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
 -        # requires update
 -        pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
 -        pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
 -
 -    # noarch to X
 -
 -    def testUpdatenoarchTonoarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch,))
 -    def testUpdatenoarchTonoarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_noarch, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch, p.requires_update))
 -
 -    def testUpdatenoarchToi386(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386,))
 -    def testUpdatenoarchToi386ForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.requires_update))
 -
 -    def testUpdatenoarchTox86_64(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64,))
 -    def testUpdatenoarchTox86_64ForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64, p.requires_update))
++        simpleobsoletestests.SimpleObsoletesTests.buildPkgs(pkgs)
 +        # conflicts
 +        pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
 +        pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
  
 -    def testUpdatenoarchToMultilib(self):
 +    def testObsoleteForConflict(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
 -        self.assert_(res=='ok', msg)
 +        res, msg = self.runOperation(['install', 'super-zippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.conflicts])
          if new_behavior:
 -            self.assertResult((p.update_x86_64,), (p.update_i386,)) # ?
 -        else:
 -            self.assertResult((p.update_i386, p.update_x86_64))
 -    def testUpdatenoarchToMultilibForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
 +            self.assert_(res=='ok', msg)
 +            self.assertResult((p.obsoletes_i386, p.conflicts))
  
 -    # i386 to X
 +class CombinedUpdateObsoletesTest(OperationsTests):
  
 -    def testUpdatei386Tonoarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch,))
 -    def testUpdatei386TonoarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch, p.requires_update))
 -
 -    def testUpdatei386Toi386(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386,))
 -    def testUpdatei386Toi386ForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.requires_update))
 +    @staticmethod
 +    def buildPkgs(pkgs, *args):
 +        pkgs.k_1 = FakePackage('k', '3.5')
 +        pkgs.kdevel_1 = FakePackage('k-devel', '3.5')
 +        pkgs.kdevel_1.addRequires('k')
 +        pkgs.klibs_1_i386 = FakePackage('klibs', '3.5', arch='i386')
 +        pkgs.klibs_1_x86_64 = FakePackage('klibs', '3.5', arch='x86_64')
 +        pkgs.k_2 = FakePackage('k', '3.5', '2')
 +        pkgs.kdevel_2 = FakePackage('k-devel', '3.5', '2')
 +        pkgs.kdevel_2.addRequires('k')
 +        pkgs.klibs_2_i386 = FakePackage('klibs', '3.5', '2', arch='i386')
 +        pkgs.klibs_2_i386.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
 +        pkgs.klibs_2_i386.addObsoletes('k', 'LT', (None, '3.5', '2'))
 +        pkgs.klibs_2_x86_64 = FakePackage('klibs', '3.5', '2', arch='x86_64')
 +        pkgs.klibs_2_x86_64.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
 +        pkgs.klibs_2_x86_64.addObsoletes('k', 'LT', (None, '3.5', '2'))
  
 -    def testUpdatei386Tox86_64(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64,))
 -    def testUpdatei386Tox86_64ForDependency(self):
 +    def testSelfObsolete(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_x86_64, p.requires_update])
 +        res, msg = self.runOperation(['update'], [p.klibs_1_x86_64], [p.klibs_2_i386, p.klibs_2_x86_64])
          self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64, p.requires_update))
 +        self.assertResult((p.klibs_2_x86_64,))
  
 -    def testUpdatei386ToMultilib(self):
 +    def testPackageSplitWithObsoleteAndRequiresForUpdate(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
 +        res, msg = self.runOperation(['update'], [p.k_1, p.kdevel_1, p.klibs_1_x86_64],
 +                                     [p.k_2, p.kdevel_2, p.klibs_2_x86_64])
          self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386,))
 -    def testUpdatei386ToMultilibForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.requires_update))
 -
 -    # x86_64 to X
 +        self.assertResult((p.k_2, p.kdevel_2, p.klibs_2_x86_64,))
  
 -    def testUpdatex86_64Tonoarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_noarch,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch,))
 -    def testUpdatex86_64TonoarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 -                                     [p.update_noarch, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch, p.requires_update))
  
 -    def testUpdatex86_64Toi386(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386,))
 -    def testUpdatex86_64Toi386ForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 -                                     [p.update_i386, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.requires_update))
  
 -    def testUpdatex86_64Tox86_64(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_x86_64,])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64,))
 -    def testUpdatex86_64Tox86_64ForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 -                                     [p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64, p.requires_update))
 +class ComplicatedObsoletesTests(OperationsTests):
  
 -    def testUpdatex86_64ToMultilib(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64,))
 -    def testUpdatex86_64ToMultilibForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 -                                     [p.update_i386, p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_x86_64, p.requires_update))
 -
 -    # multilib to X
 -
 -    def testUpdateMultilibTonoarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch,))
 -    def testUpdateMultilibTonoarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_noarch, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_noarch, p.requires_update))
 +    @staticmethod
 +    def buildPkgs(pkgs, *args):
 +        pkgs.installed = FakePackage('foo', '1.4', '1')
 +        pkgs.obsoletecircle = FakePackage('foo', '1.4', '1')
 +        pkgs.obsoletecircle.addObsoletes('baz')
 +        pkgs.obsoletes = FakePackage('bar', '1.2', '1')
 +        pkgs.obsoletes.addObsoletes('foo')
 +        pkgs.obsoletes2 = FakePackage('baz', '1.8', '1')
 +        pkgs.obsoletes2.addObsoletes('bar')
  
 -    def testUpdateMultilibToi386(self):
 +    def testObsoleteChain(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386])
 +        res, msg = self.runOperation(['update'], [p.installed], [p.obsoletes, p.obsoletes2])
          self.assert_(res=='ok', msg)
          if new_behavior:
 -            self.assertResult((p.update_i386,)) # XXX is this right?
 +            self.assertResult((p.obsoletes2,))
          else:
 -            self.assertResult((p.update_i386, p.installed_x86_64))
 -    def testUpdateMultilibToi386ForDependency(self):
 +            self.assertResult((p.obsoletes,))
 +    def testObsoleteChainNext(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.requires_update])
 +        res, msg = self.runOperation(['update'], [p.obsoletes], [p.obsoletes2])
          self.assert_(res=='ok', msg)
 -        if new_behavior:
 -            self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
 -        else:
 -            self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
 +        self.assertResult((p.obsoletes2,))
  
 -    def testUpdateMultilibTox86_64(self):
 +    def testObsoleteCircle(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64])
 +        res, msg = self.runOperation(['update'], [p.obsoletecircle], [p.obsoletes, p.obsoletes2])
          self.assert_(res=='ok', msg)
          if new_behavior:
 -            self.assertResult((p.update_x86_64,)) # XXX is this right?
 +            self.assertResult((p.obsoletecircle,))
          else:
 -            self.assertResult((p.update_x86_64, p.installed_i386))
 -    def testUpdateMultilibTox86_64ForDependency(self):
 +            self.assertResult((p.obsoletes,))
 +    def testObsoleteCircleNext(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64, p.requires_update])
 +        res, msg = self.runOperation(['update'], [p.obsoletes], [p.obsoletecircle, p.obsoletes, p.obsoletes2])
          self.assert_(res=='ok', msg)
          if new_behavior:
 -            self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
 +            self.assertResult((p.obsoletes,))
          else:
 -            self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
 -
 -    def testUpdateMultilibToMultilib(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.update_x86_64))
 -    def testUpdateMultilibToMultilibForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64, p.requires_update])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.update_i386, p.update_x86_64,  p.requires_update))
 -
 -class SimpleObsoleteTests(OperationsTests):
 -
 -    @staticmethod
 -    def buildPkgs(pkgs, *args):
 -        # installed
 -        pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
 -        pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
 -        pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
 -        # obsoletes
 -        pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
 -        pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
 -        pkgs.obsoletes_i386.addProvides('zzz')
 -        pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
 -        pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
 -        pkgs.obsoletes_x86_64.addProvides('zzz')
 -        pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
 -        pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
 -        pkgs.obsoletes_noarch.addProvides('zzz')
 -        # requires obsoletes
 -        pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
 -        pkgs.requires_obsoletes.addRequires('zzz')
 -
 -
 -    def testObsoletenoarchToMultiarch(self):
 +            self.assertResult((p.obsoletes2,))
 +    def testObsoleteCircleNextNext(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
 +        res, msg = self.runOperation(['update'], [p.obsoletes2], [p.obsoletecircle, p.obsoletes, p.obsoletes2])
          self.assert_(res=='ok', msg)
          if new_behavior:
 -            self.assertResult((p.obsoletes_x86_64,), (p.obsoletes_i386,))
 +            self.assertResult((p.obsoletes2,))
          else:
 -            self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
 -    def testObsoletenoarchToMultiarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
 -                                     [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
 -    def testObsoletenoarchToMultiarchForDependencyFix(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes], [p.obsoletes_i386, p.obsoletes_x86_64])
 -        self.assert_(res==0, msg)
 -        #self.assertResult((p.obsoletes_x86_64,)) # yes, this would be nice - but also wrong
 -        self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
 -
 -    def testObsoletei386ToMultiarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_i386,))
 -    def testObsoletei386ToMultiarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 -    def testObsoletei386ToMultiarchForDependencyFix(self):
 +            self.assertResult((p.obsoletecircle,))
 +    def testObsoleteCircleNextNextNext(self):
          p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes], [p.obsoletes_i386, p.obsoletes_x86_64])
 -        self.assert_(res==0, msg)
 -        #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes)) # yes, this would be nice - but also wrong
 -        self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
 -
 -    def testObsoletex86_64ToMultiarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_x86_64,))
 -    def testObsoletex86_64ToMultiarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'superzippy'],
 -                                     [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 +        res, msg = self.runOperation(['update'], [p.obsoletecircle], [p.obsoletes, p.obsoletes2])
          self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 -
 -    def testObsoleteMultiarchToMultiarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
 -    def testObsoleteMultiarchToMultiarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'superzippy'],
 -                                     [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
 -
 -    def testObsoleteMultiarchTonoarch(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_noarch,))
 -    def testObsoleteMultiarchTonoarchForDependency(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
 -        self.assert_(res=='ok', msg)
 -        self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
 -
 -# Obsolete for conflict
 -class ComplicatedTests(OperationsTests):
 -
 -    @staticmethod
 -    def buildPkgs(pkgs, *args):
 -        SimpleObsoleteTests.buildPkgs(pkgs)
 -        # conflicts
 -        pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
 -        pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
 -
 -    def testObsoleteForConflict(self):
 -        p = self.pkgs
 -        res, msg = self.runOperation(['install', 'super-zippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.conflicts])
          if new_behavior:
 -            self.assert_(res=='ok', msg)
 -            self.assertResult((p.obsoletes_i386, p.conflicts))
 +            self.assertResult((p.obsoletecircle,))
 +        else:
 +            self.assertResult((p.obsoletes,))
 +    # continue endlessly
- 
- def suite():
-     suite = unittest.TestSuite()
-     suite.addTest(unittest.makeSuite(ComplicatedObsoletesTests))
-     suite.addTest(unittest.makeSuite(CombinedUpdateObsoletesTest))
-     suite.addTest(unittest.makeSuite(ComplicatedTests))
-     return suite
- 
- if __name__ == "__main__":
-     unittest.main(defaultTest="suite")
- 
diff --cc test/simpleobsoletestests.py
index 07d9e88,0000000..134483b
mode 100644,000000..100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@@ -1,226 -1,0 +1,217 @@@
 +from testbase import *
 +
 +class SimpleObsoletesTests(OperationsTests):
 +
 +    @staticmethod
 +    def buildPkgs(pkgs, *args):
 +        # installed
 +        pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
 +        pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
 +        pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
 +        # obsoletes
 +        pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
 +        pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
 +        pkgs.obsoletes_i386.addProvides('zzz')
 +        pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
 +        pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
 +        pkgs.obsoletes_x86_64.addProvides('zzz')
 +        pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
 +        pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
 +        pkgs.obsoletes_noarch.addProvides('zzz')
 +        # requires obsoletes
 +        pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
 +        pkgs.requires_obsoletes.addRequires('zzz')
 +
 +    # noarch to X
 +
 +    def testObsoletenoarchTonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch,))
 +    def testObsoletenoarchTonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
 +                                     [p.obsoletes_noarch, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
 +
 +    def testObsoletenoarchToi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386,))
 +    def testObsoletenoarchToi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
 +                                     [p.obsoletes_i386, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 +
 +    def testObsoletenoarchTox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64,))
 +    def testObsoletenoarchTox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
 +                                     [p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 +
 +    def testObsoletenoarchToMultiarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.obsoletes_x86_64,), (p.obsoletes_i386,))
 +        else:
 +            self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
 +    def testObsoletenoarchToMultiarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
 +                                     [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
 +
 +    # i386 to X
 +
 +    def testObsoletei386Tonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch,))
 +    def testObsoletei386TonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_noarch, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
 +
 +    def testObsoletei386Toi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386,))
 +    def testObsoletei386Toi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 +
 +    def testObsoletei386Tox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64,))
 +    def testObsoletei386Tox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 +
 +
 +    def testObsoletei386ToMultiarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386,))
 +    def testObsoletei386ToMultiarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 +
 +    # x86_64 to X
 +
 +    def testObsoletex86_64Tonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch,))
 +    def testObsoletex86_64TonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
 +
 +    def testObsoletex86_64Toi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386,))
 +    def testObsoletex86_64Toi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_i386, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 +
 +    def testObsoletex86_64Tox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64,))
 +    def testObsoletex86_64Tox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 +
 +    def testObsoletex86_64ToMultiarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64,))
 +    def testObsoletex86_64ToMultiarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'],
 +                                     [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 +
 +    # multiarch to X
 +
 +    def testObsoleteMultiarchTonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch,))
 +    def testObsoleteMultiarchTonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
 +
 +    def testObsoleteMultiarchToi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386,))
 +    def testObsoleteMultiarchToi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
 +
 +    def testObsoleteMultiarchTox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64,))
 +    def testObsoleteMultiarchTox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
 +
 +    def testObsoleteMultiarchToMultiarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
 +    def testObsoleteMultiarchToMultiarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'superzippy'],
 +                                     [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
- 
- def suite():
-     suite = unittest.TestSuite()
-     suite.addTest(unittest.makeSuite(SimpleObsoletesTests))
-     return suite
- 
- if __name__ == "__main__":
-     unittest.main(defaultTest="suite")
- 
diff --cc test/simpleremovetests.py
index a6e2015,0000000..e20e43c
mode 100644,000000..100644
--- a/test/simpleremovetests.py
+++ b/test/simpleremovetests.py
@@@ -1,72 -1,0 +1,62 @@@
 +from testbase import *
 +
 +class SimpleRemoveTests(OperationsTests):
 +
 +    @staticmethod
 +    def buildPkgs(pkgs, *args):
 +        pkgs.leaf = FakePackage('foo', '2.5', '1.1', '0', 'noarch')
 +        pkgs.leaf.addFile('/bin/foo')
 +
 +        pkgs.requires_leaf = FakePackage('bar', '4')
 +        pkgs.requires_leaf.addRequires('foo')
 +
 +        pkgs.requires_file = FakePackage('barkeeper', '0.8')
 +        pkgs.requires_file.addRequires('/bin/foo')
 +
 +        pkgs.rr_leaf = FakePackage('baz', '5.3')
 +        pkgs.rr_leaf.addRequires('bar')
 +
 +        pkgs.provides_leaf = FakePackage('foo-ng', '2.5')
 +        pkgs.provides_leaf.addProvides('foo')
 +
 +    def testRemoveSingle(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
 +
 +    def testRemoveRequired(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
 +
 +    def testRemoveRequiredMissing(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'bar'], [p.requires_leaf], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
 +
 +    def testRemoveRequiredProvided(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf, p.provides_leaf], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( (p.requires_leaf, p.provides_leaf) )
 +
 +    def testRemoveRequiredAvailable(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf], [p.provides_leaf])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
 +
 +    def testRemoveRequiredChain(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf, p.rr_leaf], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
 +
 +    def testRemoveRequiredFile(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_file], [])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult( () )
- 
- def suite():
-     suite = unittest.TestSuite()
-     suite.addTest(unittest.makeSuite(SimpleRemoveTests))
-     return suite
- 
- if __name__ == "__main__":
-     unittest.main(defaultTest="suite")
- 
- 
diff --cc test/simpleupdatetests.py
index a872559,0000000..0730cd7
mode 100644,000000..100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@@ -1,232 -1,0 +1,224 @@@
 +from testbase import *
 +
 +class SimpleUpdateTests(OperationsTests):
 +
 +    @staticmethod
 +    def buildPkgs(pkgs, *args):
 +        # installed
 +        pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
 +        pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
 +        pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
 +        # updates
 +        pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
 +        pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
 +        pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
 +        # requires update
 +        pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
 +        pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
 +
 +    # noarch to X
 +
 +    def testUpdatenoarchTonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch,))
 +    def testUpdatenoarchTonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_noarch, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch, p.requires_update))
 +
 +    def testUpdatenoarchToi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386,))
 +    def testUpdatenoarchToi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.requires_update))
 +
 +    def testUpdatenoarchTox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64,))
 +    def testUpdatenoarchTox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64, p.requires_update))
 +
 +    def testUpdatenoarchToMultilib(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.update_x86_64,), (p.update_i386,)) # ?
 +        else:
 +            self.assertResult((p.update_i386, p.update_x86_64))
 +    def testUpdatenoarchToMultilibForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
 +
 +    # i386 to X
 +
 +    def testUpdatei386Tonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch,))
 +    def testUpdatei386TonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch, p.requires_update))
 +
 +    def testUpdatei386Toi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386,))
 +    def testUpdatei386Toi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.requires_update))
 +
 +    def testUpdatei386Tox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64,))
 +    def testUpdatei386Tox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64, p.requires_update))
 +
 +    def testUpdatei386ToMultilib(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386,))
 +    def testUpdatei386ToMultilibForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.requires_update))
 +
 +    # x86_64 to X
 +
 +    def testUpdatex86_64Tonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_noarch,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch,))
 +    def testUpdatex86_64TonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 +                                     [p.update_noarch, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch, p.requires_update))
 +
 +    def testUpdatex86_64Toi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386,))
 +    def testUpdatex86_64Toi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 +                                     [p.update_i386, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.requires_update))
 +
 +    def testUpdatex86_64Tox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_x86_64,])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64,))
 +    def testUpdatex86_64Tox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 +                                     [p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64, p.requires_update))
 +
 +    def testUpdatex86_64ToMultilib(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64,))
 +    def testUpdatex86_64ToMultilibForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
 +                                     [p.update_i386, p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_x86_64, p.requires_update))
 +
 +    # multilib to X
 +
 +    def testUpdateMultilibTonoarch(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch,))
 +    def testUpdateMultilibTonoarchForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_noarch, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_noarch, p.requires_update))
 +
 +    def testUpdateMultilibToi386(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.update_i386, p.installed_x86_64))
 +            # self.assertResult((p.update_i386,)) # XXX is this right?
 +        else:
 +            self.assertResult((p.update_i386, p.installed_x86_64))
 +    def testUpdateMultilibToi386ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
 +            # self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
 +        else:
 +            self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
 +
 +    def testUpdateMultilibTox86_64(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.update_x86_64, p.installed_i386))
 +            # self.assertResult((p.update_x86_64,)) # XXX is this right?
 +        else:
 +            self.assertResult((p.update_x86_64, p.installed_i386))
 +    def testUpdateMultilibTox86_64ForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        if new_behavior:
 +            self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
 +            # self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
 +        else:
 +            self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
 +
 +    def testUpdateMultilibToMultilib(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.update_x86_64))
 +    def testUpdateMultilibToMultilibForDependency(self):
 +        p = self.pkgs
 +        res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64, p.requires_update])
 +        self.assert_(res=='ok', msg)
 +        self.assertResult((p.update_i386, p.update_x86_64,  p.requires_update))
- 
- def suite():
-     suite = unittest.TestSuite()
-     suite.addTest(unittest.makeSuite(SimpleUpdateTests))
-     return suite
- 
- if __name__ == "__main__":
-     unittest.main(defaultTest="suite")
diff --cc test/testbase.py
index e77ebc1,82ab9df..5a931af
--- a/test/testbase.py
+++ b/test/testbase.py
@@@ -1,10 -2,13 +2,9 @@@ import o
  import sys
  import unittest
  
 -# Adjust path so we can see the src modules running from branch as well
 -# as test dir:
 -sys.path.insert(0, '../../')
 -sys.path.insert(0, '../')
 -sys.path.insert(0, './')
 +import settestpath
  
- new_behavior = "--new_behavior" in sys.argv
- sys.argv = filter("--new_behavior".__ne__, sys.argv)
+ new_behavior = "NEW_BEHAVIOR" in os.environ.keys()
  
  from yum import YumBase
  from yum import transactioninfo
commit ea9bb5ae4cdda45b43b167518b48f3bd0755e772
Author: James Bowes <jbowes at redhat.com>
Date:   Sun Nov 25 10:04:47 2007 -0500

    Remove unit test suite creation (nose does it for us).

diff --git a/test/alltests.py b/test/alltests.py
deleted file mode 100644
index a0911db..0000000
--- a/test/alltests.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import unittest
-import testbase
-
-import depsolvetests
-import packagetests
-import operationstests
-
-def suite():
-    # Append all test suites here:
-    return unittest.TestSuite((
-        depsolvetests.suite(),
-        operationstests.suite(),
-        packagetests.suite(),
-    ))
-
-if __name__ == "__main__":
-    unittest.main(defaultTest="suite")
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 22efc44..67e0d8e 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -500,11 +500,3 @@ class DepsolveTests(DepsolveTests):
 
         self.assertEquals('ok', *self.resolveCode())
         self.assertResult((po, updatepo))
-
-def suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(DepsolveTests))
-    return suite
-
-if __name__ == "__main__":
-    unittest.main(defaultTest="suite")
diff --git a/test/operationstests.py b/test/operationstests.py
index c3658a7..4f82dd7 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -332,14 +332,3 @@ class ComplicatedTests(OperationsTests):
         if new_behavior:
             self.assert_(res=='ok', msg)
             self.assertResult((p.obsoletes_i386, p.conflicts))
-
-def suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(SimpleUpdateTests))
-    suite.addTest(unittest.makeSuite(SimpleObsoleteTests))
-    suite.addTest(unittest.makeSuite(ComplicatedTests))
-    return suite
-
-if __name__ == "__main__":
-    unittest.main(defaultTest="suite")
-
diff --git a/test/packagetests.py b/test/packagetests.py
index b45d629..4931a38 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -197,14 +197,3 @@ class RangeCompareTests(unittest.TestCase):
             (('foo', 'GT', ('1', '1.4.4', None)),  ('foo', 'EQ', ('3', '1.2.4', '7')),  1),
             ):
             self.assertEquals(miscutils.rangeCompare(requires, provides), result)
-
-def suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(InPrcoRangePackageTests))
-    suite.addTest(unittest.makeSuite(PackageEvrTests))
-    suite.addTest(unittest.makeSuite(BuildPackageDictRefTests))
-    suite.addTest(unittest.makeSuite(RangeCompareTests))
-    return suite
-                
-if __name__ == "__main__":
-    unittest.main(defaultTest="suite")
commit b59f5e428e6c24fb50830e621450723e8d80a0d7
Author: James Bowes <jbowes at redhat.com>
Date:   Sun Nov 25 09:59:56 2007 -0500

    Use nosetests for running unit tests

diff --git a/Makefile b/Makefile
index fbc2b6b..9d35e44 100644
--- a/Makefile
+++ b/Makefile
@@ -44,12 +44,12 @@ doccheck:
 	epydoc --check $(DOCS)
 
 test:
-	python test/alltests.py
+	@nosetests -i ".*test" test
 
 check: test
 
 testnewbehavior:
-	NEW_BEHAVIOR=1 python test/alltests.py
+	@NEW_BEHAVIOR=1 nosetests -i ".*test" test
 
 archive: remove_spec = ${PKGNAME}-daily.spec
 archive: _archive
commit 85c12525ef0e6808b7c8f5ebdafa9ba25e8091aa
Author: James Bowes <jbowes at redhat.com>
Date:   Sun Nov 25 09:58:45 2007 -0500

    Get new_behaviour test option from env variables.

diff --git a/Makefile b/Makefile
index 20274a9..fbc2b6b 100644
--- a/Makefile
+++ b/Makefile
@@ -49,7 +49,7 @@ test:
 check: test
 
 testnewbehavior:
-	python test/alltests.py --new_behavior
+	NEW_BEHAVIOR=1 python test/alltests.py
 
 archive: remove_spec = ${PKGNAME}-daily.spec
 archive: _archive
diff --git a/test/testbase.py b/test/testbase.py
index 3c90636..82ab9df 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -1,3 +1,4 @@
+import os
 import sys
 import unittest
 
@@ -7,8 +8,7 @@ sys.path.insert(0, '../../')
 sys.path.insert(0, '../')
 sys.path.insert(0, './')
 
-new_behavior = "--new_behavior" in sys.argv
-sys.argv = filter("--new_behavior".__ne__, sys.argv)
+new_behavior = "NEW_BEHAVIOR" in os.environ.keys()
 
 from yum import YumBase
 from yum import transactioninfo



More information about the Yum-cvs-commits mailing list