From 0b68adbf2115b0a940e756ffe101802fe9cd4c9d Mon Sep 17 00:00:00 2001 From: John Chilton <jmchilton@gmail.com> Date: Fri, 17 Apr 2015 19:39:50 -0400 Subject: [PATCH] Test for script help. Not a hugely important test but it does ensure the modules load cleanly and that the scripts all respond to --help with a 0 exit code. --- pulsar/scripts/chown_working_directory.py | 4 ++-- pulsar/scripts/drmaa_kill.py | 4 ++-- pulsar/scripts/drmaa_launch.py | 4 ++-- pulsar/scripts/mesos_executor.py | 11 ++++++++--- pulsar/scripts/mesos_framework.py | 6 +++--- test/cli_help_tests.py | 22 ++++++++++++++++++++++ 6 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 test/cli_help_tests.py diff --git a/pulsar/scripts/chown_working_directory.py b/pulsar/scripts/chown_working_directory.py index 56f6bdc9..970e13ed 100644 --- a/pulsar/scripts/chown_working_directory.py +++ b/pulsar/scripts/chown_working_directory.py @@ -11,12 +11,12 @@ DESCRIPTION = "Change ownership of a job working directory." FORCE_PRODUCTION = False -def main(): +def main(argv=None): arg_parser = ArgumentParser(description=DESCRIPTION) arg_parser.add_argument("--user", required=True) arg_parser.add_argument("--job_id") arg_parser.add_argument("--job_directory") - args = arg_parser.parse_args() + args = arg_parser.parse_args(argv) user = args.user job_id = args.job_id diff --git a/pulsar/scripts/drmaa_kill.py b/pulsar/scripts/drmaa_kill.py index c21e6736..6401afa2 100644 --- a/pulsar/scripts/drmaa_kill.py +++ b/pulsar/scripts/drmaa_kill.py @@ -6,10 +6,10 @@ from pulsar.main import ArgumentParser DESCRIPTION = "Kill a job via DRMAA interface." -def main(): +def main(argv=None): arg_parser = ArgumentParser(description=DESCRIPTION) arg_parser.add_argument("--external_id", required=True) - args = arg_parser.parse_args() + args = arg_parser.parse_args(argv) external_id = load(args.external_id) session = DrmaaSessionFactory().get() external_id = session.kill(external_id) diff --git a/pulsar/scripts/drmaa_launch.py b/pulsar/scripts/drmaa_launch.py index 38345ee5..8e2c0889 100644 --- a/pulsar/scripts/drmaa_launch.py +++ b/pulsar/scripts/drmaa_launch.py @@ -7,10 +7,10 @@ from pulsar.main import ArgumentParser DESCRIPTION = "Submit a DRMAA job." -def main(): +def main(argv=None): arg_parser = ArgumentParser(description=DESCRIPTION) arg_parser.add_argument("--job_attributes", required=True) - args = arg_parser.parse_args() + args = arg_parser.parse_args(argv) job_attributes = load(open(args.job_attributes, "r")) session = DrmaaSessionFactory().get() external_id = session.run_job(**job_attributes) diff --git a/pulsar/scripts/mesos_executor.py b/pulsar/scripts/mesos_executor.py index 4bb710b6..df39ecbd 100644 --- a/pulsar/scripts/mesos_executor.py +++ b/pulsar/scripts/mesos_executor.py @@ -68,9 +68,9 @@ class PulsarExecutor(Executor): driver.sendFrameworkMessage(message) -def run_executor(): +def run_executor(argv=None): arg_parser = ArgumentParser(description=DESCRIPTION) - arg_parser.parse_args() + arg_parser.parse_args(argv) ensure_mesos_libs() log.info("Starting Pulsar executor") @@ -80,5 +80,10 @@ def run_executor(): exit_code = 1 return exit_code + +def main(argv=None): + sys.exit(run_executor(argv)) + + if __name__ == "__main__": - sys.exit(run_executor()) + main() diff --git a/pulsar/scripts/mesos_framework.py b/pulsar/scripts/mesos_framework.py index 592b663d..5da99dcc 100644 --- a/pulsar/scripts/mesos_framework.py +++ b/pulsar/scripts/mesos_framework.py @@ -11,14 +11,14 @@ from pulsar.main import ( DESCRIPTION = "Pulsar Mesos Framework Entry Point." -def main(): - ensure_mesos_libs() +def main(argv=None): arg_parser = ArgumentParser( description=DESCRIPTION, ) arg_parser.add_argument("--master", default=None, required=True) PulsarManagerConfigBuilder.populate_options(arg_parser) - args = arg_parser.parse_args() + args = arg_parser.parse_args(argv) + ensure_mesos_libs() config_builder = PulsarManagerConfigBuilder(args) config_builder.setup_logging() diff --git a/test/cli_help_tests.py b/test/cli_help_tests.py new file mode 100644 index 00000000..693535a6 --- /dev/null +++ b/test/cli_help_tests.py @@ -0,0 +1,22 @@ +import pulsar.scripts.chown_working_directory +import pulsar.scripts.drmaa_kill +import pulsar.scripts.drmaa_launch +import pulsar.scripts.mesos_executor +import pulsar.scripts.mesos_framework +import pulsar.scripts.submit + +MODULES = [ + pulsar.scripts.drmaa_kill, + pulsar.scripts.drmaa_launch, + pulsar.scripts.mesos_executor, + pulsar.scripts.mesos_framework, + pulsar.scripts.submit, +] + + +def test_scripts_have_help(): + for module in MODULES: + try: + module.main(["-h"]) + except SystemExit as e: + assert e.code == 0, module -- GitLab