summaryrefslogtreecommitdiff
path: root/test/test_argparse.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_argparse.py')
-rw-r--r--test/test_argparse.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/test/test_argparse.py b/test/test_argparse.py
index ba1a3ba..dd66239 100644
--- a/test/test_argparse.py
+++ b/test/test_argparse.py
@@ -203,8 +203,9 @@ class ParserTesterMetaclass(type):
def test_successes(self, tester):
parser = self._get_parser(tester)
- for args_str, expected_ns in tester.successes:
- args = args_str.split()
+ for args, expected_ns in tester.successes:
+ if isinstance(args, str):
+ args = args.split()
result_ns = self._parse_args(parser, args)
tester.assertEqual(expected_ns, result_ns)
@@ -1045,6 +1046,23 @@ class TestOptionalsNumericAndPositionals(ParserTestCase):
]
+class TestEmptyAndSpaceContainingArguments(ParserTestCase):
+
+ argument_signatures = [
+ Sig('x', nargs='?'),
+ Sig('-y'),
+ ]
+ failures = ['-y']
+ successes = [
+ ([''], NS(x='', y=None)),
+ (['a badger'], NS(x='a badger', y=None)),
+ (['-a badger'], NS(x='-a badger', y=None)),
+ (['-y', ''], NS(x=None, y='')),
+ (['-y', 'a badger'], NS(x=None, y='a badger')),
+ (['-y', '-a badger'], NS(x=None, y='-a badger')),
+ ]
+
+
class TestNargsZeroOrMore(ParserTestCase):
"""Tests specifying an args for an Optional that accepts zero or more"""