From 2522582b5dee7f44283c5374558f7e814fe8b7e4 Mon Sep 17 00:00:00 2001 From: Jonathan Wren Date: Sat, 23 May 2020 13:28:15 -0700 Subject: [PATCH] fix argument parsing for test suite --- features/steps/core.py | 8 +++++--- jrnl/cli.py | 12 +++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/features/steps/core.py b/features/steps/core.py index 2c9cee1e..cd00701c 100644 --- a/features/steps/core.py +++ b/features/steps/core.py @@ -166,10 +166,12 @@ def run(context, command, cache_dir=None): cache_dir = os.path.join("features", "cache", cache_dir) command = command.format(cache_dir=cache_dir) - args = ushlex(command)[1:] + args = ushlex(command) + try: - cli.run(args or None) - context.exit_status = 0 + with patch('sys.argv', args): + cli.run(args[1:]) + context.exit_status = 0 except SystemExit as e: context.exit_status = e.code diff --git a/jrnl/cli.py b/jrnl/cli.py index 3a4c392e..1b25acd8 100644 --- a/jrnl/cli.py +++ b/jrnl/cli.py @@ -194,11 +194,14 @@ def parse_args(args=None): help="Opens an interactive interface for deleting entries.", ) + if not args: + args = [] + # Handle '-123' as a shortcut for '-n 123' num = re.compile(r"^-(\d+)$") - if args is None: - args = [] - return parser.parse_args([num.sub(r"-n \1", a) for a in args]) + args = [num.sub(r"-n \1", arg) for arg in args] + + return parser.parse_args(args) def guess_mode(args, config): @@ -300,6 +303,9 @@ def configure_logger(debug=False): def run(manual_args=None): + if manual_args is None: + manual_args = sys.argv[1:] + args = parse_args(manual_args) configure_logger(args.debug)