summaryrefslogtreecommitdiffstats
path: root/src/yum/test/test_yum_package.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/yum/test/test_yum_package.py')
-rwxr-xr-xsrc/yum/test/test_yum_package.py79
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()