From ab1e5b5644deed346dacb90bcec5627c02fc8930 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 23 Mar 2011 07:08:26 +0100 Subject: [PATCH] [tests] add another python-based package trigger test --- libraries/tests/client.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/libraries/tests/client.py b/libraries/tests/client.py index 24f9cf805..9ff1b9d62 100644 --- a/libraries/tests/client.py +++ b/libraries/tests/client.py @@ -242,6 +242,45 @@ exit 42 import os os.system("echo hello") my_ext_status = 42 +""" + trigger = self.Client.Triggers('postinstall', pkgdata) + trigger.prepare() + exit_st = trigger._do_trigger_call_ext_generic() + trigger.kill() + self.assertEqual(exit_st, 42) + + def test_python_trigger2(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'] = """\ +import os +import subprocess +from entropy.const import etpConst + +def configure_correct_gcc(): + gcc_target = "4.5" + uname_arch = os.uname()[4] + gcc_dir = etpConst['systemroot'] + "/etc/env.d/gcc" + gcc_profile_file_pfx = uname_arch + "-pc-linux-gnu-" + gcc_target + gcc_profile_file = None + for curdir, subs, files in os.walk(gcc_dir): + for fname in files: + if fname.startswith(gcc_profile_file_pfx): + gcc_profile_file = fname + break + break + if gcc_profile_file is not None: + subprocess.call(("echo", gcc_profile_file)) + return 42 + +if stage == "postinstall": + my_ext_status = configure_correct_gcc() +else: + my_ext_status = 0 """ trigger = self.Client.Triggers('postinstall', pkgdata) trigger.prepare()