[tests] add shell trigger test to client

This commit is contained in:
Fabio Erculiani
2011-03-23 06:37:50 +01:00
parent fa20010d80
commit e9e4161ae7

View File

@@ -180,7 +180,7 @@ class EntropyRepositoryTest(unittest.TestCase):
dbconn = self.Client._init_generic_temp_repository(
self.mem_repoid, self.mem_repo_desc, temp_file = ":memory:")
test_pkg = _misc.get_test_package()
data = self.Spm.extract_package_metadata(test_pkg)
data = self.Spm.extract_package_metadata(test_pkg)
idpackage = dbconn.addPackage(data)
self.assertEqual(data, dbconn.getPackageData(idpackage))
self.Client.remove_repository(self.mem_repoid)
@@ -213,6 +213,24 @@ class EntropyRepositoryTest(unittest.TestCase):
for pkg_path, pkg_atom in self.test_pkgs:
self._do_pkg_test(pkg_path, pkg_atom)
def test_shell_trigger(self):
dbconn = self.Client._init_generic_temp_repository(
self.mem_repoid, self.mem_repo_desc, temp_file = ":memory:")
test_pkg = _misc.get_test_package()
data = self.Spm.extract_package_metadata(test_pkg)
idpackage = dbconn.addPackage(data)
pkgdata = dbconn.getTriggerData(idpackage)
pkgdata['trigger'] = """\
#!%s
echo $@
exit 42
""" % (etpConst['trigger_sh_interpreter'],)
trigger = self.Client.Triggers('postinstall', pkgdata)
trigger.prepare()
exit_st = trigger._do_trigger_call_ext_generic()
trigger.kill()
self.assertEqual(exit_st, 42)
def _do_pkg_test(self, pkg_path, pkg_atom):
# this test might be considered controversial, for now, let's keep it