diff options
Diffstat (limited to 'src/yum/test/test_yum_package.py')
-rwxr-xr-x | src/yum/test/test_yum_package.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/yum/test/test_yum_package.py b/src/yum/test/test_yum_package.py new file mode 100755 index 0000000..c5b2715 --- /dev/null +++ b/src/yum/test/test_yum_package.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python + +from common import * + +class TestYumPackage(YumBaseTestCase): + + CLASS_NAME = "LMI_YumPackage" + KEYS = ( "Name", "SoftwareElementID", "SoftwareElementState" + , "TargetOperatingSystem", "Version") + + def make_op(self, name, epoch, ver, rel, arch, ses=2): + op = self.op.copy() + op["Name"] = name + op["SoftwareElementID"] = make_nevra( + name, epoch, ver, rel, arch, "ALWAYS") + op["SoftwareElementState"] = pywbem.Uint16(ses) + op["TargetOperatingSystem"] = pywbem.Uint16(36) + op["Version"] = ver + return op + + def test_get_instance(self): + for pkg in packages: + if is_installed(pkg.name): + remove_pkg(pkg.name) + op = self.make_op(pkg.name, pkg.epoch, pkg.ver, + pkg.rel, pkg.arch, 1) + inst = self.conn.GetInstance(InstanceName=op, LocalOnly=False) + self.assertEqual(inst.path, op) + for key in self.KEYS: + self.assertTrue(inst.properties.has_key(key)) + self.assertEqual(inst.path[key], inst[key]) + self.assertEqual(inst['Release'], pkg.rel) + install_pkg(*pkg[:5]) + op['SoftwareElementState'] = pywbem.Uint16(2) + inst = self.conn.GetInstance(InstanceName=op, LocalOnly=False) + self.assertEqual(inst.path, op) + + def test_method_install(self): + for pkg in packages: + if is_installed(pkg.name): + remove_pkg(pkg.name) + op = self.make_op(pkg.name, pkg.epoch, pkg.ver, + pkg.rel, pkg.arch, 1) + (rval, oparms) = self.conn.InvokeMethod( + MethodName="Install", + ObjectName=op) + self.assertEqual(rval, pywbem.Uint32(1)) + self.assertEqual(len(oparms), 1) + self.assertTrue(oparms.has_key('Installed')) + op['SoftwareElementState'] = pywbem.Uint16(2) + self.assertEqual(oparms['Installed'], op) + self.assertTrue(is_installed(pkg.name)) + (rval, oparms) = self.conn.InvokeMethod( + MethodName="Install", + ObjectName=op) + self.assertEqual(rval, pywbem.Uint32(0)) + self.assertEqual(len(oparms), 1) + self.assertEqual(oparms['Installed'], op) + + def test_method_remove(self): + for pkg in packages: + if not is_installed(pkg.name): + install_pkg(*pkg[:5]) + op = self.make_op(*pkg[:5]) + (rval, oparms) = self.conn.InvokeMethod( + MethodName="Remove", + ObjectName=op) + self.assertEqual(rval, pywbem.Uint16(1)) + self.assertEqual(len(oparms), 0) + self.assertFalse(is_installed(pkg.name)) + op["SoftwareElementState"] = pywbem.Uint16(1) + (rval, oparms) = self.conn.InvokeMethod( + MethodName="Remove", + ObjectName=op) + self.assertEqual(rval, pywbem.Uint32(0)) + self.assertEqual(len(oparms), 0) + +if __name__ == '__main__': + unittest.main() |