[yum-git] test/simpleobsoletestests.py

James Bowes jbowes at linux.duke.edu
Wed Mar 19 13:15:20 UTC 2008


 test/simpleobsoletestests.py |   38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

New commits:
commit aa8a0e685bc5e8bfdf546f7de59d1f197b759106
Author: James Bowes <jbowes at redhat.com>
Date:   Wed Mar 19 09:13:54 2008 -0400

    Add some obsoletes tests for the git metapackage rename
    
    I was all ready to blame yum for my inability to update git in F8 to the
    new and renamed version in rawhide, so much so that the first thing I
    did was write these tests, which would surely fail and lead me to some
    obscure bug in yum. I would fix the bug and everyone would be happy.
    
    Well the version obsoletes I put in git's spec was off by one. So here
    are the tests, which will serve as a testament to yum's awesomeness, and
    my carelessness.

diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 134483b..05ebf05 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -215,3 +215,41 @@ class SimpleObsoletesTests(OperationsTests):
                                      [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))
+
+
+class GitMetapackageObsoletesTests(OperationsTests):
+
+    @staticmethod
+    def buildPkgs(pkgs, *args):
+        # installed
+        pkgs.installed = FakePackage('git-core', '1.5.4.2', '1', '0', 'x86_64')
+        pkgs.metapackage = FakePackage('git', '1.5.4.2', '1', '0', 'x86_64')
+        # obsoletes
+        pkgs.new_git = FakePackage('git', '1.5.4.4', '1', '0', 'x86_64')
+        pkgs.new_git.addObsoletes('git-core', 'LE', ('0', '1.5.4.3', '1'))
+        pkgs.new_git.addProvides('git-core', 'EQ', ('0', '1.5.4', '1'))
+
+        pkgs.git_all = FakePackage('git-all', '1.5.4', '1', '0', 'x86_64')
+        pkgs.git_all.addObsoletes('git', 'LE', ('0', '1.5.4.3', '1'))
+
+
+    def testGitMetapackageOnlyCoreInstalled(self):
+        # Fedora had a package named 'git', which was a metapackage requiring
+        # all other git rpms. Most people wanted 'git-core' when they asked for
+        # git, so we renamed them.
+        # git-core became git, and provided git-core = version while obsoleting
+        # git-core < version
+        # git became git-all, obsoleting git < version
+
+        p = self.pkgs
+        res, msg = self.runOperation(['update'], [p.installed],
+                [p.new_git, p.git_all])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p.new_git,))
+
+    def testGitMetapackageRenameMetapackageAndCoreInstalled(self):
+        p = self.pkgs
+        res, msg = self.runOperation(['update'], [p.installed, p.metapackage],
+                [p.new_git, p.git_all])
+        self.assert_(res=='ok', msg)
+        self.assertResult((p.new_git, p.git_all))



More information about the Yum-cvs-commits mailing list