Skip to content

Commit

Permalink
fix config_file_option help message
Browse files Browse the repository at this point in the history
  • Loading branch information
n8pease committed May 21, 2020
1 parent 554fdec commit 0603426
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
7 changes: 5 additions & 2 deletions python/lsst/daf/butler/cli/opt/config_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,15 @@


class config_file_option: # noqa: N801
def __init__(self, required=False, help=None):

defaultHelp = "The path to the config file."

def __init__(self, required=False, help=defaultHelp):
self.required = required
self.help = help

def __call__(self, f):
return click.option("-C", "--config-file",
required=self.required,
type=click.STRING,
help="The path to the config file.")(f)
help=self.help)(f)
35 changes: 34 additions & 1 deletion tests/test_cliOption.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import unittest
import yaml

from lsst.daf.butler.cli.opt import config_option, dataset_type_option
from lsst.daf.butler.cli.opt import config_file_option, config_option, dataset_type_option


class DatasetTypeTestCase(unittest.TestCase):
Expand Down Expand Up @@ -107,5 +107,38 @@ def test_help(self):
self.assertIn("foo bar baz", result.stdout)


class ConfigFileTestCase(unittest.TestCase):

@staticmethod
@click.command()
@config_file_option(help="foo bar baz")
def cli(config_file):
click.echo(config_file, nl=False)

def test_basic(self):
"""test arguments"""
runner = click.testing.CliRunner()
result = runner.invoke(ConfigFileTestCase.cli, ["--config-file", "path/to/file"])
self.assertEqual(result.exit_code, 0, f"output: {result.output} exception: {result.exception}")
self.assertEqual("path/to/file", result.stdout)

def test_missing(self):
@click.command()
@config_file_option(required=True)
def cli(config):
pass
runner = click.testing.CliRunner()
result = runner.invoke(cli, [])
self.assertNotEqual(result.exit_code, 0, f"output: {result.output} exception: {result.exception}")
self.assertIn('Missing option "-C" / "--config-file"', result.output)

def test_help(self):
"""test capture of the help text"""
runner = click.testing.CliRunner()
result = runner.invoke(ConfigFileTestCase.cli, ["--help"])
self.assertEqual(result.exit_code, 0, f"output: {result.output} exception: {result.exception}")
self.assertIn("foo bar baz", result.stdout)


if __name__ == "__main__":
unittest.main()

0 comments on commit 0603426

Please sign in to comment.