diff --git a/pulsar/scripts/chown_working_directory.py b/pulsar/scripts/chown_working_directory.py index 56f6bdc930d160743b0f56d78f4155c1cae26fcb..970e13ed38418029d7ec8495f73b5732a9552ff6 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 c21e6736977446424c661d123a3c73f3298a236a..6401afa246323a788ef96771955f1025343e1583 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 38345ee5a005bf35b4b8b5cac7c09fa50c9ece38..8e2c0889f3f9ba8fdd532f6a79d61063eeb03542 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 4bb710b6e53d1dfdc31320ff5226f96a82505262..df39ecbd24a4f2f022c7bec2ec407a7c876ff007 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 592b663d7425b2bfbbe91bc990c2eddc535c4279..5da99dcc20c542dd866d79a300aaef344730957a 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 0000000000000000000000000000000000000000..693535a68f4d61b77fb506fea7fe717c2de5b220 --- /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