summaryrefslogtreecommitdiff
path: root/tests/test_argparse.py
diff options
context:
space:
mode:
authorJared Crapo <jared@kotfu.net>2018-01-10 23:17:46 -0700
committerJared Crapo <jared@kotfu.net>2018-01-10 23:17:46 -0700
commitde320b61a894736e58bc5d427564eddca70bfc8e (patch)
tree18b32e976d2d72d49aabb6f28d93cb5f4903afde /tests/test_argparse.py
parent0a03ab88f8bb70cc2f384c0b98a18bdead7bd417 (diff)
downloadcmd2-git-de320b61a894736e58bc5d427564eddca70bfc8e.tar.gz
Fix a nasty bug in @with_argument_parser
second argument of do_* methods was getting mangled when we strip quotes
Diffstat (limited to 'tests/test_argparse.py')
-rw-r--r--tests/test_argparse.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/test_argparse.py b/tests/test_argparse.py
index e9dbc1b3..52ce7de8 100644
--- a/tests/test_argparse.py
+++ b/tests/test_argparse.py
@@ -2,6 +2,7 @@
"""
Cmd2 testing for argument parsing
"""
+import re
import argparse
import pytest
@@ -43,6 +44,16 @@ class ArgparseApp(cmd2.Cmd):
self.stdout.write('<{0}>{1}</{0}>'.format(args.tag[0], ' '.join(args.content)))
self.stdout.write('\n')
+ argparser = argparse.ArgumentParser()
+ argparser.add_argument('args', nargs='*')
+ @cmd2.with_argument_parser(argparser)
+ def do_compare(self, cmdline, args=None):
+ cmdline_str = re.sub('\s+', ' ', cmdline)
+ args_str = re.sub('\s+', ' ', ' '.join(args.args))
+ if cmdline_str == args_str:
+ self.stdout.write('True')
+ else:
+ self.stdout.write('False')
@pytest.fixture
def argparse_app():
@@ -88,4 +99,9 @@ def test_argparse_prog(argparse_app):
out = run_cmd(argparse_app, 'help tag')
progname = out[0].split(' ')[1]
assert progname == 'tag'
+
+def test_argparse_cmdline(argparse_app):
+ out = run_cmd(argparse_app, 'compare this is a test')
+ assert out[0] == 'True'
+
\ No newline at end of file