Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_argparse.py @ 60174:255a401c19b0
(partially)
Merged revisions 79534,79537,79539,79558,79606 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r79534 | florent.xicluna | 2010-03-31 23:21:54 +0200 (mer, 31 mar 2010) | 2 lines
Fix test for xml.etree when using a non-ascii path. And use check_warnings instead of catch_warnings.
........
r79537 | florent.xicluna | 2010-03-31 23:40:32 +0200 (mer, 31 mar 2010) | 2 lines
Fix typo
........
r79539 | florent.xicluna | 2010-04-01 00:01:03 +0200 (jeu, 01 avr 2010) | 2 lines
Replace catch_warnings with check_warnings when it makes sense. Use assertRaises context manager to simplify some tests.
........
r79558 | florent.xicluna | 2010-04-01 20:17:09 +0200 (jeu, 01 avr 2010) | 2 lines
#7092: Fix some -3 warnings, and fix Lib/platform.py when the path contains a double-quote.
........
r79606 | florent.xicluna | 2010-04-02 19:26:42 +0200 (ven, 02 avr 2010) | 2 lines
Backport some robotparser test and skip the test if the external resource is not available.
........
| author | Florent Xicluna <florent.xicluna@gmail.com> |
|---|---|
| date | Fri, 02 Apr 2010 18:52:12 +0000 |
| parents | 7251e737a5d8 |
| children | c41478473eae |
| rev | line source |
|---|---|
|
59990
7251e737a5d8
Merged revisions 79388 via svnmerge from
Steven Bethard <steven.bethard@gmail.com>
parents:
59285
diff
changeset
|
1 # Author: Steven J. Bethard <steven.bethard@gmail.com>. |
|
59275
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3 import codecs |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4 import os |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
5 import shutil |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
6 import sys |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
7 import textwrap |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
8 import tempfile |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
9 import unittest |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
10 import argparse |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
11 |
|
59282
b30f8ce82167
Merged revisions 78600-78601 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59275
diff
changeset
|
12 from io import StringIO |
|
b30f8ce82167
Merged revisions 78600-78601 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59275
diff
changeset
|
13 |
|
59275
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
14 from test import support |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
15 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
16 class TestCase(unittest.TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
17 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
18 def assertEqual(self, obj1, obj2): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
19 if obj1 != obj2: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
20 print('') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
21 print(repr(obj1)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
22 print(repr(obj2)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
23 print(obj1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
24 print(obj2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
25 super(TestCase, self).assertEqual(obj1, obj2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
26 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
27 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
28 class TempDirMixin(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
29 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
30 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
31 self.temp_dir = tempfile.mkdtemp() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
32 self.old_dir = os.getcwd() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
33 os.chdir(self.temp_dir) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
34 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
35 def tearDown(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
36 os.chdir(self.old_dir) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
37 while True: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
38 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
39 shutil.rmtree(self.temp_dir) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
40 except WindowsError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
41 continue |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
42 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
43 break |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
44 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
45 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
46 class Sig(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
47 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
48 def __init__(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
49 self.args = args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
50 self.kwargs = kwargs |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
51 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
52 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
53 class NS(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
54 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
55 def __init__(self, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
56 self.__dict__.update(kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
57 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
58 def __repr__(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
59 sorted_items = sorted(self.__dict__.items()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
60 kwarg_str = ', '.join(['%s=%r' % tup for tup in sorted_items]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
61 return '%s(%s)' % (type(self).__name__, kwarg_str) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
62 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
63 def __eq__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
64 return vars(self) == vars(other) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
65 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
66 def __ne__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
67 return not (self == other) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
68 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
69 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
70 class ArgumentParserError(Exception): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
71 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
72 def __init__(self, message, stdout=None, stderr=None, error_code=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
73 Exception.__init__(self, message, stdout, stderr) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
74 self.message = message |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
75 self.stdout = stdout |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
76 self.stderr = stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
77 self.error_code = error_code |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
78 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
79 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
80 def stderr_to_parser_error(parse_args, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
81 # if this is being called recursively and stderr or stdout is already being |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
82 # redirected, simply call the function and let the enclosing function |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
83 # catch the exception |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
84 if isinstance(sys.stderr, StringIO) or isinstance(sys.stdout, StringIO): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
85 return parse_args(*args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
86 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
87 # if this is not being called recursively, redirect stderr and |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
88 # use it as the ArgumentParserError message |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
89 old_stdout = sys.stdout |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
90 old_stderr = sys.stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
91 sys.stdout = StringIO() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
92 sys.stderr = StringIO() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
93 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
94 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
95 result = parse_args(*args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
96 for key in list(vars(result)): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
97 if getattr(result, key) is sys.stdout: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
98 setattr(result, key, old_stdout) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
99 if getattr(result, key) is sys.stderr: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
100 setattr(result, key, old_stderr) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
101 return result |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
102 except SystemExit: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
103 code = sys.exc_info()[1].code |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
104 stdout = sys.stdout.getvalue() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
105 stderr = sys.stderr.getvalue() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
106 raise ArgumentParserError("SystemExit", stdout, stderr, code) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
107 finally: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
108 sys.stdout = old_stdout |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
109 sys.stderr = old_stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
110 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
111 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
112 class ErrorRaisingArgumentParser(argparse.ArgumentParser): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
113 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
114 def parse_args(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
115 parse_args = super(ErrorRaisingArgumentParser, self).parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
116 return stderr_to_parser_error(parse_args, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
117 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
118 def exit(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
119 exit = super(ErrorRaisingArgumentParser, self).exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
120 return stderr_to_parser_error(exit, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
121 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
122 def error(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
123 error = super(ErrorRaisingArgumentParser, self).error |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
124 return stderr_to_parser_error(error, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
125 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
126 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
127 class ParserTesterMetaclass(type): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
128 """Adds parser tests using the class attributes. |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
129 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
130 Classes of this type should specify the following attributes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
131 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
132 argument_signatures -- a list of Sig objects which specify |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
133 the signatures of Argument objects to be created |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
134 failures -- a list of args lists that should cause the parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
135 to fail |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
136 successes -- a list of (initial_args, options, remaining_args) tuples |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
137 where initial_args specifies the string args to be parsed, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
138 options is a dict that should match the vars() of the options |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
139 parsed out of initial_args, and remaining_args should be any |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
140 remaining unparsed arguments |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
141 """ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
142 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
143 def __init__(cls, name, bases, bodydict): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
144 if name == 'ParserTestCase': |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
145 return |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
146 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
147 # default parser signature is empty |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
148 if not hasattr(cls, 'parser_signature'): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
149 cls.parser_signature = Sig() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
150 if not hasattr(cls, 'parser_class'): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
151 cls.parser_class = ErrorRaisingArgumentParser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
152 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
153 # --------------------------------------- |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
154 # functions for adding optional arguments |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
155 # --------------------------------------- |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
156 def no_groups(parser, argument_signatures): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
157 """Add all arguments directly to the parser""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
158 for sig in argument_signatures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
159 parser.add_argument(*sig.args, **sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
160 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
161 def one_group(parser, argument_signatures): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
162 """Add all arguments under a single group in the parser""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
163 group = parser.add_argument_group('foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
164 for sig in argument_signatures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
165 group.add_argument(*sig.args, **sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
166 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
167 def many_groups(parser, argument_signatures): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
168 """Add each argument in its own group to the parser""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
169 for i, sig in enumerate(argument_signatures): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
170 group = parser.add_argument_group('foo:%i' % i) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
171 group.add_argument(*sig.args, **sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
172 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
173 # -------------------------- |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
174 # functions for parsing args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
175 # -------------------------- |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
176 def listargs(parser, args): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
177 """Parse the args by passing in a list""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
178 return parser.parse_args(args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
179 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
180 def sysargs(parser, args): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
181 """Parse the args by defaulting to sys.argv""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
182 old_sys_argv = sys.argv |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
183 sys.argv = [old_sys_argv[0]] + args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
184 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
185 return parser.parse_args() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
186 finally: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
187 sys.argv = old_sys_argv |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
188 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
189 # class that holds the combination of one optional argument |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
190 # addition method and one arg parsing method |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
191 class AddTests(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
192 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
193 def __init__(self, tester_cls, add_arguments, parse_args): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
194 self._add_arguments = add_arguments |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
195 self._parse_args = parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
196 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
197 add_arguments_name = self._add_arguments.__name__ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
198 parse_args_name = self._parse_args.__name__ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
199 for test_func in [self.test_failures, self.test_successes]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
200 func_name = test_func.__name__ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
201 names = func_name, add_arguments_name, parse_args_name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
202 test_name = '_'.join(names) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
203 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
204 def wrapper(self, test_func=test_func): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
205 test_func(self) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
206 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
207 wrapper.__name__ = test_name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
208 except TypeError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
209 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
210 setattr(tester_cls, test_name, wrapper) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
211 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
212 def _get_parser(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
213 args = tester.parser_signature.args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
214 kwargs = tester.parser_signature.kwargs |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
215 parser = tester.parser_class(*args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
216 self._add_arguments(parser, tester.argument_signatures) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
217 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
218 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
219 def test_failures(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
220 parser = self._get_parser(tester) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
221 for args_str in tester.failures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
222 args = args_str.split() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
223 raises = tester.assertRaises |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
224 raises(ArgumentParserError, parser.parse_args, args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
225 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
226 def test_successes(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
227 parser = self._get_parser(tester) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
228 for args, expected_ns in tester.successes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
229 if isinstance(args, str): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
230 args = args.split() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
231 result_ns = self._parse_args(parser, args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
232 tester.assertEqual(expected_ns, result_ns) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
233 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
234 # add tests for each combination of an optionals adding method |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
235 # and an arg parsing method |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
236 for add_arguments in [no_groups, one_group, many_groups]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
237 for parse_args in [listargs, sysargs]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
238 AddTests(cls, add_arguments, parse_args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
239 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
240 bases = TestCase, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
241 ParserTestCase = ParserTesterMetaclass('ParserTestCase', bases, {}) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
242 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
243 # =============== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
244 # Optionals tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
245 # =============== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
246 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
247 class TestOptionalsSingleDash(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
248 """Test an Optional with a single-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
249 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
250 argument_signatures = [Sig('-x')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
251 failures = ['-x', 'a', '--foo', '-x --foo', '-x -y'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
252 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
253 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
254 ('-x a', NS(x='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
255 ('-xa', NS(x='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
256 ('-x -1', NS(x='-1')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
257 ('-x-1', NS(x='-1')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
258 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
259 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
260 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
261 class TestOptionalsSingleDashCombined(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
262 """Test an Optional with a single-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
263 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
264 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
265 Sig('-x', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
266 Sig('-yyy', action='store_const', const=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
267 Sig('-z'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
268 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
269 failures = ['a', '--foo', '-xa', '-x --foo', '-x -z', '-z -x', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
270 '-yx', '-yz a', '-yyyx', '-yyyza', '-xyza'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
271 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
272 ('', NS(x=False, yyy=None, z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
273 ('-x', NS(x=True, yyy=None, z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
274 ('-za', NS(x=False, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
275 ('-z a', NS(x=False, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
276 ('-xza', NS(x=True, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
277 ('-xz a', NS(x=True, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
278 ('-x -za', NS(x=True, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
279 ('-x -z a', NS(x=True, yyy=None, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
280 ('-y', NS(x=False, yyy=42, z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
281 ('-yyy', NS(x=False, yyy=42, z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
282 ('-x -yyy -za', NS(x=True, yyy=42, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
283 ('-x -yyy -z a', NS(x=True, yyy=42, z='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
284 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
285 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
286 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
287 class TestOptionalsSingleDashLong(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
288 """Test an Optional with a multi-character single-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
289 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
290 argument_signatures = [Sig('-foo')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
291 failures = ['-foo', 'a', '--foo', '-foo --foo', '-foo -y', '-fooa'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
292 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
293 ('', NS(foo=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
294 ('-foo a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
295 ('-foo -1', NS(foo='-1')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
296 ('-fo a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
297 ('-f a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
298 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
299 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
300 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
301 class TestOptionalsSingleDashSubsetAmbiguous(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
302 """Test Optionals where option strings are subsets of each other""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
303 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
304 argument_signatures = [Sig('-f'), Sig('-foobar'), Sig('-foorab')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
305 failures = ['-f', '-foo', '-fo', '-foo b', '-foob', '-fooba', '-foora'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
306 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
307 ('', NS(f=None, foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
308 ('-f a', NS(f='a', foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
309 ('-fa', NS(f='a', foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
310 ('-foa', NS(f='oa', foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
311 ('-fooa', NS(f='ooa', foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
312 ('-foobar a', NS(f=None, foobar='a', foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
313 ('-foorab a', NS(f=None, foobar=None, foorab='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
314 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
315 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
316 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
317 class TestOptionalsSingleDashAmbiguous(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
318 """Test Optionals that partially match but are not subsets""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
319 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
320 argument_signatures = [Sig('-foobar'), Sig('-foorab')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
321 failures = ['-f', '-f a', '-fa', '-foa', '-foo', '-fo', '-foo b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
322 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
323 ('', NS(foobar=None, foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
324 ('-foob a', NS(foobar='a', foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
325 ('-foor a', NS(foobar=None, foorab='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
326 ('-fooba a', NS(foobar='a', foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
327 ('-foora a', NS(foobar=None, foorab='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
328 ('-foobar a', NS(foobar='a', foorab=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
329 ('-foorab a', NS(foobar=None, foorab='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
330 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
331 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
332 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
333 class TestOptionalsNumeric(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
334 """Test an Optional with a short opt string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
335 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
336 argument_signatures = [Sig('-1', dest='one')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
337 failures = ['-1', 'a', '-1 --foo', '-1 -y', '-1 -1', '-1 -2'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
338 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
339 ('', NS(one=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
340 ('-1 a', NS(one='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
341 ('-1a', NS(one='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
342 ('-1-2', NS(one='-2')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
343 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
344 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
345 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
346 class TestOptionalsDoubleDash(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
347 """Test an Optional with a double-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
348 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
349 argument_signatures = [Sig('--foo')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
350 failures = ['--foo', '-f', '-f a', 'a', '--foo -x', '--foo --bar'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
351 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
352 ('', NS(foo=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
353 ('--foo a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
354 ('--foo=a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
355 ('--foo -2.5', NS(foo='-2.5')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
356 ('--foo=-2.5', NS(foo='-2.5')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
357 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
358 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
359 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
360 class TestOptionalsDoubleDashPartialMatch(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
361 """Tests partial matching with a double-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
362 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
363 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
364 Sig('--badger', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
365 Sig('--bat'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
366 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
367 failures = ['--bar', '--b', '--ba', '--b=2', '--ba=4', '--badge 5'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
368 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
369 ('', NS(badger=False, bat=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
370 ('--bat X', NS(badger=False, bat='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
371 ('--bad', NS(badger=True, bat=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
372 ('--badg', NS(badger=True, bat=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
373 ('--badge', NS(badger=True, bat=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
374 ('--badger', NS(badger=True, bat=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
375 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
376 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
377 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
378 class TestOptionalsDoubleDashPrefixMatch(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
379 """Tests when one double-dash option string is a prefix of another""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
380 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
381 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
382 Sig('--badger', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
383 Sig('--ba'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
384 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
385 failures = ['--bar', '--b', '--ba', '--b=2', '--badge 5'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
386 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
387 ('', NS(badger=False, ba=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
388 ('--ba X', NS(badger=False, ba='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
389 ('--ba=X', NS(badger=False, ba='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
390 ('--bad', NS(badger=True, ba=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
391 ('--badg', NS(badger=True, ba=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
392 ('--badge', NS(badger=True, ba=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
393 ('--badger', NS(badger=True, ba=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
394 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
395 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
396 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
397 class TestOptionalsSingleDoubleDash(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
398 """Test an Optional with single- and double-dash option strings""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
399 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
400 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
401 Sig('-f', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
402 Sig('--bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
403 Sig('-baz', action='store_const', const=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
404 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
405 failures = ['--bar', '-fbar', '-fbaz', '-bazf', '-b B', 'B'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
406 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
407 ('', NS(f=False, bar=None, baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
408 ('-f', NS(f=True, bar=None, baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
409 ('--ba B', NS(f=False, bar='B', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
410 ('-f --bar B', NS(f=True, bar='B', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
411 ('-f -b', NS(f=True, bar=None, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
412 ('-ba -f', NS(f=True, bar=None, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
413 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
414 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
415 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
416 class TestOptionalsAlternatePrefixChars(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
417 """Test an Optional with a double-dash option string""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
418 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
419 parser_signature = Sig(prefix_chars='+:/', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
420 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
421 Sig('+f', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
422 Sig('::bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
423 Sig('/baz', action='store_const', const=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
424 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
425 failures = ['--bar', '-fbar', '-b B', 'B', '-f', '--bar B', '-baz'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
426 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
427 ('', NS(f=False, bar=None, baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
428 ('+f', NS(f=True, bar=None, baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
429 ('::ba B', NS(f=False, bar='B', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
430 ('+f ::bar B', NS(f=True, bar='B', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
431 ('+f /b', NS(f=True, bar=None, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
432 ('/ba +f', NS(f=True, bar=None, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
433 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
434 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
435 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
436 class TestOptionalsShortLong(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
437 """Test a combination of single- and double-dash option strings""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
438 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
439 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
440 Sig('-v', '--verbose', '-n', '--noisy', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
441 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
442 failures = ['--x --verbose', '-N', 'a', '-v x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
443 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
444 ('', NS(verbose=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
445 ('-v', NS(verbose=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
446 ('--verbose', NS(verbose=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
447 ('-n', NS(verbose=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
448 ('--noisy', NS(verbose=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
449 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
450 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
451 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
452 class TestOptionalsDest(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
453 """Tests various means of setting destination""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
454 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
455 argument_signatures = [Sig('--foo-bar'), Sig('--baz', dest='zabbaz')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
456 failures = ['a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
457 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
458 ('--foo-bar f', NS(foo_bar='f', zabbaz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
459 ('--baz g', NS(foo_bar=None, zabbaz='g')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
460 ('--foo-bar h --baz i', NS(foo_bar='h', zabbaz='i')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
461 ('--baz j --foo-bar k', NS(foo_bar='k', zabbaz='j')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
462 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
463 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
464 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
465 class TestOptionalsDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
466 """Tests specifying a default for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
467 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
468 argument_signatures = [Sig('-x'), Sig('-y', default=42)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
469 failures = ['a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
470 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
471 ('', NS(x=None, y=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
472 ('-xx', NS(x='x', y=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
473 ('-yy', NS(x=None, y='y')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
474 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
475 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
476 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
477 class TestOptionalsNargsDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
478 """Tests not specifying the number of args for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
479 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
480 argument_signatures = [Sig('-x')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
481 failures = ['a', '-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
482 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
483 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
484 ('-x a', NS(x='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
485 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
486 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
487 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
488 class TestOptionalsNargs1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
489 """Tests specifying the 1 arg for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
490 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
491 argument_signatures = [Sig('-x', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
492 failures = ['a', '-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
493 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
494 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
495 ('-x a', NS(x=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
496 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
497 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
498 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
499 class TestOptionalsNargs3(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
500 """Tests specifying the 3 args for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
501 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
502 argument_signatures = [Sig('-x', nargs=3)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
503 failures = ['a', '-x', '-x a', '-x a b', 'a -x', 'a -x b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
504 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
505 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
506 ('-x a b c', NS(x=['a', 'b', 'c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
507 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
508 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
509 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
510 class TestOptionalsNargsOptional(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
511 """Tests specifying an Optional arg for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
512 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
513 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
514 Sig('-w', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
515 Sig('-x', nargs='?', const=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
516 Sig('-y', nargs='?', default='spam'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
517 Sig('-z', nargs='?', type=int, const='42', default='84'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
518 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
519 failures = ['2'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
520 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
521 ('', NS(w=None, x=None, y='spam', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
522 ('-w', NS(w=None, x=None, y='spam', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
523 ('-w 2', NS(w='2', x=None, y='spam', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
524 ('-x', NS(w=None, x=42, y='spam', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
525 ('-x 2', NS(w=None, x='2', y='spam', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
526 ('-y', NS(w=None, x=None, y=None, z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
527 ('-y 2', NS(w=None, x=None, y='2', z=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
528 ('-z', NS(w=None, x=None, y='spam', z=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
529 ('-z 2', NS(w=None, x=None, y='spam', z=2)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
530 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
531 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
532 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
533 class TestOptionalsNargsZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
534 """Tests specifying an args for an Optional that accepts zero or more""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
535 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
536 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
537 Sig('-x', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
538 Sig('-y', nargs='*', default='spam'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
539 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
540 failures = ['a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
541 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
542 ('', NS(x=None, y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
543 ('-x', NS(x=[], y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
544 ('-x a', NS(x=['a'], y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
545 ('-x a b', NS(x=['a', 'b'], y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
546 ('-y', NS(x=None, y=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
547 ('-y a', NS(x=None, y=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
548 ('-y a b', NS(x=None, y=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
549 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
550 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
551 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
552 class TestOptionalsNargsOneOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
553 """Tests specifying an args for an Optional that accepts one or more""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
554 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
555 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
556 Sig('-x', nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
557 Sig('-y', nargs='+', default='spam'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
558 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
559 failures = ['a', '-x', '-y', 'a -x', 'a -y b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
560 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
561 ('', NS(x=None, y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
562 ('-x a', NS(x=['a'], y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
563 ('-x a b', NS(x=['a', 'b'], y='spam')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
564 ('-y a', NS(x=None, y=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
565 ('-y a b', NS(x=None, y=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
566 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
567 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
568 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
569 class TestOptionalsChoices(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
570 """Tests specifying the choices for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
571 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
572 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
573 Sig('-f', choices='abc'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
574 Sig('-g', type=int, choices=range(5))] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
575 failures = ['a', '-f d', '-fad', '-ga', '-g 6'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
576 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
577 ('', NS(f=None, g=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
578 ('-f a', NS(f='a', g=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
579 ('-f c', NS(f='c', g=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
580 ('-g 0', NS(f=None, g=0)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
581 ('-g 03', NS(f=None, g=3)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
582 ('-fb -g4', NS(f='b', g=4)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
583 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
584 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
585 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
586 class TestOptionalsRequired(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
587 """Tests the an optional action that is required""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
588 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
589 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
590 Sig('-x', type=int, required=True), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
591 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
592 failures = ['a', ''] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
593 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
594 ('-x 1', NS(x=1)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
595 ('-x42', NS(x=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
596 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
597 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
598 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
599 class TestOptionalsActionStore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
600 """Tests the store action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
601 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
602 argument_signatures = [Sig('-x', action='store')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
603 failures = ['a', 'a -x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
604 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
605 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
606 ('-xfoo', NS(x='foo')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
607 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
608 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
609 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
610 class TestOptionalsActionStoreConst(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
611 """Tests the store_const action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
612 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
613 argument_signatures = [Sig('-y', action='store_const', const=object)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
614 failures = ['a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
615 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
616 ('', NS(y=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
617 ('-y', NS(y=object)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
618 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
619 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
620 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
621 class TestOptionalsActionStoreFalse(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
622 """Tests the store_false action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
623 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
624 argument_signatures = [Sig('-z', action='store_false')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
625 failures = ['a', '-za', '-z a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
626 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
627 ('', NS(z=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
628 ('-z', NS(z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
629 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
630 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
631 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
632 class TestOptionalsActionStoreTrue(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
633 """Tests the store_true action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
634 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
635 argument_signatures = [Sig('--apple', action='store_true')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
636 failures = ['a', '--apple=b', '--apple b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
637 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
638 ('', NS(apple=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
639 ('--apple', NS(apple=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
640 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
641 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
642 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
643 class TestOptionalsActionAppend(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
644 """Tests the append action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
645 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
646 argument_signatures = [Sig('--baz', action='append')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
647 failures = ['a', '--baz', 'a --baz', '--baz a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
648 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
649 ('', NS(baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
650 ('--baz a', NS(baz=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
651 ('--baz a --baz b', NS(baz=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
652 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
653 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
654 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
655 class TestOptionalsActionAppendWithDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
656 """Tests the append action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
657 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
658 argument_signatures = [Sig('--baz', action='append', default=['X'])] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
659 failures = ['a', '--baz', 'a --baz', '--baz a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
660 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
661 ('', NS(baz=['X'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
662 ('--baz a', NS(baz=['X', 'a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
663 ('--baz a --baz b', NS(baz=['X', 'a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
664 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
665 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
666 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
667 class TestOptionalsActionAppendConst(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
668 """Tests the append_const action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
669 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
670 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
671 Sig('-b', action='append_const', const=Exception), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
672 Sig('-c', action='append', dest='b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
673 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
674 failures = ['a', '-c', 'a -c', '-bx', '-b x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
675 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
676 ('', NS(b=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
677 ('-b', NS(b=[Exception])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
678 ('-b -cx -b -cyz', NS(b=[Exception, 'x', Exception, 'yz'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
679 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
680 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
681 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
682 class TestOptionalsActionAppendConstWithDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
683 """Tests the append_const action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
684 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
685 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
686 Sig('-b', action='append_const', const=Exception, default=['X']), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
687 Sig('-c', action='append', dest='b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
688 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
689 failures = ['a', '-c', 'a -c', '-bx', '-b x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
690 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
691 ('', NS(b=['X'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
692 ('-b', NS(b=['X', Exception])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
693 ('-b -cx -b -cyz', NS(b=['X', Exception, 'x', Exception, 'yz'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
694 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
695 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
696 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
697 class TestOptionalsActionCount(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
698 """Tests the count action for an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
699 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
700 argument_signatures = [Sig('-x', action='count')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
701 failures = ['a', '-x a', '-x b', '-x a -x b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
702 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
703 ('', NS(x=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
704 ('-x', NS(x=1)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
705 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
706 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
707 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
708 # ================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
709 # Positional tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
710 # ================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
711 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
712 class TestPositionalsNargsNone(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
713 """Test a Positional that doesn't specify nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
714 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
715 argument_signatures = [Sig('foo')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
716 failures = ['', '-x', 'a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
717 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
718 ('a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
719 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
720 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
721 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
722 class TestPositionalsNargs1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
723 """Test a Positional that specifies an nargs of 1""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
724 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
725 argument_signatures = [Sig('foo', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
726 failures = ['', '-x', 'a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
727 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
728 ('a', NS(foo=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
729 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
730 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
731 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
732 class TestPositionalsNargs2(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
733 """Test a Positional that specifies an nargs of 2""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
734 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
735 argument_signatures = [Sig('foo', nargs=2)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
736 failures = ['', 'a', '-x', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
737 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
738 ('a b', NS(foo=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
739 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
740 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
741 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
742 class TestPositionalsNargsZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
743 """Test a Positional that specifies unlimited nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
744 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
745 argument_signatures = [Sig('foo', nargs='*')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
746 failures = ['-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
747 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
748 ('', NS(foo=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
749 ('a', NS(foo=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
750 ('a b', NS(foo=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
751 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
752 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
753 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
754 class TestPositionalsNargsZeroOrMoreDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
755 """Test a Positional that specifies unlimited nargs and a default""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
756 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
757 argument_signatures = [Sig('foo', nargs='*', default='bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
758 failures = ['-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
759 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
760 ('', NS(foo='bar')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
761 ('a', NS(foo=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
762 ('a b', NS(foo=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
763 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
764 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
765 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
766 class TestPositionalsNargsOneOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
767 """Test a Positional that specifies one or more nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
768 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
769 argument_signatures = [Sig('foo', nargs='+')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
770 failures = ['', '-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
771 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
772 ('a', NS(foo=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
773 ('a b', NS(foo=['a', 'b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
774 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
775 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
776 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
777 class TestPositionalsNargsOptional(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
778 """Tests an Optional Positional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
779 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
780 argument_signatures = [Sig('foo', nargs='?')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
781 failures = ['-x', 'a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
782 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
783 ('', NS(foo=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
784 ('a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
785 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
786 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
787 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
788 class TestPositionalsNargsOptionalDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
789 """Tests an Optional Positional with a default value""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
790 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
791 argument_signatures = [Sig('foo', nargs='?', default=42)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
792 failures = ['-x', 'a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
793 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
794 ('', NS(foo=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
795 ('a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
796 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
797 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
798 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
799 class TestPositionalsNargsOptionalConvertedDefault(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
800 """Tests an Optional Positional with a default value |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
801 that needs to be converted to the appropriate type. |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
802 """ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
803 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
804 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
805 Sig('foo', nargs='?', type=int, default='42'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
806 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
807 failures = ['-x', 'a b', '1 2'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
808 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
809 ('', NS(foo=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
810 ('1', NS(foo=1)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
811 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
812 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
813 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
814 class TestPositionalsNargsNoneNone(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
815 """Test two Positionals that don't specify nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
816 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
817 argument_signatures = [Sig('foo'), Sig('bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
818 failures = ['', '-x', 'a', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
819 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
820 ('a b', NS(foo='a', bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
821 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
822 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
823 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
824 class TestPositionalsNargsNone1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
825 """Test a Positional with no nargs followed by one with 1""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
826 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
827 argument_signatures = [Sig('foo'), Sig('bar', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
828 failures = ['', '--foo', 'a', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
829 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
830 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
831 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
832 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
833 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
834 class TestPositionalsNargs2None(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
835 """Test a Positional with 2 nargs followed by one with none""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
836 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
837 argument_signatures = [Sig('foo', nargs=2), Sig('bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
838 failures = ['', '--foo', 'a', 'a b', 'a b c d'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
839 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
840 ('a b c', NS(foo=['a', 'b'], bar='c')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
841 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
842 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
843 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
844 class TestPositionalsNargsNoneZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
845 """Test a Positional with no nargs followed by one with unlimited""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
846 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
847 argument_signatures = [Sig('foo'), Sig('bar', nargs='*')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
848 failures = ['', '--foo'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
849 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
850 ('a', NS(foo='a', bar=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
851 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
852 ('a b c', NS(foo='a', bar=['b', 'c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
853 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
854 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
855 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
856 class TestPositionalsNargsNoneOneOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
857 """Test a Positional with no nargs followed by one with one or more""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
858 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
859 argument_signatures = [Sig('foo'), Sig('bar', nargs='+')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
860 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
861 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
862 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
863 ('a b c', NS(foo='a', bar=['b', 'c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
864 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
865 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
866 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
867 class TestPositionalsNargsNoneOptional(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
868 """Test a Positional with no nargs followed by one with an Optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
869 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
870 argument_signatures = [Sig('foo'), Sig('bar', nargs='?')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
871 failures = ['', '--foo', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
872 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
873 ('a', NS(foo='a', bar=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
874 ('a b', NS(foo='a', bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
875 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
876 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
877 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
878 class TestPositionalsNargsZeroOrMoreNone(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
879 """Test a Positional with unlimited nargs followed by one with none""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
880 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
881 argument_signatures = [Sig('foo', nargs='*'), Sig('bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
882 failures = ['', '--foo'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
883 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
884 ('a', NS(foo=[], bar='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
885 ('a b', NS(foo=['a'], bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
886 ('a b c', NS(foo=['a', 'b'], bar='c')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
887 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
888 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
889 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
890 class TestPositionalsNargsOneOrMoreNone(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
891 """Test a Positional with one or more nargs followed by one with none""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
892 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
893 argument_signatures = [Sig('foo', nargs='+'), Sig('bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
894 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
895 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
896 ('a b', NS(foo=['a'], bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
897 ('a b c', NS(foo=['a', 'b'], bar='c')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
898 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
899 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
900 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
901 class TestPositionalsNargsOptionalNone(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
902 """Test a Positional with an Optional nargs followed by one with none""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
903 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
904 argument_signatures = [Sig('foo', nargs='?', default=42), Sig('bar')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
905 failures = ['', '--foo', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
906 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
907 ('a', NS(foo=42, bar='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
908 ('a b', NS(foo='a', bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
909 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
910 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
911 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
912 class TestPositionalsNargs2ZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
913 """Test a Positional with 2 nargs followed by one with unlimited""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
914 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
915 argument_signatures = [Sig('foo', nargs=2), Sig('bar', nargs='*')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
916 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
917 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
918 ('a b', NS(foo=['a', 'b'], bar=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
919 ('a b c', NS(foo=['a', 'b'], bar=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
920 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
921 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
922 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
923 class TestPositionalsNargs2OneOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
924 """Test a Positional with 2 nargs followed by one with one or more""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
925 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
926 argument_signatures = [Sig('foo', nargs=2), Sig('bar', nargs='+')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
927 failures = ['', '--foo', 'a', 'a b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
928 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
929 ('a b c', NS(foo=['a', 'b'], bar=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
930 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
931 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
932 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
933 class TestPositionalsNargs2Optional(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
934 """Test a Positional with 2 nargs followed by one optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
935 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
936 argument_signatures = [Sig('foo', nargs=2), Sig('bar', nargs='?')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
937 failures = ['', '--foo', 'a', 'a b c d'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
938 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
939 ('a b', NS(foo=['a', 'b'], bar=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
940 ('a b c', NS(foo=['a', 'b'], bar='c')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
941 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
942 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
943 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
944 class TestPositionalsNargsZeroOrMore1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
945 """Test a Positional with unlimited nargs followed by one with 1""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
946 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
947 argument_signatures = [Sig('foo', nargs='*'), Sig('bar', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
948 failures = ['', '--foo', ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
949 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
950 ('a', NS(foo=[], bar=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
951 ('a b', NS(foo=['a'], bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
952 ('a b c', NS(foo=['a', 'b'], bar=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
953 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
954 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
955 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
956 class TestPositionalsNargsOneOrMore1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
957 """Test a Positional with one or more nargs followed by one with 1""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
958 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
959 argument_signatures = [Sig('foo', nargs='+'), Sig('bar', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
960 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
961 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
962 ('a b', NS(foo=['a'], bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
963 ('a b c', NS(foo=['a', 'b'], bar=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
964 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
965 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
966 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
967 class TestPositionalsNargsOptional1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
968 """Test a Positional with an Optional nargs followed by one with 1""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
969 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
970 argument_signatures = [Sig('foo', nargs='?'), Sig('bar', nargs=1)] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
971 failures = ['', '--foo', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
972 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
973 ('a', NS(foo=None, bar=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
974 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
975 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
976 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
977 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
978 class TestPositionalsNargsNoneZeroOrMore1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
979 """Test three Positionals: no nargs, unlimited nargs and 1 nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
980 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
981 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
982 Sig('foo'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
983 Sig('bar', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
984 Sig('baz', nargs=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
985 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
986 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
987 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
988 ('a b', NS(foo='a', bar=[], baz=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
989 ('a b c', NS(foo='a', bar=['b'], baz=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
990 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
991 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
992 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
993 class TestPositionalsNargsNoneOneOrMore1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
994 """Test three Positionals: no nargs, one or more nargs and 1 nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
995 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
996 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
997 Sig('foo'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
998 Sig('bar', nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
999 Sig('baz', nargs=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1000 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1001 failures = ['', '--foo', 'a', 'b'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1002 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1003 ('a b c', NS(foo='a', bar=['b'], baz=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1004 ('a b c d', NS(foo='a', bar=['b', 'c'], baz=['d'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1005 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1006 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1007 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1008 class TestPositionalsNargsNoneOptional1(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1009 """Test three Positionals: no nargs, optional narg and 1 nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1010 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1011 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1012 Sig('foo'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1013 Sig('bar', nargs='?', default=0.625), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1014 Sig('baz', nargs=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1015 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1016 failures = ['', '--foo', 'a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1017 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1018 ('a b', NS(foo='a', bar=0.625, baz=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1019 ('a b c', NS(foo='a', bar='b', baz=['c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1020 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1021 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1022 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1023 class TestPositionalsNargsOptionalOptional(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1024 """Test two optional nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1025 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1026 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1027 Sig('foo', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1028 Sig('bar', nargs='?', default=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1029 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1030 failures = ['--foo', 'a b c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1031 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1032 ('', NS(foo=None, bar=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1033 ('a', NS(foo='a', bar=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1034 ('a b', NS(foo='a', bar='b')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1035 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1036 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1037 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1038 class TestPositionalsNargsOptionalZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1039 """Test an Optional narg followed by unlimited nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1040 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1041 argument_signatures = [Sig('foo', nargs='?'), Sig('bar', nargs='*')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1042 failures = ['--foo'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1043 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1044 ('', NS(foo=None, bar=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1045 ('a', NS(foo='a', bar=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1046 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1047 ('a b c', NS(foo='a', bar=['b', 'c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1048 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1049 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1050 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1051 class TestPositionalsNargsOptionalOneOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1052 """Test an Optional narg followed by one or more nargs""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1053 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1054 argument_signatures = [Sig('foo', nargs='?'), Sig('bar', nargs='+')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1055 failures = ['', '--foo'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1056 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1057 ('a', NS(foo=None, bar=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1058 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1059 ('a b c', NS(foo='a', bar=['b', 'c'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1060 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1061 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1062 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1063 class TestPositionalsChoicesString(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1064 """Test a set of single-character choices""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1065 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1066 argument_signatures = [Sig('spam', choices=set('abcdefg'))] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1067 failures = ['', '--foo', 'h', '42', 'ef'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1068 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1069 ('a', NS(spam='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1070 ('g', NS(spam='g')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1071 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1072 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1073 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1074 class TestPositionalsChoicesInt(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1075 """Test a set of integer choices""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1076 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1077 argument_signatures = [Sig('spam', type=int, choices=range(20))] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1078 failures = ['', '--foo', 'h', '42', 'ef'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1079 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1080 ('4', NS(spam=4)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1081 ('15', NS(spam=15)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1082 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1083 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1084 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1085 class TestPositionalsActionAppend(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1086 """Test the 'append' action""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1087 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1088 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1089 Sig('spam', action='append'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1090 Sig('spam', action='append', nargs=2), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1091 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1092 failures = ['', '--foo', 'a', 'a b', 'a b c d'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1093 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1094 ('a b c', NS(spam=['a', ['b', 'c']])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1095 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1096 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1097 # ======================================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1098 # Combined optionals and positionals tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1099 # ======================================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1100 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1101 class TestOptionalsNumericAndPositionals(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1102 """Tests negative number args when numeric options are present""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1103 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1104 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1105 Sig('x', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1106 Sig('-4', dest='y', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1107 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1108 failures = ['-2', '-315'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1109 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1110 ('', NS(x=None, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1111 ('a', NS(x='a', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1112 ('-4', NS(x=None, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1113 ('-4 a', NS(x='a', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1114 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1115 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1116 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1117 class TestOptionalsAlmostNumericAndPositionals(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1118 """Tests negative number args when almost numeric options are present""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1119 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1120 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1121 Sig('x', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1122 Sig('-k4', dest='y', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1123 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1124 failures = ['-k3'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1125 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1126 ('', NS(x=None, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1127 ('-2', NS(x='-2', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1128 ('a', NS(x='a', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1129 ('-k4', NS(x=None, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1130 ('-k4 a', NS(x='a', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1131 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1132 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1133 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1134 class TestEmptyAndSpaceContainingArguments(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1135 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1136 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1137 Sig('x', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1138 Sig('-y', '--yyy', dest='y'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1139 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1140 failures = ['-y'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1141 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1142 ([''], NS(x='', y=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1143 (['a badger'], NS(x='a badger', y=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1144 (['-a badger'], NS(x='-a badger', y=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1145 (['-y', ''], NS(x=None, y='')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1146 (['-y', 'a badger'], NS(x=None, y='a badger')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1147 (['-y', '-a badger'], NS(x=None, y='-a badger')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1148 (['--yyy=a badger'], NS(x=None, y='a badger')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1149 (['--yyy=-a badger'], NS(x=None, y='-a badger')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1150 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1151 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1152 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1153 class TestPrefixCharacterOnlyArguments(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1154 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1155 parser_signature = Sig(prefix_chars='-+') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1156 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1157 Sig('-', dest='x', nargs='?', const='badger'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1158 Sig('+', dest='y', type=int, default=42), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1159 Sig('-+-', dest='z', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1160 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1161 failures = ['-y', '+ -'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1162 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1163 ('', NS(x=None, y=42, z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1164 ('-', NS(x='badger', y=42, z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1165 ('- X', NS(x='X', y=42, z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1166 ('+ -3', NS(x=None, y=-3, z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1167 ('-+-', NS(x=None, y=42, z=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1168 ('- ===', NS(x='===', y=42, z=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1169 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1170 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1171 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1172 class TestNargsZeroOrMore(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1173 """Tests specifying an args for an Optional that accepts zero or more""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1174 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1175 argument_signatures = [Sig('-x', nargs='*'), Sig('y', nargs='*')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1176 failures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1177 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1178 ('', NS(x=None, y=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1179 ('-x', NS(x=[], y=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1180 ('-x a', NS(x=['a'], y=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1181 ('-x a -- b', NS(x=['a'], y=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1182 ('a', NS(x=None, y=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1183 ('a -x', NS(x=[], y=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1184 ('a -x b', NS(x=['b'], y=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1185 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1186 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1187 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1188 class TestNargsRemainder(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1189 """Tests specifying a positional with nargs=REMAINDER""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1190 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1191 argument_signatures = [Sig('x'), Sig('y', nargs='...'), Sig('-z')] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1192 failures = ['', '-z', '-z Z'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1193 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1194 ('X', NS(x='X', y=[], z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1195 ('-z Z X', NS(x='X', y=[], z='Z')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1196 ('X A B -z Z', NS(x='X', y=['A', 'B', '-z', 'Z'], z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1197 ('X Y --foo', NS(x='X', y=['Y', '--foo'], z=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1198 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1199 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1200 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1201 class TestOptionLike(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1202 """Tests options that may or may not be arguments""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1203 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1204 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1205 Sig('-x', type=float), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1206 Sig('-3', type=float, dest='y'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1207 Sig('z', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1208 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1209 failures = ['-x', '-y2.5', '-xa', '-x -a', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1210 '-x -3', '-x -3.5', '-3 -3.5', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1211 '-x -2.5', '-x -2.5 a', '-3 -.5', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1212 'a x -1', '-x -1 a', '-3 -1 a'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1213 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1214 ('', NS(x=None, y=None, z=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1215 ('-x 2.5', NS(x=2.5, y=None, z=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1216 ('-x 2.5 a', NS(x=2.5, y=None, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1217 ('-3.5', NS(x=None, y=0.5, z=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1218 ('-3-.5', NS(x=None, y=-0.5, z=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1219 ('-3 .5', NS(x=None, y=0.5, z=[])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1220 ('a -3.5', NS(x=None, y=0.5, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1221 ('a', NS(x=None, y=None, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1222 ('a -x 1', NS(x=1.0, y=None, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1223 ('-x 1 a', NS(x=1.0, y=None, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1224 ('-3 1 a', NS(x=None, y=1.0, z=['a'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1225 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1226 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1227 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1228 class TestDefaultSuppress(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1229 """Test actions with suppressed defaults""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1230 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1231 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1232 Sig('foo', nargs='?', default=argparse.SUPPRESS), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1233 Sig('bar', nargs='*', default=argparse.SUPPRESS), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1234 Sig('--baz', action='store_true', default=argparse.SUPPRESS), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1235 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1236 failures = ['-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1237 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1238 ('', NS()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1239 ('a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1240 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1241 ('--baz', NS(baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1242 ('a --baz', NS(foo='a', baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1243 ('--baz a b', NS(foo='a', bar=['b'], baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1244 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1245 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1246 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1247 class TestParserDefaultSuppress(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1248 """Test actions with a parser-level default of SUPPRESS""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1249 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1250 parser_signature = Sig(argument_default=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1251 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1252 Sig('foo', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1253 Sig('bar', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1254 Sig('--baz', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1255 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1256 failures = ['-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1257 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1258 ('', NS()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1259 ('a', NS(foo='a')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1260 ('a b', NS(foo='a', bar=['b'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1261 ('--baz', NS(baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1262 ('a --baz', NS(foo='a', baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1263 ('--baz a b', NS(foo='a', bar=['b'], baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1264 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1265 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1266 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1267 class TestParserDefault42(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1268 """Test actions with a parser-level default of 42""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1269 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1270 parser_signature = Sig(argument_default=42, version='1.0') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1271 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1272 Sig('foo', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1273 Sig('bar', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1274 Sig('--baz', action='store_true'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1275 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1276 failures = ['-x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1277 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1278 ('', NS(foo=42, bar=42, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1279 ('a', NS(foo='a', bar=42, baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1280 ('a b', NS(foo='a', bar=['b'], baz=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1281 ('--baz', NS(foo=42, bar=42, baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1282 ('a --baz', NS(foo='a', bar=42, baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1283 ('--baz a b', NS(foo='a', bar=['b'], baz=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1284 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1285 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1286 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1287 class TestArgumentsFromFile(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1288 """Test reading arguments from a file""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1289 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1290 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1291 super(TestArgumentsFromFile, self).setUp() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1292 file_texts = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1293 ('hello', 'hello world!\n'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1294 ('recursive', '-a\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1295 'A\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1296 '@hello'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1297 ('invalid', '@no-such-path\n'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1298 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1299 for path, text in file_texts: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1300 file = open(path, 'w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1301 file.write(text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1302 file.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1303 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1304 parser_signature = Sig(fromfile_prefix_chars='@') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1305 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1306 Sig('-a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1307 Sig('x'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1308 Sig('y', nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1309 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1310 failures = ['', '-b', 'X', '@invalid', '@missing'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1311 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1312 ('X Y', NS(a=None, x='X', y=['Y'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1313 ('X -a A Y Z', NS(a='A', x='X', y=['Y', 'Z'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1314 ('@hello X', NS(a=None, x='hello world!', y=['X'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1315 ('X @hello', NS(a=None, x='X', y=['hello world!'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1316 ('-a B @recursive Y Z', NS(a='A', x='hello world!', y=['Y', 'Z'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1317 ('X @recursive Z -a B', NS(a='B', x='X', y=['hello world!', 'Z'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1318 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1319 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1320 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1321 class TestArgumentsFromFileConverter(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1322 """Test reading arguments from a file""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1323 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1324 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1325 super(TestArgumentsFromFileConverter, self).setUp() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1326 file_texts = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1327 ('hello', 'hello world!\n'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1328 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1329 for path, text in file_texts: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1330 file = open(path, 'w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1331 file.write(text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1332 file.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1333 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1334 class FromFileConverterArgumentParser(ErrorRaisingArgumentParser): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1335 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1336 def convert_arg_line_to_args(self, arg_line): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1337 for arg in arg_line.split(): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1338 if not arg.strip(): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1339 continue |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1340 yield arg |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1341 parser_class = FromFileConverterArgumentParser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1342 parser_signature = Sig(fromfile_prefix_chars='@') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1343 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1344 Sig('y', nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1345 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1346 failures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1347 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1348 ('@hello X', NS(y=['hello', 'world!', 'X'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1349 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1350 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1351 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1352 # ===================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1353 # Type conversion tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1354 # ===================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1355 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1356 class TestFileTypeRepr(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1357 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1358 def test_r(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1359 type = argparse.FileType('r') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1360 self.assertEqual("FileType('r')", repr(type)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1361 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1362 def test_wb_1(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1363 type = argparse.FileType('wb', 1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1364 self.assertEqual("FileType('wb', 1)", repr(type)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1365 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1366 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1367 class RFile(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1368 seen = {} |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1369 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1370 def __init__(self, name): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1371 self.name = name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1372 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1373 def __eq__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1374 if other in self.seen: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1375 text = self.seen[other] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1376 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1377 text = self.seen[other] = other.read() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1378 other.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1379 if not isinstance(text, str): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1380 text = text.decode('ascii') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1381 return self.name == other.name == text |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1382 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1383 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1384 class TestFileTypeR(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1385 """Test the FileType option/argument type for reading files""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1386 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1387 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1388 super(TestFileTypeR, self).setUp() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1389 for file_name in ['foo', 'bar']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1390 file = open(os.path.join(self.temp_dir, file_name), 'w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1391 file.write(file_name) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1392 file.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1393 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1394 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1395 Sig('-x', type=argparse.FileType()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1396 Sig('spam', type=argparse.FileType('r')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1397 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1398 failures = ['-x', ''] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1399 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1400 ('foo', NS(x=None, spam=RFile('foo'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1401 ('-x foo bar', NS(x=RFile('foo'), spam=RFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1402 ('bar -x foo', NS(x=RFile('foo'), spam=RFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1403 ('-x - -', NS(x=sys.stdin, spam=sys.stdin)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1404 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1405 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1406 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1407 class TestFileTypeRB(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1408 """Test the FileType option/argument type for reading files""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1409 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1410 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1411 super(TestFileTypeRB, self).setUp() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1412 for file_name in ['foo', 'bar']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1413 file = open(os.path.join(self.temp_dir, file_name), 'w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1414 file.write(file_name) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1415 file.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1416 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1417 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1418 Sig('-x', type=argparse.FileType('rb')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1419 Sig('spam', type=argparse.FileType('rb')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1420 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1421 failures = ['-x', ''] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1422 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1423 ('foo', NS(x=None, spam=RFile('foo'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1424 ('-x foo bar', NS(x=RFile('foo'), spam=RFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1425 ('bar -x foo', NS(x=RFile('foo'), spam=RFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1426 ('-x - -', NS(x=sys.stdin, spam=sys.stdin)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1427 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1428 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1429 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1430 class WFile(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1431 seen = set() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1432 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1433 def __init__(self, name): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1434 self.name = name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1435 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1436 def __eq__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1437 if other not in self.seen: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1438 text = 'Check that file is writable.' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1439 if 'b' in other.mode: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1440 text = text.encode('ascii') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1441 other.write(text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1442 other.close() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1443 self.seen.add(other) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1444 return self.name == other.name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1445 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1446 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1447 class TestFileTypeW(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1448 """Test the FileType option/argument type for writing files""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1449 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1450 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1451 Sig('-x', type=argparse.FileType('w')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1452 Sig('spam', type=argparse.FileType('w')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1453 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1454 failures = ['-x', ''] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1455 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1456 ('foo', NS(x=None, spam=WFile('foo'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1457 ('-x foo bar', NS(x=WFile('foo'), spam=WFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1458 ('bar -x foo', NS(x=WFile('foo'), spam=WFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1459 ('-x - -', NS(x=sys.stdout, spam=sys.stdout)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1460 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1461 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1462 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1463 class TestFileTypeWB(TempDirMixin, ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1464 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1465 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1466 Sig('-x', type=argparse.FileType('wb')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1467 Sig('spam', type=argparse.FileType('wb')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1468 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1469 failures = ['-x', ''] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1470 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1471 ('foo', NS(x=None, spam=WFile('foo'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1472 ('-x foo bar', NS(x=WFile('foo'), spam=WFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1473 ('bar -x foo', NS(x=WFile('foo'), spam=WFile('bar'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1474 ('-x - -', NS(x=sys.stdout, spam=sys.stdout)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1475 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1476 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1477 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1478 class TestTypeCallable(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1479 """Test some callables as option/argument types""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1480 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1481 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1482 Sig('--eggs', type=complex), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1483 Sig('spam', type=float), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1484 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1485 failures = ['a', '42j', '--eggs a', '--eggs 2i'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1486 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1487 ('--eggs=42 42', NS(eggs=42, spam=42.0)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1488 ('--eggs 2j -- -1.5', NS(eggs=2j, spam=-1.5)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1489 ('1024.675', NS(eggs=None, spam=1024.675)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1490 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1491 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1492 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1493 class TestTypeUserDefined(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1494 """Test a user-defined option/argument type""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1495 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1496 class MyType(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1497 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1498 def __init__(self, value): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1499 self.value = value |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1500 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1501 def __eq__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1502 return (type(self), self.value) == (type(other), other.value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1503 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1504 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1505 Sig('-x', type=MyType), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1506 Sig('spam', type=MyType), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1507 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1508 failures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1509 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1510 ('a -x b', NS(x=MyType('b'), spam=MyType('a'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1511 ('-xf g', NS(x=MyType('f'), spam=MyType('g'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1512 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1513 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1514 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1515 class TestTypeClassicClass(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1516 """Test a classic class type""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1517 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1518 class C: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1519 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1520 def __init__(self, value): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1521 self.value = value |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1522 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1523 def __eq__(self, other): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1524 return (type(self), self.value) == (type(other), other.value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1525 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1526 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1527 Sig('-x', type=C), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1528 Sig('spam', type=C), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1529 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1530 failures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1531 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1532 ('a -x b', NS(x=C('b'), spam=C('a'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1533 ('-xf g', NS(x=C('f'), spam=C('g'))), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1534 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1535 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1536 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1537 class TestTypeRegistration(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1538 """Test a user-defined type by registering it""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1539 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1540 def test(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1541 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1542 def get_my_type(string): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1543 return 'my_type{%s}' % string |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1544 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1545 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1546 parser.register('type', 'my_type', get_my_type) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1547 parser.add_argument('-x', type='my_type') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1548 parser.add_argument('y', type='my_type') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1549 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1550 self.assertEqual(parser.parse_args('1'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1551 NS(x=None, y='my_type{1}')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1552 self.assertEqual(parser.parse_args('-x 1 42'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1553 NS(x='my_type{1}', y='my_type{42}')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1554 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1555 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1556 # ============ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1557 # Action tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1558 # ============ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1559 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1560 class TestActionUserDefined(ParserTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1561 """Test a user-defined option/argument action""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1562 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1563 class OptionalAction(argparse.Action): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1564 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1565 def __call__(self, parser, namespace, value, option_string=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1566 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1567 # check destination and option string |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1568 assert self.dest == 'spam', 'dest: %s' % self.dest |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1569 assert option_string == '-s', 'flag: %s' % option_string |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1570 # when option is before argument, badger=2, and when |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1571 # option is after argument, badger=<whatever was set> |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1572 expected_ns = NS(spam=0.25) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1573 if value in [0.125, 0.625]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1574 expected_ns.badger = 2 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1575 elif value in [2.0]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1576 expected_ns.badger = 84 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1577 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1578 raise AssertionError('value: %s' % value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1579 assert expected_ns == namespace, ('expected %s, got %s' % |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1580 (expected_ns, namespace)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1581 except AssertionError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1582 e = sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1583 raise ArgumentParserError('opt_action failed: %s' % e) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1584 setattr(namespace, 'spam', value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1585 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1586 class PositionalAction(argparse.Action): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1587 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1588 def __call__(self, parser, namespace, value, option_string=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1589 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1590 assert option_string is None, ('option_string: %s' % |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1591 option_string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1592 # check destination |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1593 assert self.dest == 'badger', 'dest: %s' % self.dest |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1594 # when argument is before option, spam=0.25, and when |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1595 # option is after argument, spam=<whatever was set> |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1596 expected_ns = NS(badger=2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1597 if value in [42, 84]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1598 expected_ns.spam = 0.25 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1599 elif value in [1]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1600 expected_ns.spam = 0.625 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1601 elif value in [2]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1602 expected_ns.spam = 0.125 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1603 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1604 raise AssertionError('value: %s' % value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1605 assert expected_ns == namespace, ('expected %s, got %s' % |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1606 (expected_ns, namespace)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1607 except AssertionError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1608 e = sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1609 raise ArgumentParserError('arg_action failed: %s' % e) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1610 setattr(namespace, 'badger', value) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1611 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1612 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1613 Sig('-s', dest='spam', action=OptionalAction, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1614 type=float, default=0.25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1615 Sig('badger', action=PositionalAction, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1616 type=int, nargs='?', default=2), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1617 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1618 failures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1619 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1620 ('-s0.125', NS(spam=0.125, badger=2)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1621 ('42', NS(spam=0.25, badger=42)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1622 ('-s 0.625 1', NS(spam=0.625, badger=1)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1623 ('84 -s2', NS(spam=2.0, badger=84)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1624 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1625 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1626 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1627 class TestActionRegistration(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1628 """Test a user-defined action supplied by registering it""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1629 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1630 class MyAction(argparse.Action): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1631 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1632 def __call__(self, parser, namespace, values, option_string=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1633 setattr(namespace, self.dest, 'foo[%s]' % values) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1634 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1635 def test(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1636 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1637 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1638 parser.register('action', 'my_action', self.MyAction) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1639 parser.add_argument('badger', action='my_action') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1640 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1641 self.assertEqual(parser.parse_args(['1']), NS(badger='foo[1]')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1642 self.assertEqual(parser.parse_args(['42']), NS(badger='foo[42]')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1643 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1644 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1645 # ================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1646 # Subparsers tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1647 # ================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1648 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1649 class TestAddSubparsers(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1650 """Test the add_subparsers method""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1651 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1652 def assertArgumentParserError(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1653 self.assertRaises(ArgumentParserError, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1654 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1655 def _get_parser(self, subparser_help=False): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1656 # create a parser with a subparsers argument |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1657 parser = ErrorRaisingArgumentParser( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1658 prog='PROG', description='main description') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1659 parser.add_argument( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1660 '--foo', action='store_true', help='foo help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1661 parser.add_argument( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1662 'bar', type=float, help='bar help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1663 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1664 # check that only one subparsers argument can be added |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1665 subparsers = parser.add_subparsers(help='command help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1666 self.assertArgumentParserError(parser.add_subparsers) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1667 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1668 # add first sub-parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1669 parser1_kwargs = dict(description='1 description') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1670 if subparser_help: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1671 parser1_kwargs['help'] = '1 help' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1672 parser1 = subparsers.add_parser('1', **parser1_kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1673 parser1.add_argument('-w', type=int, help='w help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1674 parser1.add_argument('x', choices='abc', help='x help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1675 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1676 # add second sub-parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1677 parser2_kwargs = dict(description='2 description') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1678 if subparser_help: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1679 parser2_kwargs['help'] = '2 help' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1680 parser2 = subparsers.add_parser('2', **parser2_kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1681 parser2.add_argument('-y', choices='123', help='y help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1682 parser2.add_argument('z', type=complex, nargs='*', help='z help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1683 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1684 # return the main parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1685 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1686 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1687 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1688 self.parser = self._get_parser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1689 self.command_help_parser = self._get_parser(subparser_help=True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1690 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1691 def test_parse_args_failures(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1692 # check some failure cases: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1693 for args_str in ['', 'a', 'a a', '0.5 a', '0.5 1', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1694 '0.5 1 -y', '0.5 2 -w']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1695 args = args_str.split() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1696 self.assertArgumentParserError(self.parser.parse_args, args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1697 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1698 def test_parse_args(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1699 # check some non-failure cases: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1700 self.assertEqual( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1701 self.parser.parse_args('0.5 1 b -w 7'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1702 NS(foo=False, bar=0.5, w=7, x='b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1703 ) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1704 self.assertEqual( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1705 self.parser.parse_args('0.25 --foo 2 -y 2 3j -- -1j'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1706 NS(foo=True, bar=0.25, y='2', z=[3j, -1j]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1707 ) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1708 self.assertEqual( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1709 self.parser.parse_args('--foo 0.125 1 c'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1710 NS(foo=True, bar=0.125, w=None, x='c'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1711 ) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1712 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1713 def test_dest(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1714 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1715 parser.add_argument('--foo', action='store_true') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1716 subparsers = parser.add_subparsers(dest='bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1717 parser1 = subparsers.add_parser('1') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1718 parser1.add_argument('baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1719 self.assertEqual(NS(foo=False, bar='1', baz='2'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1720 parser.parse_args('1 2'.split())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1721 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1722 def test_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1723 self.assertEqual(self.parser.format_usage(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1724 'usage: PROG [-h] [--foo] bar {1,2} ...\n') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1725 self.assertEqual(self.parser.format_help(), textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1726 usage: PROG [-h] [--foo] bar {1,2} ... |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1727 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1728 main description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1729 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1730 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1731 bar bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1732 {1,2} command help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1733 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1734 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1735 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1736 --foo foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1737 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1738 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1739 def test_parser_command_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1740 self.assertEqual(self.command_help_parser.format_usage(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1741 'usage: PROG [-h] [--foo] bar {1,2} ...\n') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1742 self.assertEqual(self.command_help_parser.format_help(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1743 textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1744 usage: PROG [-h] [--foo] bar {1,2} ... |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1745 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1746 main description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1747 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1748 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1749 bar bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1750 {1,2} command help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1751 1 1 help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1752 2 2 help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1753 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1754 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1755 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1756 --foo foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1757 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1758 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1759 def test_subparser_title_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1760 parser = ErrorRaisingArgumentParser(prog='PROG', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1761 description='main description') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1762 parser.add_argument('--foo', action='store_true', help='foo help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1763 parser.add_argument('bar', help='bar help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1764 subparsers = parser.add_subparsers(title='subcommands', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1765 description='command help', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1766 help='additional text') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1767 parser1 = subparsers.add_parser('1') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1768 parser2 = subparsers.add_parser('2') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1769 self.assertEqual(parser.format_usage(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1770 'usage: PROG [-h] [--foo] bar {1,2} ...\n') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1771 self.assertEqual(parser.format_help(), textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1772 usage: PROG [-h] [--foo] bar {1,2} ... |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1773 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1774 main description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1775 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1776 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1777 bar bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1778 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1779 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1780 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1781 --foo foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1782 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1783 subcommands: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1784 command help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1785 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1786 {1,2} additional text |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1787 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1788 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1789 def _test_subparser_help(self, args_str, expected_help): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1790 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1791 self.parser.parse_args(args_str.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1792 except ArgumentParserError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1793 err = sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1794 if err.stdout != expected_help: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1795 print(repr(expected_help)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1796 print(repr(err.stdout)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1797 self.assertEqual(err.stdout, expected_help) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1798 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1799 def test_subparser1_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1800 self._test_subparser_help('5.0 1 -h', textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1801 usage: PROG bar 1 [-h] [-w W] {a,b,c} |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1802 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1803 1 description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1804 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1805 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1806 {a,b,c} x help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1807 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1808 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1809 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1810 -w W w help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1811 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1812 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1813 def test_subparser2_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1814 self._test_subparser_help('5.0 2 -h', textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1815 usage: PROG bar 2 [-h] [-y {1,2,3}] [z [z ...]] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1816 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1817 2 description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1818 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1819 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1820 z z help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1821 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1822 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1823 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1824 -y {1,2,3} y help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1825 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1826 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1827 # ============ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1828 # Groups tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1829 # ============ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1830 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1831 class TestPositionalsGroups(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1832 """Tests that order of group positionals matches construction order""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1833 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1834 def test_nongroup_first(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1835 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1836 parser.add_argument('foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1837 group = parser.add_argument_group('g') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1838 group.add_argument('bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1839 parser.add_argument('baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1840 expected = NS(foo='1', bar='2', baz='3') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1841 result = parser.parse_args('1 2 3'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1842 self.assertEqual(expected, result) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1843 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1844 def test_group_first(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1845 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1846 group = parser.add_argument_group('xxx') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1847 group.add_argument('foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1848 parser.add_argument('bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1849 parser.add_argument('baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1850 expected = NS(foo='1', bar='2', baz='3') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1851 result = parser.parse_args('1 2 3'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1852 self.assertEqual(expected, result) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1853 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1854 def test_interleaved_groups(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1855 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1856 group = parser.add_argument_group('xxx') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1857 parser.add_argument('foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1858 group.add_argument('bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1859 parser.add_argument('baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1860 group = parser.add_argument_group('yyy') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1861 group.add_argument('frell') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1862 expected = NS(foo='1', bar='2', baz='3', frell='4') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1863 result = parser.parse_args('1 2 3 4'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1864 self.assertEqual(expected, result) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1865 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1866 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1867 # Parent parser tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1868 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1869 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1870 class TestParentParsers(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1871 """Tests that parsers can be created with parent parsers""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1872 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1873 def assertArgumentParserError(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1874 self.assertRaises(ArgumentParserError, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1875 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1876 def setUp(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1877 self.wxyz_parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1878 self.wxyz_parent.add_argument('--w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1879 x_group = self.wxyz_parent.add_argument_group('x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1880 x_group.add_argument('-y') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1881 self.wxyz_parent.add_argument('z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1882 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1883 self.abcd_parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1884 self.abcd_parent.add_argument('a') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1885 self.abcd_parent.add_argument('-b') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1886 c_group = self.abcd_parent.add_argument_group('c') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1887 c_group.add_argument('--d') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1888 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1889 self.w_parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1890 self.w_parent.add_argument('--w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1891 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1892 self.z_parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1893 self.z_parent.add_argument('z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1894 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1895 # parents with mutually exclusive groups |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1896 self.ab_mutex_parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1897 group = self.ab_mutex_parent.add_mutually_exclusive_group() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1898 group.add_argument('-a', action='store_true') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1899 group.add_argument('-b', action='store_true') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1900 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1901 self.main_program = os.path.basename(sys.argv[0]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1902 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1903 def test_single_parent(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1904 parser = ErrorRaisingArgumentParser(parents=[self.wxyz_parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1905 self.assertEqual(parser.parse_args('-y 1 2 --w 3'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1906 NS(w='3', y='1', z='2')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1907 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1908 def test_single_parent_mutex(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1909 self._test_mutex_ab(self.ab_mutex_parent.parse_args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1910 parser = ErrorRaisingArgumentParser(parents=[self.ab_mutex_parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1911 self._test_mutex_ab(parser.parse_args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1912 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1913 def test_single_granparent_mutex(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1914 parents = [self.ab_mutex_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1915 parser = ErrorRaisingArgumentParser(add_help=False, parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1916 parser = ErrorRaisingArgumentParser(parents=[parser]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1917 self._test_mutex_ab(parser.parse_args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1918 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1919 def _test_mutex_ab(self, parse_args): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1920 self.assertEqual(parse_args([]), NS(a=False, b=False)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1921 self.assertEqual(parse_args(['-a']), NS(a=True, b=False)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1922 self.assertEqual(parse_args(['-b']), NS(a=False, b=True)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1923 self.assertArgumentParserError(parse_args, ['-a', '-b']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1924 self.assertArgumentParserError(parse_args, ['-b', '-a']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1925 self.assertArgumentParserError(parse_args, ['-c']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1926 self.assertArgumentParserError(parse_args, ['-a', '-c']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1927 self.assertArgumentParserError(parse_args, ['-b', '-c']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1928 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1929 def test_multiple_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1930 parents = [self.abcd_parent, self.wxyz_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1931 parser = ErrorRaisingArgumentParser(parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1932 self.assertEqual(parser.parse_args('--d 1 --w 2 3 4'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1933 NS(a='3', b=None, d='1', w='2', y=None, z='4')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1934 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1935 def test_multiple_parents_mutex(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1936 parents = [self.ab_mutex_parent, self.wxyz_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1937 parser = ErrorRaisingArgumentParser(parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1938 self.assertEqual(parser.parse_args('-a --w 2 3'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1939 NS(a=True, b=False, w='2', y=None, z='3')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1940 self.assertArgumentParserError( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1941 parser.parse_args, '-a --w 2 3 -b'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1942 self.assertArgumentParserError( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1943 parser.parse_args, '-a -b --w 2 3'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1944 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1945 def test_conflicting_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1946 self.assertRaises( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1947 argparse.ArgumentError, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1948 argparse.ArgumentParser, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1949 parents=[self.w_parent, self.wxyz_parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1950 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1951 def test_conflicting_parents_mutex(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1952 self.assertRaises( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1953 argparse.ArgumentError, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1954 argparse.ArgumentParser, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1955 parents=[self.abcd_parent, self.ab_mutex_parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1956 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1957 def test_same_argument_name_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1958 parents = [self.wxyz_parent, self.z_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1959 parser = ErrorRaisingArgumentParser(parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1960 self.assertEqual(parser.parse_args('1 2'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1961 NS(w=None, y=None, z='2')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1962 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1963 def test_subparser_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1964 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1965 subparsers = parser.add_subparsers() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1966 abcde_parser = subparsers.add_parser('bar', parents=[self.abcd_parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1967 abcde_parser.add_argument('e') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1968 self.assertEqual(parser.parse_args('bar -b 1 --d 2 3 4'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1969 NS(a='3', b='1', d='2', e='4')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1970 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1971 def test_subparser_parents_mutex(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1972 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1973 subparsers = parser.add_subparsers() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1974 parents = [self.ab_mutex_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1975 abc_parser = subparsers.add_parser('foo', parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1976 c_group = abc_parser.add_argument_group('c_group') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1977 c_group.add_argument('c') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1978 parents = [self.wxyz_parent, self.ab_mutex_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1979 wxyzabe_parser = subparsers.add_parser('bar', parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1980 wxyzabe_parser.add_argument('e') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1981 self.assertEqual(parser.parse_args('foo -a 4'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1982 NS(a=True, b=False, c='4')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1983 self.assertEqual(parser.parse_args('bar -b --w 2 3 4'.split()), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1984 NS(a=False, b=True, w='2', y=None, z='3', e='4')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1985 self.assertArgumentParserError( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1986 parser.parse_args, 'foo -a -b 4'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1987 self.assertArgumentParserError( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1988 parser.parse_args, 'bar -b -a 4'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1989 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1990 def test_parent_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1991 parents = [self.abcd_parent, self.wxyz_parent] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1992 parser = ErrorRaisingArgumentParser(parents=parents) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1993 parser_help = parser.format_help() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1994 self.assertEqual(parser_help, textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1995 usage: {} [-h] [-b B] [--d D] [--w W] [-y Y] a z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1996 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1997 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1998 a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
1999 z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2000 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2001 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2002 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2003 -b B |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2004 --w W |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2005 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2006 c: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2007 --d D |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2008 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2009 x: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2010 -y Y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2011 '''.format(self.main_program))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2012 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2013 def test_groups_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2014 parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2015 g = parent.add_argument_group(title='g', description='gd') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2016 g.add_argument('-w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2017 g.add_argument('-x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2018 m = parent.add_mutually_exclusive_group() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2019 m.add_argument('-y') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2020 m.add_argument('-z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2021 parser = ErrorRaisingArgumentParser(parents=[parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2022 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2023 self.assertRaises(ArgumentParserError, parser.parse_args, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2024 ['-y', 'Y', '-z', 'Z']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2025 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2026 parser_help = parser.format_help() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2027 self.assertEqual(parser_help, textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2028 usage: {} [-h] [-w W] [-x X] [-y Y | -z Z] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2029 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2030 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2031 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2032 -y Y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2033 -z Z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2034 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2035 g: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2036 gd |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2037 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2038 -w W |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2039 -x X |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2040 '''.format(self.main_program))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2041 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2042 # ============================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2043 # Mutually exclusive group tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2044 # ============================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2045 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2046 class TestMutuallyExclusiveGroupErrors(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2047 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2048 def test_invalid_add_argument_group(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2049 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2050 raises = self.assertRaises |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2051 raises(TypeError, parser.add_mutually_exclusive_group, title='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2052 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2053 def test_invalid_add_argument(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2054 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2055 group = parser.add_mutually_exclusive_group() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2056 add_argument = group.add_argument |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2057 raises = self.assertRaises |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2058 raises(ValueError, add_argument, '--foo', required=True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2059 raises(ValueError, add_argument, 'bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2060 raises(ValueError, add_argument, 'bar', nargs='+') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2061 raises(ValueError, add_argument, 'bar', nargs=1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2062 raises(ValueError, add_argument, 'bar', nargs=argparse.PARSER) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2063 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2064 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2065 class MEMixin(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2066 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2067 def test_failures_when_not_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2068 parse_args = self.get_parser(required=False).parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2069 error = ArgumentParserError |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2070 for args_string in self.failures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2071 self.assertRaises(error, parse_args, args_string.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2072 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2073 def test_failures_when_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2074 parse_args = self.get_parser(required=True).parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2075 error = ArgumentParserError |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2076 for args_string in self.failures + ['']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2077 self.assertRaises(error, parse_args, args_string.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2078 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2079 def test_successes_when_not_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2080 parse_args = self.get_parser(required=False).parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2081 successes = self.successes + self.successes_when_not_required |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2082 for args_string, expected_ns in successes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2083 actual_ns = parse_args(args_string.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2084 self.assertEqual(actual_ns, expected_ns) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2085 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2086 def test_successes_when_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2087 parse_args = self.get_parser(required=True).parse_args |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2088 for args_string, expected_ns in self.successes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2089 actual_ns = parse_args(args_string.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2090 self.assertEqual(actual_ns, expected_ns) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2091 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2092 def test_usage_when_not_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2093 format_usage = self.get_parser(required=False).format_usage |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2094 expected_usage = self.usage_when_not_required |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2095 self.assertEqual(format_usage(), textwrap.dedent(expected_usage)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2096 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2097 def test_usage_when_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2098 format_usage = self.get_parser(required=True).format_usage |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2099 expected_usage = self.usage_when_required |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2100 self.assertEqual(format_usage(), textwrap.dedent(expected_usage)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2101 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2102 def test_help_when_not_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2103 format_help = self.get_parser(required=False).format_help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2104 help = self.usage_when_not_required + self.help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2105 self.assertEqual(format_help(), textwrap.dedent(help)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2106 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2107 def test_help_when_required(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2108 format_help = self.get_parser(required=True).format_help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2109 help = self.usage_when_required + self.help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2110 self.assertEqual(format_help(), textwrap.dedent(help)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2111 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2112 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2113 class TestMutuallyExclusiveSimple(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2114 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2115 def get_parser(self, required=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2116 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2117 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2118 group.add_argument('--bar', help='bar help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2119 group.add_argument('--baz', nargs='?', const='Z', help='baz help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2120 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2121 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2122 failures = ['--bar X --baz Y', '--bar X --baz'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2123 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2124 ('--bar X', NS(bar='X', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2125 ('--bar X --bar Z', NS(bar='Z', baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2126 ('--baz Y', NS(bar=None, baz='Y')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2127 ('--baz', NS(bar=None, baz='Z')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2128 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2129 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2130 ('', NS(bar=None, baz=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2131 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2132 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2133 usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2134 usage: PROG [-h] [--bar BAR | --baz [BAZ]] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2135 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2136 usage_when_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2137 usage: PROG [-h] (--bar BAR | --baz [BAZ]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2138 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2139 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2140 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2141 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2142 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2143 --bar BAR bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2144 --baz [BAZ] baz help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2145 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2146 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2147 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2148 class TestMutuallyExclusiveLong(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2149 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2150 def get_parser(self, required=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2151 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2152 parser.add_argument('--abcde', help='abcde help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2153 parser.add_argument('--fghij', help='fghij help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2154 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2155 group.add_argument('--klmno', help='klmno help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2156 group.add_argument('--pqrst', help='pqrst help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2157 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2158 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2159 failures = ['--klmno X --pqrst Y'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2160 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2161 ('--klmno X', NS(abcde=None, fghij=None, klmno='X', pqrst=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2162 ('--abcde Y --klmno X', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2163 NS(abcde='Y', fghij=None, klmno='X', pqrst=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2164 ('--pqrst X', NS(abcde=None, fghij=None, klmno=None, pqrst='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2165 ('--pqrst X --fghij Y', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2166 NS(abcde=None, fghij='Y', klmno=None, pqrst='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2167 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2168 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2169 ('', NS(abcde=None, fghij=None, klmno=None, pqrst=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2170 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2171 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2172 usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2173 usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2174 [--klmno KLMNO | --pqrst PQRST] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2175 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2176 usage_when_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2177 usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2178 (--klmno KLMNO | --pqrst PQRST) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2179 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2180 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2181 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2182 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2183 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2184 --abcde ABCDE abcde help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2185 --fghij FGHIJ fghij help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2186 --klmno KLMNO klmno help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2187 --pqrst PQRST pqrst help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2188 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2189 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2190 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2191 class TestMutuallyExclusiveFirstSuppressed(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2192 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2193 def get_parser(self, required): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2194 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2195 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2196 group.add_argument('-x', help=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2197 group.add_argument('-y', action='store_false', help='y help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2198 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2199 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2200 failures = ['-x X -y'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2201 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2202 ('-x X', NS(x='X', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2203 ('-x X -x Y', NS(x='Y', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2204 ('-y', NS(x=None, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2205 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2206 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2207 ('', NS(x=None, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2208 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2209 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2210 usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2211 usage: PROG [-h] [-y] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2212 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2213 usage_when_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2214 usage: PROG [-h] -y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2215 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2216 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2217 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2218 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2219 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2220 -y y help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2221 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2222 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2223 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2224 class TestMutuallyExclusiveManySuppressed(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2225 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2226 def get_parser(self, required): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2227 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2228 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2229 add = group.add_argument |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2230 add('--spam', action='store_true', help=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2231 add('--badger', action='store_false', help=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2232 add('--bladder', help=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2233 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2234 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2235 failures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2236 '--spam --badger', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2237 '--badger --bladder B', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2238 '--bladder B --spam', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2239 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2240 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2241 ('--spam', NS(spam=True, badger=True, bladder=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2242 ('--badger', NS(spam=False, badger=False, bladder=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2243 ('--bladder B', NS(spam=False, badger=True, bladder='B')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2244 ('--spam --spam', NS(spam=True, badger=True, bladder=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2245 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2246 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2247 ('', NS(spam=False, badger=True, bladder=None)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2248 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2249 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2250 usage_when_required = usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2251 usage: PROG [-h] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2252 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2253 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2254 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2255 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2256 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2257 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2258 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2259 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2260 class TestMutuallyExclusiveOptionalAndPositional(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2261 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2262 def get_parser(self, required): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2263 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2264 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2265 group.add_argument('--foo', action='store_true', help='FOO') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2266 group.add_argument('--spam', help='SPAM') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2267 group.add_argument('badger', nargs='*', default='X', help='BADGER') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2268 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2269 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2270 failures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2271 '--foo --spam S', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2272 '--spam S X', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2273 'X --foo', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2274 'X Y Z --spam S', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2275 '--foo X Y', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2276 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2277 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2278 ('--foo', NS(foo=True, spam=None, badger='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2279 ('--spam S', NS(foo=False, spam='S', badger='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2280 ('X', NS(foo=False, spam=None, badger=['X'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2281 ('X Y Z', NS(foo=False, spam=None, badger=['X', 'Y', 'Z'])), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2282 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2283 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2284 ('', NS(foo=False, spam=None, badger='X')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2285 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2286 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2287 usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2288 usage: PROG [-h] [--foo | --spam SPAM | badger [badger ...]] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2289 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2290 usage_when_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2291 usage: PROG [-h] (--foo | --spam SPAM | badger [badger ...]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2292 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2293 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2294 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2295 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2296 badger BADGER |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2297 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2298 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2299 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2300 --foo FOO |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2301 --spam SPAM SPAM |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2302 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2303 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2304 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2305 class TestMutuallyExclusiveOptionalsMixed(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2306 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2307 def get_parser(self, required): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2308 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2309 parser.add_argument('-x', action='store_true', help='x help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2310 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2311 group.add_argument('-a', action='store_true', help='a help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2312 group.add_argument('-b', action='store_true', help='b help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2313 parser.add_argument('-y', action='store_true', help='y help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2314 group.add_argument('-c', action='store_true', help='c help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2315 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2316 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2317 failures = ['-a -b', '-b -c', '-a -c', '-a -b -c'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2318 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2319 ('-a', NS(a=True, b=False, c=False, x=False, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2320 ('-b', NS(a=False, b=True, c=False, x=False, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2321 ('-c', NS(a=False, b=False, c=True, x=False, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2322 ('-a -x', NS(a=True, b=False, c=False, x=True, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2323 ('-y -b', NS(a=False, b=True, c=False, x=False, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2324 ('-x -y -c', NS(a=False, b=False, c=True, x=True, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2325 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2326 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2327 ('', NS(a=False, b=False, c=False, x=False, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2328 ('-x', NS(a=False, b=False, c=False, x=True, y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2329 ('-y', NS(a=False, b=False, c=False, x=False, y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2330 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2331 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2332 usage_when_required = usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2333 usage: PROG [-h] [-x] [-a] [-b] [-y] [-c] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2334 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2335 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2336 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2337 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2338 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2339 -x x help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2340 -a a help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2341 -b b help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2342 -y y help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2343 -c c help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2344 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2345 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2346 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2347 class TestMutuallyExclusiveOptionalsAndPositionalsMixed(MEMixin, TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2348 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2349 def get_parser(self, required): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2350 parser = ErrorRaisingArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2351 parser.add_argument('x', help='x help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2352 parser.add_argument('-y', action='store_true', help='y help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2353 group = parser.add_mutually_exclusive_group(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2354 group.add_argument('a', nargs='?', help='a help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2355 group.add_argument('-b', action='store_true', help='b help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2356 group.add_argument('-c', action='store_true', help='c help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2357 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2358 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2359 failures = ['X A -b', '-b -c', '-c X A'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2360 successes = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2361 ('X A', NS(a='A', b=False, c=False, x='X', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2362 ('X -b', NS(a=None, b=True, c=False, x='X', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2363 ('X -c', NS(a=None, b=False, c=True, x='X', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2364 ('X A -y', NS(a='A', b=False, c=False, x='X', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2365 ('X -y -b', NS(a=None, b=True, c=False, x='X', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2366 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2367 successes_when_not_required = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2368 ('X', NS(a=None, b=False, c=False, x='X', y=False)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2369 ('X -y', NS(a=None, b=False, c=False, x='X', y=True)), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2370 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2371 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2372 usage_when_required = usage_when_not_required = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2373 usage: PROG [-h] [-y] [-b] [-c] x [a] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2374 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2375 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2376 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2377 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2378 x x help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2379 a a help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2380 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2381 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2382 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2383 -y y help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2384 -b b help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2385 -c c help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2386 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2387 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2388 # ================================================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2389 # Mutually exclusive group in parent parser tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2390 # ================================================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2391 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2392 class MEPBase(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2393 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2394 def get_parser(self, required=None): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2395 parent = super(MEPBase, self).get_parser(required=required) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2396 parser = ErrorRaisingArgumentParser( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2397 prog=parent.prog, add_help=False, parents=[parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2398 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2399 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2400 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2401 class TestMutuallyExclusiveGroupErrorsParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2402 MEPBase, TestMutuallyExclusiveGroupErrors): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2403 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2404 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2405 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2406 class TestMutuallyExclusiveSimpleParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2407 MEPBase, TestMutuallyExclusiveSimple): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2408 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2409 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2410 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2411 class TestMutuallyExclusiveLongParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2412 MEPBase, TestMutuallyExclusiveLong): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2413 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2414 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2415 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2416 class TestMutuallyExclusiveFirstSuppressedParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2417 MEPBase, TestMutuallyExclusiveFirstSuppressed): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2418 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2419 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2420 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2421 class TestMutuallyExclusiveManySuppressedParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2422 MEPBase, TestMutuallyExclusiveManySuppressed): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2423 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2424 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2425 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2426 class TestMutuallyExclusiveOptionalAndPositionalParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2427 MEPBase, TestMutuallyExclusiveOptionalAndPositional): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2428 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2429 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2430 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2431 class TestMutuallyExclusiveOptionalsMixedParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2432 MEPBase, TestMutuallyExclusiveOptionalsMixed): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2433 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2434 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2435 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2436 class TestMutuallyExclusiveOptionalsAndPositionalsMixedParent( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2437 MEPBase, TestMutuallyExclusiveOptionalsAndPositionalsMixed): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2438 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2439 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2440 # ================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2441 # Set default tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2442 # ================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2443 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2444 class TestSetDefaults(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2445 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2446 def test_set_defaults_no_args(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2447 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2448 parser.set_defaults(x='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2449 parser.set_defaults(y='bar', z=1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2450 self.assertEqual(NS(x='foo', y='bar', z=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2451 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2452 self.assertEqual(NS(x='foo', y='bar', z=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2453 parser.parse_args([], NS())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2454 self.assertEqual(NS(x='baz', y='bar', z=1), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2455 parser.parse_args([], NS(x='baz'))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2456 self.assertEqual(NS(x='baz', y='bar', z=2), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2457 parser.parse_args([], NS(x='baz', z=2))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2458 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2459 def test_set_defaults_with_args(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2460 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2461 parser.set_defaults(x='foo', y='bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2462 parser.add_argument('-x', default='xfoox') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2463 self.assertEqual(NS(x='xfoox', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2464 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2465 self.assertEqual(NS(x='xfoox', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2466 parser.parse_args([], NS())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2467 self.assertEqual(NS(x='baz', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2468 parser.parse_args([], NS(x='baz'))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2469 self.assertEqual(NS(x='1', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2470 parser.parse_args('-x 1'.split())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2471 self.assertEqual(NS(x='1', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2472 parser.parse_args('-x 1'.split(), NS())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2473 self.assertEqual(NS(x='1', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2474 parser.parse_args('-x 1'.split(), NS(x='baz'))) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2475 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2476 def test_set_defaults_subparsers(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2477 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2478 parser.set_defaults(x='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2479 subparsers = parser.add_subparsers() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2480 parser_a = subparsers.add_parser('a') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2481 parser_a.set_defaults(y='bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2482 self.assertEqual(NS(x='foo', y='bar'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2483 parser.parse_args('a'.split())) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2484 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2485 def test_set_defaults_parents(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2486 parent = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2487 parent.set_defaults(x='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2488 parser = ErrorRaisingArgumentParser(parents=[parent]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2489 self.assertEqual(NS(x='foo'), parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2490 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2491 def test_set_defaults_same_as_add_argument(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2492 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2493 parser.set_defaults(w='W', x='X', y='Y', z='Z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2494 parser.add_argument('-w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2495 parser.add_argument('-x', default='XX') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2496 parser.add_argument('y', nargs='?') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2497 parser.add_argument('z', nargs='?', default='ZZ') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2498 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2499 # defaults set previously |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2500 self.assertEqual(NS(w='W', x='XX', y='Y', z='ZZ'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2501 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2502 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2503 # reset defaults |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2504 parser.set_defaults(w='WW', x='X', y='YY', z='Z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2505 self.assertEqual(NS(w='WW', x='X', y='YY', z='Z'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2506 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2507 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2508 def test_set_defaults_same_as_add_argument_group(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2509 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2510 parser.set_defaults(w='W', x='X', y='Y', z='Z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2511 group = parser.add_argument_group('foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2512 group.add_argument('-w') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2513 group.add_argument('-x', default='XX') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2514 group.add_argument('y', nargs='?') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2515 group.add_argument('z', nargs='?', default='ZZ') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2516 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2517 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2518 # defaults set previously |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2519 self.assertEqual(NS(w='W', x='XX', y='Y', z='ZZ'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2520 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2521 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2522 # reset defaults |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2523 parser.set_defaults(w='WW', x='X', y='YY', z='Z') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2524 self.assertEqual(NS(w='WW', x='X', y='YY', z='Z'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2525 parser.parse_args([])) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2526 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2527 # ================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2528 # Get default tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2529 # ================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2530 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2531 class TestGetDefault(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2532 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2533 def test_get_default(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2534 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2535 self.assertEqual(None, parser.get_default("foo")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2536 self.assertEqual(None, parser.get_default("bar")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2537 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2538 parser.add_argument("--foo") |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2539 self.assertEqual(None, parser.get_default("foo")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2540 self.assertEqual(None, parser.get_default("bar")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2541 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2542 parser.add_argument("--bar", type=int, default=42) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2543 self.assertEqual(None, parser.get_default("foo")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2544 self.assertEqual(42, parser.get_default("bar")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2545 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2546 parser.set_defaults(foo="badger") |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2547 self.assertEqual("badger", parser.get_default("foo")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2548 self.assertEqual(42, parser.get_default("bar")) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2549 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2550 # ========================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2551 # Namespace 'contains' tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2552 # ========================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2553 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2554 class TestNamespaceContainsSimple(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2555 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2556 def test_empty(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2557 ns = argparse.Namespace() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2558 self.assertEquals('' in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2559 self.assertEquals('' not in ns, True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2560 self.assertEquals('x' in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2561 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2562 def test_non_empty(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2563 ns = argparse.Namespace(x=1, y=2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2564 self.assertEquals('x' in ns, True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2565 self.assertEquals('x' not in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2566 self.assertEquals('y' in ns, True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2567 self.assertEquals('' in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2568 self.assertEquals('xx' in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2569 self.assertEquals('z' in ns, False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2570 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2571 # ===================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2572 # Help formatting tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2573 # ===================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2574 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2575 class TestHelpFormattingMetaclass(type): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2576 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2577 def __init__(cls, name, bases, bodydict): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2578 if name == 'HelpTestCase': |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2579 return |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2580 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2581 class AddTests(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2582 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2583 def __init__(self, test_class, func_suffix, std_name): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2584 self.func_suffix = func_suffix |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2585 self.std_name = std_name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2586 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2587 for test_func in [self.test_format, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2588 self.test_print, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2589 self.test_print_file]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2590 test_name = '%s_%s' % (test_func.__name__, func_suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2591 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2592 def test_wrapper(self, test_func=test_func): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2593 test_func(self) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2594 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2595 test_wrapper.__name__ = test_name |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2596 except TypeError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2597 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2598 setattr(test_class, test_name, test_wrapper) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2599 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2600 def _get_parser(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2601 parser = argparse.ArgumentParser( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2602 *tester.parser_signature.args, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2603 **tester.parser_signature.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2604 for argument_sig in tester.argument_signatures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2605 parser.add_argument(*argument_sig.args, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2606 **argument_sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2607 group_signatures = tester.argument_group_signatures |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2608 for group_sig, argument_sigs in group_signatures: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2609 group = parser.add_argument_group(*group_sig.args, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2610 **group_sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2611 for argument_sig in argument_sigs: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2612 group.add_argument(*argument_sig.args, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2613 **argument_sig.kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2614 return parser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2615 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2616 def _test(self, tester, parser_text): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2617 expected_text = getattr(tester, self.func_suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2618 expected_text = textwrap.dedent(expected_text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2619 if expected_text != parser_text: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2620 print(repr(expected_text)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2621 print(repr(parser_text)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2622 for char1, char2 in zip(expected_text, parser_text): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2623 if char1 != char2: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2624 print('first diff: %r %r' % (char1, char2)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2625 break |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2626 tester.assertEqual(expected_text, parser_text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2627 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2628 def test_format(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2629 parser = self._get_parser(tester) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2630 format = getattr(parser, 'format_%s' % self.func_suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2631 self._test(tester, format()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2632 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2633 def test_print(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2634 parser = self._get_parser(tester) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2635 print_ = getattr(parser, 'print_%s' % self.func_suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2636 old_stream = getattr(sys, self.std_name) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2637 setattr(sys, self.std_name, StringIO()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2638 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2639 print_() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2640 parser_text = getattr(sys, self.std_name).getvalue() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2641 finally: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2642 setattr(sys, self.std_name, old_stream) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2643 self._test(tester, parser_text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2644 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2645 def test_print_file(self, tester): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2646 parser = self._get_parser(tester) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2647 print_ = getattr(parser, 'print_%s' % self.func_suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2648 sfile = StringIO() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2649 print_(sfile) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2650 parser_text = sfile.getvalue() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2651 self._test(tester, parser_text) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2652 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2653 # add tests for {format,print}_{usage,help,version} |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2654 for func_suffix, std_name in [('usage', 'stdout'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2655 ('help', 'stdout'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2656 ('version', 'stderr')]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2657 AddTests(cls, func_suffix, std_name) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2658 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2659 bases = TestCase, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2660 HelpTestCase = TestHelpFormattingMetaclass('HelpTestCase', bases, {}) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2661 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2662 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2663 class TestHelpBiggerOptionals(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2664 """Make sure that argument help aligns when options are longer""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2665 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2666 parser_signature = Sig(prog='PROG', description='DESCRIPTION', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2667 epilog='EPILOG', version='0.1') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2668 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2669 Sig('-x', action='store_true', help='X HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2670 Sig('--y', help='Y HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2671 Sig('foo', help='FOO HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2672 Sig('bar', help='BAR HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2673 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2674 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2675 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2676 usage: PROG [-h] [-v] [-x] [--y Y] foo bar |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2677 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2678 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2679 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2680 DESCRIPTION |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2681 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2682 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2683 foo FOO HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2684 bar BAR HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2685 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2686 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2687 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2688 -v, --version show program's version number and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2689 -x X HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2690 --y Y Y HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2691 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2692 EPILOG |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2693 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2694 version = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2695 0.1 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2696 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2697 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2698 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2699 class TestHelpBiggerOptionalGroups(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2700 """Make sure that argument help aligns when options are longer""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2701 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2702 parser_signature = Sig(prog='PROG', description='DESCRIPTION', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2703 epilog='EPILOG', version='0.1') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2704 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2705 Sig('-x', action='store_true', help='X HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2706 Sig('--y', help='Y HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2707 Sig('foo', help='FOO HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2708 Sig('bar', help='BAR HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2709 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2710 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2711 (Sig('GROUP TITLE', description='GROUP DESCRIPTION'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2712 Sig('baz', help='BAZ HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2713 Sig('-z', nargs='+', help='Z HELP')]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2714 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2715 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2716 usage: PROG [-h] [-v] [-x] [--y Y] [-z Z [Z ...]] foo bar baz |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2717 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2718 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2719 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2720 DESCRIPTION |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2721 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2722 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2723 foo FOO HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2724 bar BAR HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2725 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2726 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2727 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2728 -v, --version show program's version number and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2729 -x X HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2730 --y Y Y HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2731 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2732 GROUP TITLE: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2733 GROUP DESCRIPTION |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2734 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2735 baz BAZ HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2736 -z Z [Z ...] Z HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2737 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2738 EPILOG |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2739 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2740 version = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2741 0.1 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2742 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2743 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2744 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2745 class TestHelpBiggerPositionals(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2746 """Make sure that help aligns when arguments are longer""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2747 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2748 parser_signature = Sig(usage='USAGE', description='DESCRIPTION') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2749 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2750 Sig('-x', action='store_true', help='X HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2751 Sig('--y', help='Y HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2752 Sig('ekiekiekifekang', help='EKI HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2753 Sig('bar', help='BAR HELP'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2754 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2755 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2756 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2757 usage: USAGE |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2758 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2759 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2760 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2761 DESCRIPTION |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2762 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2763 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2764 ekiekiekifekang EKI HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2765 bar BAR HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2766 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2767 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2768 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2769 -x X HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2770 --y Y Y HELP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2771 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2772 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2773 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2774 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2775 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2776 class TestHelpReformatting(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2777 """Make sure that text after short names starts on the first line""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2778 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2779 parser_signature = Sig( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2780 prog='PROG', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2781 description=' oddly formatted\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2782 'description\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2783 '\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2784 'that is so long that it should go onto multiple ' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2785 'lines when wrapped') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2786 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2787 Sig('-x', metavar='XX', help='oddly\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2788 ' formatted -x help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2789 Sig('y', metavar='yyy', help='normal y help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2790 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2791 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2792 (Sig('title', description='\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2793 ' oddly formatted group\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2794 '\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2795 'description'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2796 [Sig('-a', action='store_true', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2797 help=' oddly \n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2798 'formatted -a help \n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2799 ' again, so long that it should be wrapped over ' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2800 'multiple lines')]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2801 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2802 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2803 usage: PROG [-h] [-x XX] [-a] yyy |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2804 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2805 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2806 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2807 oddly formatted description that is so long that it should go onto \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2808 multiple |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2809 lines when wrapped |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2810 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2811 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2812 yyy normal y help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2813 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2814 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2815 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2816 -x XX oddly formatted -x help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2817 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2818 title: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2819 oddly formatted group description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2820 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2821 -a oddly formatted -a help again, so long that it should \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2822 be wrapped |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2823 over multiple lines |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2824 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2825 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2826 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2827 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2828 class TestHelpWrappingShortNames(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2829 """Make sure that text after short names starts on the first line""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2830 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2831 parser_signature = Sig(prog='PROG', description= 'D\nD' * 30) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2832 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2833 Sig('-x', metavar='XX', help='XHH HX' * 20), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2834 Sig('y', metavar='yyy', help='YH YH' * 20), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2835 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2836 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2837 (Sig('ALPHAS'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2838 Sig('-a', action='store_true', help='AHHH HHA' * 10)]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2839 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2840 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2841 usage: PROG [-h] [-x XX] [-a] yyy |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2842 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2843 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2844 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2845 D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2846 DD DD DD |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2847 DD DD DD DD D |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2848 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2849 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2850 yyy YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2851 YHYH YHYH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2852 YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2853 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2854 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2855 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2856 -x XX XHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2857 HXXHH HXXHH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2858 HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2859 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2860 ALPHAS: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2861 -a AHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2862 HHAAHHH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2863 HHAAHHH HHAAHHH HHA |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2864 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2865 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2866 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2867 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2868 class TestHelpWrappingLongNames(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2869 """Make sure that text after long names starts on the next line""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2870 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2871 parser_signature = Sig(usage='USAGE', description= 'D D' * 30, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2872 version='V V'*30) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2873 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2874 Sig('-x', metavar='X' * 25, help='XH XH' * 20), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2875 Sig('y', metavar='y' * 25, help='YH YH' * 20), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2876 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2877 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2878 (Sig('ALPHAS'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2879 Sig('-a', metavar='A' * 25, help='AH AH' * 20), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2880 Sig('z', metavar='z' * 25, help='ZH ZH' * 20)]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2881 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2882 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2883 usage: USAGE |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2884 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2885 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2886 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2887 D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2888 DD DD DD |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2889 DD DD DD DD D |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2890 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2891 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2892 yyyyyyyyyyyyyyyyyyyyyyyyy |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2893 YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2894 YHYH YHYH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2895 YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2896 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2897 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2898 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2899 -v, --version show program's version number and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2900 -x XXXXXXXXXXXXXXXXXXXXXXXXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2901 XH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2902 XHXH XHXH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2903 XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2904 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2905 ALPHAS: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2906 -a AAAAAAAAAAAAAAAAAAAAAAAAA |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2907 AH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2908 AHAH AHAH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2909 AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2910 zzzzzzzzzzzzzzzzzzzzzzzzz |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2911 ZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2912 ZHZH ZHZH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2913 ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZH |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2914 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2915 version = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2916 V VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2917 VV VV VV |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2918 VV VV VV VV V |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2919 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2920 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2921 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2922 class TestHelpUsage(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2923 """Test basic usage messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2924 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2925 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2926 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2927 Sig('-w', nargs='+', help='w'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2928 Sig('-x', nargs='*', help='x'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2929 Sig('a', help='a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2930 Sig('b', help='b', nargs=2), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2931 Sig('c', help='c', nargs='?'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2932 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2933 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2934 (Sig('group'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2935 Sig('-y', nargs='?', help='y'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2936 Sig('-z', nargs=3, help='z'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2937 Sig('d', help='d', nargs='*'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2938 Sig('e', help='e', nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2939 ]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2940 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2941 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2942 usage: PROG [-h] [-w W [W ...]] [-x [X [X ...]]] [-y [Y]] [-z Z Z Z] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2943 a b b [c] [d [d ...]] e [e ...] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2944 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2945 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2946 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2947 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2948 a a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2949 b b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2950 c c |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2951 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2952 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2953 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2954 -w W [W ...] w |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2955 -x [X [X ...]] x |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2956 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2957 group: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2958 -y [Y] y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2959 -z Z Z Z z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2960 d d |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2961 e e |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2962 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2963 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2964 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2965 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2966 class TestHelpOnlyUserGroups(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2967 """Test basic usage messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2968 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2969 parser_signature = Sig(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2970 argument_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2971 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2972 (Sig('xxxx'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2973 Sig('-x', help='x'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2974 Sig('a', help='a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2975 ]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2976 (Sig('yyyy'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2977 Sig('b', help='b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2978 Sig('-y', help='y'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2979 ]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2980 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2981 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2982 usage: PROG [-x X] [-y Y] a b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2983 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2984 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2985 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2986 xxxx: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2987 -x X x |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2988 a a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2989 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2990 yyyy: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2991 b b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2992 -y Y y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2993 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2994 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2995 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2996 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2997 class TestHelpUsageLongProg(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2998 """Test usage messages where the prog is long""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
2999 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3000 parser_signature = Sig(prog='P' * 60) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3001 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3002 Sig('-w', metavar='W'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3003 Sig('-x', metavar='X'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3004 Sig('a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3005 Sig('b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3006 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3007 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3008 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3009 usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3010 [-h] [-w W] [-x X] a b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3011 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3012 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3013 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3014 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3015 a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3016 b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3017 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3018 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3019 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3020 -w W |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3021 -x X |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3022 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3023 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3024 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3025 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3026 class TestHelpUsageLongProgOptionsWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3027 """Test usage messages where the prog is long and the optionals wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3028 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3029 parser_signature = Sig(prog='P' * 60) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3030 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3031 Sig('-w', metavar='W' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3032 Sig('-x', metavar='X' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3033 Sig('-y', metavar='Y' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3034 Sig('-z', metavar='Z' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3035 Sig('a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3036 Sig('b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3037 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3038 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3039 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3040 usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3041 [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3042 [-x XXXXXXXXXXXXXXXXXXXXXXXXX] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3043 [-y YYYYYYYYYYYYYYYYYYYYYYYYY] [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3044 a b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3045 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3046 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3047 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3048 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3049 a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3050 b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3051 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3052 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3053 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3054 -w WWWWWWWWWWWWWWWWWWWWWWWWW |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3055 -x XXXXXXXXXXXXXXXXXXXXXXXXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3056 -y YYYYYYYYYYYYYYYYYYYYYYYYY |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3057 -z ZZZZZZZZZZZZZZZZZZZZZZZZZ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3058 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3059 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3060 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3061 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3062 class TestHelpUsageLongProgPositionalsWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3063 """Test usage messages where the prog is long and the positionals wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3064 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3065 parser_signature = Sig(prog='P' * 60, add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3066 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3067 Sig('a' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3068 Sig('b' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3069 Sig('c' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3070 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3071 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3072 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3073 usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3074 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3075 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3076 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3077 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3078 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3079 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3080 aaaaaaaaaaaaaaaaaaaaaaaaa |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3081 bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3082 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3083 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3084 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3085 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3086 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3087 class TestHelpUsageOptionalsWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3088 """Test usage messages where the optionals wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3089 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3090 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3091 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3092 Sig('-w', metavar='W' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3093 Sig('-x', metavar='X' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3094 Sig('-y', metavar='Y' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3095 Sig('-z', metavar='Z' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3096 Sig('a'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3097 Sig('b'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3098 Sig('c'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3099 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3100 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3101 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3102 usage: PROG [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3103 [-x XXXXXXXXXXXXXXXXXXXXXXXXX] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3104 [-y YYYYYYYYYYYYYYYYYYYYYYYYY] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3105 [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3106 a b c |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3107 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3108 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3109 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3110 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3111 a |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3112 b |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3113 c |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3114 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3115 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3116 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3117 -w WWWWWWWWWWWWWWWWWWWWWWWWW |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3118 -x XXXXXXXXXXXXXXXXXXXXXXXXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3119 -y YYYYYYYYYYYYYYYYYYYYYYYYY |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3120 -z ZZZZZZZZZZZZZZZZZZZZZZZZZ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3121 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3122 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3123 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3124 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3125 class TestHelpUsagePositionalsWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3126 """Test usage messages where the positionals wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3127 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3128 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3129 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3130 Sig('-x'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3131 Sig('-y'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3132 Sig('-z'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3133 Sig('a' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3134 Sig('b' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3135 Sig('c' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3136 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3137 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3138 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3139 usage: PROG [-h] [-x X] [-y Y] [-z Z] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3140 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3141 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3142 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3143 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3144 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3145 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3146 aaaaaaaaaaaaaaaaaaaaaaaaa |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3147 bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3148 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3149 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3150 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3151 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3152 -x X |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3153 -y Y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3154 -z Z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3155 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3156 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3157 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3158 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3159 class TestHelpUsageOptionalsPositionalsWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3160 """Test usage messages where the optionals and positionals wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3161 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3162 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3163 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3164 Sig('-x', metavar='X' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3165 Sig('-y', metavar='Y' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3166 Sig('-z', metavar='Z' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3167 Sig('a' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3168 Sig('b' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3169 Sig('c' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3170 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3171 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3172 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3173 usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3174 [-y YYYYYYYYYYYYYYYYYYYYYYYYY] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3175 [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3176 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3177 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3178 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3179 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3180 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3181 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3182 aaaaaaaaaaaaaaaaaaaaaaaaa |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3183 bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3184 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3185 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3186 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3187 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3188 -x XXXXXXXXXXXXXXXXXXXXXXXXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3189 -y YYYYYYYYYYYYYYYYYYYYYYYYY |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3190 -z ZZZZZZZZZZZZZZZZZZZZZZZZZ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3191 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3192 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3193 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3194 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3195 class TestHelpUsageOptionalsOnlyWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3196 """Test usage messages where there are only optionals and they wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3197 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3198 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3199 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3200 Sig('-x', metavar='X' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3201 Sig('-y', metavar='Y' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3202 Sig('-z', metavar='Z' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3203 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3204 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3205 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3206 usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3207 [-y YYYYYYYYYYYYYYYYYYYYYYYYY] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3208 [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3209 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3210 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3211 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3212 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3213 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3214 -x XXXXXXXXXXXXXXXXXXXXXXXXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3215 -y YYYYYYYYYYYYYYYYYYYYYYYYY |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3216 -z ZZZZZZZZZZZZZZZZZZZZZZZZZ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3217 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3218 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3219 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3220 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3221 class TestHelpUsagePositionalsOnlyWrap(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3222 """Test usage messages where there are only positionals and they wrap""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3223 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3224 parser_signature = Sig(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3225 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3226 Sig('a' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3227 Sig('b' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3228 Sig('c' * 25), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3229 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3230 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3231 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3232 usage: PROG aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3233 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3234 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3235 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3236 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3237 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3238 aaaaaaaaaaaaaaaaaaaaaaaaa |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3239 bbbbbbbbbbbbbbbbbbbbbbbbb |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3240 ccccccccccccccccccccccccc |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3241 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3242 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3243 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3244 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3245 class TestHelpVariableExpansion(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3246 """Test that variables are expanded properly in help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3247 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3248 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3249 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3250 Sig('-x', type=int, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3251 help='x %(prog)s %(default)s %(type)s %%'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3252 Sig('-y', action='store_const', default=42, const='XXX', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3253 help='y %(prog)s %(default)s %(const)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3254 Sig('--foo', choices='abc', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3255 help='foo %(prog)s %(default)s %(choices)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3256 Sig('--bar', default='baz', choices=[1, 2], metavar='BBB', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3257 help='bar %(prog)s %(default)s %(dest)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3258 Sig('spam', help='spam %(prog)s %(default)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3259 Sig('badger', default=0.5, help='badger %(prog)s %(default)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3260 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3261 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3262 (Sig('group'), [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3263 Sig('-a', help='a %(prog)s %(default)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3264 Sig('-b', default=-1, help='b %(prog)s %(default)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3265 ]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3266 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3267 usage = ('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3268 usage: PROG [-h] [-x X] [-y] [--foo {a,b,c}] [--bar BBB] [-a A] [-b B] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3269 spam badger |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3270 ''') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3271 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3272 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3273 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3274 spam spam PROG None |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3275 badger badger PROG 0.5 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3276 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3277 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3278 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3279 -x X x PROG None int % |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3280 -y y PROG 42 XXX |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3281 --foo {a,b,c} foo PROG None a, b, c |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3282 --bar BBB bar PROG baz bar |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3283 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3284 group: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3285 -a A a PROG None |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3286 -b B b PROG -1 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3287 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3288 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3289 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3290 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3291 class TestHelpVariableExpansionUsageSupplied(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3292 """Test that variables are expanded properly when usage= is present""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3293 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3294 parser_signature = Sig(prog='PROG', usage='%(prog)s FOO') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3295 argument_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3296 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3297 usage = ('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3298 usage: PROG FOO |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3299 ''') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3300 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3301 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3302 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3303 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3304 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3305 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3306 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3307 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3308 class TestHelpVariableExpansionNoArguments(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3309 """Test that variables are expanded properly with no arguments""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3310 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3311 parser_signature = Sig(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3312 argument_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3313 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3314 usage = ('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3315 usage: PROG |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3316 ''') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3317 help = usage |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3318 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3319 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3320 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3321 class TestHelpSuppressUsage(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3322 """Test that items can be suppressed in usage messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3323 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3324 parser_signature = Sig(prog='PROG', usage=argparse.SUPPRESS) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3325 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3326 Sig('--foo', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3327 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3328 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3329 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3330 help = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3331 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3332 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3333 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3334 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3335 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3336 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3337 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3338 usage = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3339 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3340 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3341 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3342 class TestHelpSuppressOptional(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3343 """Test that optional arguments can be suppressed in help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3344 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3345 parser_signature = Sig(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3346 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3347 Sig('--foo', help=argparse.SUPPRESS), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3348 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3349 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3350 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3351 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3352 usage: PROG spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3353 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3354 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3355 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3356 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3357 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3358 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3359 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3360 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3361 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3362 class TestHelpSuppressOptionalGroup(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3363 """Test that optional groups can be suppressed in help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3364 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3365 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3366 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3367 Sig('--foo', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3368 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3369 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3370 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3371 (Sig('group'), [Sig('--bar', help=argparse.SUPPRESS)]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3372 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3373 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3374 usage: PROG [-h] [--foo FOO] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3375 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3376 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3377 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3378 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3379 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3380 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3381 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3382 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3383 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3384 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3385 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3386 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3387 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3388 class TestHelpSuppressPositional(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3389 """Test that positional arguments can be suppressed in help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3390 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3391 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3392 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3393 Sig('--foo', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3394 Sig('spam', help=argparse.SUPPRESS), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3395 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3396 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3397 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3398 usage: PROG [-h] [--foo FOO] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3399 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3400 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3401 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3402 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3403 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3404 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3405 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3406 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3407 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3408 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3409 class TestHelpRequiredOptional(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3410 """Test that required options don't look optional""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3411 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3412 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3413 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3414 Sig('--foo', required=True, help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3415 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3416 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3417 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3418 usage: PROG [-h] --foo FOO |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3419 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3420 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3421 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3422 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3423 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3424 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3425 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3426 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3427 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3428 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3429 class TestHelpAlternatePrefixChars(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3430 """Test that options display with different prefix characters""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3431 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3432 parser_signature = Sig(prog='PROG', prefix_chars='^;', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3433 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3434 Sig('^^foo', action='store_true', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3435 Sig(';b', ';;bar', help='bar help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3436 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3437 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3438 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3439 usage: PROG [^^foo] [;b BAR] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3440 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3441 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3442 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3443 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3444 ^^foo foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3445 ;b BAR, ;;bar BAR bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3446 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3447 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3448 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3449 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3450 class TestHelpNoHelpOptional(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3451 """Test that the --help argument can be suppressed help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3452 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3453 parser_signature = Sig(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3454 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3455 Sig('--foo', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3456 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3457 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3458 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3459 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3460 usage: PROG [--foo FOO] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3461 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3462 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3463 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3464 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3465 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3466 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3467 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3468 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3469 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3470 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3471 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3472 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3473 class TestHelpVersionOptional(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3474 """Test that the --version argument can be suppressed help messages""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3475 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3476 parser_signature = Sig(prog='PROG', version='1.0') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3477 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3478 Sig('--foo', help='foo help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3479 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3480 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3481 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3482 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3483 usage: PROG [-h] [-v] [--foo FOO] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3484 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3485 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3486 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3487 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3488 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3489 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3490 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3491 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3492 -v, --version show program's version number and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3493 --foo FOO foo help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3494 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3495 version = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3496 1.0 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3497 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3498 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3499 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3500 class TestHelpNone(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3501 """Test that no errors occur if no help is specified""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3502 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3503 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3504 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3505 Sig('--foo'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3506 Sig('spam'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3507 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3508 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3509 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3510 usage: PROG [-h] [--foo FOO] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3511 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3512 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3513 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3514 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3515 spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3516 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3517 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3518 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3519 --foo FOO |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3520 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3521 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3522 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3523 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3524 class TestHelpTupleMetavar(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3525 """Test specifying metavar as a tuple""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3526 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3527 parser_signature = Sig(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3528 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3529 Sig('-w', help='w', nargs='+', metavar=('W1', 'W2')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3530 Sig('-x', help='x', nargs='*', metavar=('X1', 'X2')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3531 Sig('-y', help='y', nargs=3, metavar=('Y1', 'Y2', 'Y3')), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3532 Sig('-z', help='z', nargs='?', metavar=('Z1', )), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3533 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3534 argument_group_signatures = [] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3535 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3536 usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] \ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3537 [-z [Z1]] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3538 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3539 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3540 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3541 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3542 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3543 -w W1 [W2 ...] w |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3544 -x [X1 [X2 ...]] x |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3545 -y Y1 Y2 Y3 y |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3546 -z [Z1] z |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3547 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3548 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3549 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3550 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3551 class TestHelpRawText(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3552 """Test the RawTextHelpFormatter""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3553 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3554 parser_signature = Sig( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3555 prog='PROG', formatter_class=argparse.RawTextHelpFormatter, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3556 description='Keep the formatting\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3557 ' exactly as it is written\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3558 '\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3559 'here\n') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3560 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3561 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3562 Sig('--foo', help=' foo help should also\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3563 'appear as given here'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3564 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3565 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3566 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3567 (Sig('title', description=' This text\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3568 ' should be indented\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3569 ' exactly like it is here\n'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3570 [Sig('--bar', help='bar help')]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3571 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3572 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3573 usage: PROG [-h] [--foo FOO] [--bar BAR] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3574 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3575 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3576 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3577 Keep the formatting |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3578 exactly as it is written |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3579 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3580 here |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3581 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3582 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3583 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3584 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3585 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3586 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3587 --foo FOO foo help should also |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3588 appear as given here |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3589 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3590 title: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3591 This text |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3592 should be indented |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3593 exactly like it is here |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3594 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3595 --bar BAR bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3596 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3597 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3598 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3599 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3600 class TestHelpRawDescription(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3601 """Test the RawTextHelpFormatter""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3602 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3603 parser_signature = Sig( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3604 prog='PROG', formatter_class=argparse.RawDescriptionHelpFormatter, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3605 description='Keep the formatting\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3606 ' exactly as it is written\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3607 '\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3608 'here\n') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3609 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3610 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3611 Sig('--foo', help=' foo help should not\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3612 ' retain this odd formatting'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3613 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3614 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3615 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3616 (Sig('title', description=' This text\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3617 ' should be indented\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3618 ' exactly like it is here\n'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3619 [Sig('--bar', help='bar help')]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3620 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3621 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3622 usage: PROG [-h] [--foo FOO] [--bar BAR] spam |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3623 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3624 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3625 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3626 Keep the formatting |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3627 exactly as it is written |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3628 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3629 here |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3630 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3631 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3632 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3633 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3634 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3635 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3636 --foo FOO foo help should not retain this odd formatting |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3637 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3638 title: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3639 This text |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3640 should be indented |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3641 exactly like it is here |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3642 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3643 --bar BAR bar help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3644 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3645 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3646 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3647 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3648 class TestHelpArgumentDefaults(HelpTestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3649 """Test the ArgumentDefaultsHelpFormatter""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3650 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3651 parser_signature = Sig( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3652 prog='PROG', formatter_class=argparse.ArgumentDefaultsHelpFormatter, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3653 description='description') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3654 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3655 argument_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3656 Sig('--foo', help='foo help - oh and by the way, %(default)s'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3657 Sig('--bar', action='store_true', help='bar help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3658 Sig('spam', help='spam help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3659 Sig('badger', nargs='?', default='wooden', help='badger help'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3660 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3661 argument_group_signatures = [ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3662 (Sig('title', description='description'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3663 [Sig('--baz', type=int, default=42, help='baz help')]), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3664 ] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3665 usage = '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3666 usage: PROG [-h] [--foo FOO] [--bar] [--baz BAZ] spam [badger] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3667 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3668 help = usage + '''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3669 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3670 description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3671 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3672 positional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3673 spam spam help |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3674 badger badger help (default: wooden) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3675 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3676 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3677 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3678 --foo FOO foo help - oh and by the way, None |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3679 --bar bar help (default: False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3680 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3681 title: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3682 description |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3683 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3684 --baz BAZ baz help (default: 42) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3685 ''' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3686 version = '' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3687 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3688 # ===================================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3689 # Optional/Positional constructor tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3690 # ===================================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3691 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3692 class TestInvalidArgumentConstructors(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3693 """Test a bunch of invalid Argument constructors""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3694 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3695 def assertTypeError(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3696 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3697 self.assertRaises(TypeError, parser.add_argument, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3698 *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3699 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3700 def assertValueError(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3701 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3702 self.assertRaises(ValueError, parser.add_argument, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3703 *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3704 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3705 def test_invalid_keyword_arguments(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3706 self.assertTypeError('-x', bar=None) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3707 self.assertTypeError('-y', callback='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3708 self.assertTypeError('-y', callback_args=()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3709 self.assertTypeError('-y', callback_kwargs={}) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3710 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3711 def test_missing_destination(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3712 self.assertTypeError() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3713 for action in ['append', 'store']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3714 self.assertTypeError(action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3715 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3716 def test_invalid_option_strings(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3717 self.assertValueError('--') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3718 self.assertValueError('---') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3719 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3720 def test_invalid_type(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3721 self.assertValueError('--foo', type='int') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3722 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3723 def test_invalid_action(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3724 self.assertValueError('-x', action='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3725 self.assertValueError('foo', action='baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3726 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3727 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3728 parser.add_argument("--foo", action="store-true") |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3729 except ValueError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3730 e = sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3731 expected = 'unknown action' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3732 msg = 'expected %r, found %r' % (expected, e) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3733 self.assertTrue(expected in str(e), msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3734 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3735 def test_multiple_dest(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3736 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3737 parser.add_argument(dest='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3738 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3739 parser.add_argument('bar', dest='baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3740 except ValueError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3741 e = sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3742 expected = 'dest supplied twice for positional argument' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3743 msg = 'expected %r, found %r' % (expected, e) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3744 self.assertTrue(expected in str(e), msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3745 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3746 def test_no_argument_actions(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3747 for action in ['store_const', 'store_true', 'store_false', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3748 'append_const', 'count']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3749 for attrs in [dict(type=int), dict(nargs='+'), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3750 dict(choices='ab')]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3751 self.assertTypeError('-x', action=action, **attrs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3752 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3753 def test_no_argument_no_const_actions(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3754 # options with zero arguments |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3755 for action in ['store_true', 'store_false', 'count']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3756 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3757 # const is always disallowed |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3758 self.assertTypeError('-x', const='foo', action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3759 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3760 # nargs is always disallowed |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3761 self.assertTypeError('-x', nargs='*', action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3762 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3763 def test_more_than_one_argument_actions(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3764 for action in ['store', 'append']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3765 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3766 # nargs=0 is disallowed |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3767 self.assertValueError('-x', nargs=0, action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3768 self.assertValueError('spam', nargs=0, action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3769 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3770 # const is disallowed with non-optional arguments |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3771 for nargs in [1, '*', '+']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3772 self.assertValueError('-x', const='foo', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3773 nargs=nargs, action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3774 self.assertValueError('spam', const='foo', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3775 nargs=nargs, action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3776 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3777 def test_required_const_actions(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3778 for action in ['store_const', 'append_const']: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3779 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3780 # nargs is always disallowed |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3781 self.assertTypeError('-x', nargs='+', action=action) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3782 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3783 def test_parsers_action_missing_params(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3784 self.assertTypeError('command', action='parsers') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3785 self.assertTypeError('command', action='parsers', prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3786 self.assertTypeError('command', action='parsers', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3787 parser_class=argparse.ArgumentParser) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3788 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3789 def test_required_positional(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3790 self.assertTypeError('foo', required=True) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3791 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3792 def test_user_defined_action(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3793 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3794 class Success(Exception): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3795 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3796 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3797 class Action(object): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3798 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3799 def __init__(self, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3800 option_strings, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3801 dest, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3802 const, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3803 default, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3804 required=False): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3805 if dest == 'spam': |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3806 if const is Success: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3807 if default is Success: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3808 raise Success() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3809 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3810 def __call__(self, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3811 pass |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3812 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3813 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3814 self.assertRaises(Success, parser.add_argument, '--spam', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3815 action=Action, default=Success, const=Success) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3816 self.assertRaises(Success, parser.add_argument, 'spam', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3817 action=Action, default=Success, const=Success) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3818 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3819 # ================================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3820 # Actions returned by add_argument |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3821 # ================================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3822 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3823 class TestActionsReturned(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3824 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3825 def test_dest(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3826 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3827 action = parser.add_argument('--foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3828 self.assertEqual(action.dest, 'foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3829 action = parser.add_argument('-b', '--bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3830 self.assertEqual(action.dest, 'bar') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3831 action = parser.add_argument('-x', '-y') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3832 self.assertEqual(action.dest, 'x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3833 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3834 def test_misc(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3835 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3836 action = parser.add_argument('--foo', nargs='?', const=42, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3837 default=84, type=int, choices=[1, 2], |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3838 help='FOO', metavar='BAR', dest='baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3839 self.assertEqual(action.nargs, '?') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3840 self.assertEqual(action.const, 42) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3841 self.assertEqual(action.default, 84) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3842 self.assertEqual(action.type, int) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3843 self.assertEqual(action.choices, [1, 2]) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3844 self.assertEqual(action.help, 'FOO') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3845 self.assertEqual(action.metavar, 'BAR') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3846 self.assertEqual(action.dest, 'baz') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3847 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3848 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3849 # ================================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3850 # Argument conflict handling tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3851 # ================================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3852 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3853 class TestConflictHandling(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3854 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3855 def test_bad_type(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3856 self.assertRaises(ValueError, argparse.ArgumentParser, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3857 conflict_handler='foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3858 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3859 def test_conflict_error(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3860 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3861 parser.add_argument('-x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3862 self.assertRaises(argparse.ArgumentError, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3863 parser.add_argument, '-x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3864 parser.add_argument('--spam') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3865 self.assertRaises(argparse.ArgumentError, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3866 parser.add_argument, '--spam') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3867 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3868 def test_resolve_error(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3869 get_parser = argparse.ArgumentParser |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3870 parser = get_parser(prog='PROG', conflict_handler='resolve') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3871 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3872 parser.add_argument('-x', help='OLD X') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3873 parser.add_argument('-x', help='NEW X') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3874 self.assertEqual(parser.format_help(), textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3875 usage: PROG [-h] [-x X] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3876 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3877 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3878 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3879 -x X NEW X |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3880 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3881 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3882 parser.add_argument('--spam', metavar='OLD_SPAM') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3883 parser.add_argument('--spam', metavar='NEW_SPAM') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3884 self.assertEqual(parser.format_help(), textwrap.dedent('''\ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3885 usage: PROG [-h] [-x X] [--spam NEW_SPAM] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3886 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3887 optional arguments: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3888 -h, --help show this help message and exit |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3889 -x X NEW X |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3890 --spam NEW_SPAM |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3891 ''')) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3892 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3893 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3894 # ============================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3895 # Help and Version option tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3896 # ============================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3897 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3898 class TestOptionalsHelpVersionActions(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3899 """Test the help and version actions""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3900 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3901 def _get_error(self, func, *args, **kwargs): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3902 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3903 func(*args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3904 except ArgumentParserError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3905 return sys.exc_info()[1] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3906 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3907 self.assertRaises(ArgumentParserError, func, *args, **kwargs) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3908 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3909 def assertPrintHelpExit(self, parser, args_str): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3910 self.assertEqual( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3911 parser.format_help(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3912 self._get_error(parser.parse_args, args_str.split()).stdout) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3913 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3914 def assertPrintVersionExit(self, parser, args_str): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3915 self.assertEqual( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3916 parser.format_version(), |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3917 self._get_error(parser.parse_args, args_str.split()).stderr) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3918 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3919 def assertArgumentParserError(self, parser, *args): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3920 self.assertRaises(ArgumentParserError, parser.parse_args, args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3921 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3922 def test_version(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3923 parser = ErrorRaisingArgumentParser(version='1.0') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3924 self.assertPrintHelpExit(parser, '-h') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3925 self.assertPrintHelpExit(parser, '--help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3926 self.assertPrintVersionExit(parser, '-v') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3927 self.assertPrintVersionExit(parser, '--version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3928 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3929 def test_version_format(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3930 parser = ErrorRaisingArgumentParser(prog='PPP', version='%(prog)s 3.5') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3931 msg = self._get_error(parser.parse_args, ['-v']).stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3932 self.assertEqual('PPP 3.5\n', msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3933 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3934 def test_version_no_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3935 parser = ErrorRaisingArgumentParser(add_help=False, version='1.0') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3936 self.assertArgumentParserError(parser, '-h') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3937 self.assertArgumentParserError(parser, '--help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3938 self.assertPrintVersionExit(parser, '-v') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3939 self.assertPrintVersionExit(parser, '--version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3940 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3941 def test_version_action(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3942 parser = ErrorRaisingArgumentParser(prog='XXX') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3943 parser.add_argument('-V', action='version', version='%(prog)s 3.7') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3944 msg = self._get_error(parser.parse_args, ['-V']).stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3945 self.assertEqual('XXX 3.7\n', msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3946 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3947 def test_no_help(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3948 parser = ErrorRaisingArgumentParser(add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3949 self.assertArgumentParserError(parser, '-h') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3950 self.assertArgumentParserError(parser, '--help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3951 self.assertArgumentParserError(parser, '-v') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3952 self.assertArgumentParserError(parser, '--version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3953 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3954 def test_alternate_help_version(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3955 parser = ErrorRaisingArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3956 parser.add_argument('-x', action='help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3957 parser.add_argument('-y', action='version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3958 self.assertPrintHelpExit(parser, '-x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3959 self.assertPrintVersionExit(parser, '-y') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3960 self.assertArgumentParserError(parser, '-v') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3961 self.assertArgumentParserError(parser, '--version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3962 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3963 def test_help_version_extra_arguments(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3964 parser = ErrorRaisingArgumentParser(version='1.0') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3965 parser.add_argument('-x', action='store_true') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3966 parser.add_argument('y') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3967 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3968 # try all combinations of valid prefixes and suffixes |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3969 valid_prefixes = ['', '-x', 'foo', '-x bar', 'baz -x'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3970 valid_suffixes = valid_prefixes + ['--bad-option', 'foo bar baz'] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3971 for prefix in valid_prefixes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3972 for suffix in valid_suffixes: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3973 format = '%s %%s %s' % (prefix, suffix) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3974 self.assertPrintHelpExit(parser, format % '-h') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3975 self.assertPrintHelpExit(parser, format % '--help') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3976 self.assertPrintVersionExit(parser, format % '-v') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3977 self.assertPrintVersionExit(parser, format % '--version') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3978 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3979 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3980 # ====================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3981 # str() and repr() tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3982 # ====================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3983 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3984 class TestStrings(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3985 """Test str() and repr() on Optionals and Positionals""" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3986 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3987 def assertStringEqual(self, obj, result_string): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3988 for func in [str, repr]: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3989 self.assertEqual(func(obj), result_string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3990 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3991 def test_optional(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3992 option = argparse.Action( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3993 option_strings=['--foo', '-a', '-b'], |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3994 dest='b', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3995 type='int', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3996 nargs='+', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3997 default=42, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3998 choices=[1, 2, 3], |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
3999 help='HELP', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4000 metavar='METAVAR') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4001 string = ( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4002 "Action(option_strings=['--foo', '-a', '-b'], dest='b', " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4003 "nargs='+', const=None, default=42, type='int', " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4004 "choices=[1, 2, 3], help='HELP', metavar='METAVAR')") |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4005 self.assertStringEqual(option, string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4006 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4007 def test_argument(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4008 argument = argparse.Action( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4009 option_strings=[], |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4010 dest='x', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4011 type=float, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4012 nargs='?', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4013 default=2.5, |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4014 choices=[0.5, 1.5, 2.5], |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4015 help='H HH H', |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4016 metavar='MV MV MV') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4017 string = ( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4018 "Action(option_strings=[], dest='x', nargs='?', " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4019 "const=None, default=2.5, type=%r, choices=[0.5, 1.5, 2.5], " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4020 "help='H HH H', metavar='MV MV MV')" % float) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4021 self.assertStringEqual(argument, string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4022 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4023 def test_namespace(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4024 ns = argparse.Namespace(foo=42, bar='spam') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4025 string = "Namespace(bar='spam', foo=42)" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4026 self.assertStringEqual(ns, string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4027 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4028 def test_parser(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4029 parser = argparse.ArgumentParser(prog='PROG') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4030 string = ( |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4031 "ArgumentParser(prog='PROG', usage=None, description=None, " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4032 "version=None, formatter_class=%r, conflict_handler='error', " |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4033 "add_help=True)" % argparse.HelpFormatter) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4034 self.assertStringEqual(parser, string) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4035 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4036 # =============== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4037 # Namespace tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4038 # =============== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4039 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4040 class TestNamespace(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4041 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4042 def test_constructor(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4043 ns = argparse.Namespace() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4044 self.assertRaises(AttributeError, getattr, ns, 'x') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4045 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4046 ns = argparse.Namespace(a=42, b='spam') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4047 self.assertEqual(ns.a, 42) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4048 self.assertEqual(ns.b, 'spam') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4049 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4050 def test_equality(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4051 ns1 = argparse.Namespace(a=1, b=2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4052 ns2 = argparse.Namespace(b=2, a=1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4053 ns3 = argparse.Namespace(a=1) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4054 ns4 = argparse.Namespace(b=2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4055 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4056 self.assertEqual(ns1, ns2) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4057 self.assertNotEqual(ns1, ns3) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4058 self.assertNotEqual(ns1, ns4) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4059 self.assertNotEqual(ns2, ns3) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4060 self.assertNotEqual(ns2, ns4) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4061 self.assertTrue(ns1 != ns3) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4062 self.assertTrue(ns1 != ns4) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4063 self.assertTrue(ns2 != ns3) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4064 self.assertTrue(ns2 != ns4) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4065 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4066 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4067 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4068 # File encoding tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4069 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4070 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4071 class TestEncoding(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4072 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4073 def _test_module_encoding(self, path): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4074 path, _ = os.path.splitext(path) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4075 path += ".py" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4076 codecs.open(path, 'r', 'utf8').read() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4077 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4078 def test_argparse_module_encoding(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4079 self._test_module_encoding(argparse.__file__) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4080 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4081 def test_test_argparse_module_encoding(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4082 self._test_module_encoding(__file__) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4083 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4084 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4085 # ArgumentError tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4086 # =================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4087 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4088 class TestArgumentError(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4089 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4090 def test_argument_error(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4091 msg = "my error here" |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4092 error = argparse.ArgumentError(None, msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4093 self.assertEqual(str(error), msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4094 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4095 # ======================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4096 # ArgumentTypeError tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4097 # ======================= |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4098 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4099 class TestArgumentError(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4100 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4101 def test_argument_type_error(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4102 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4103 def spam(string): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4104 raise argparse.ArgumentTypeError('spam!') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4105 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4106 parser = ErrorRaisingArgumentParser(prog='PROG', add_help=False) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4107 parser.add_argument('x', type=spam) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4108 try: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4109 parser.parse_args(['XXX']) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4110 except ArgumentParserError: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4111 expected = 'usage: PROG x\nPROG: error: argument x: spam!\n' |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4112 msg = sys.exc_info()[1].stderr |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4113 self.assertEqual(expected, msg) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4114 else: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4115 self.fail() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4116 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4117 # ====================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4118 # parse_known_args tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4119 # ====================== |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4120 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4121 class TestParseKnownArgs(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4122 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4123 def test_optionals(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4124 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4125 parser.add_argument('--foo') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4126 args, extras = parser.parse_known_args('--foo F --bar --baz'.split()) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4127 self.assertEqual(NS(foo='F'), args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4128 self.assertEqual(['--bar', '--baz'], extras) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4129 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4130 def test_mixed(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4131 parser = argparse.ArgumentParser() |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4132 parser.add_argument('-v', nargs='?', const=1, type=int) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4133 parser.add_argument('--spam', action='store_false') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4134 parser.add_argument('badger') |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4135 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4136 argv = ["B", "C", "--foo", "-v", "3", "4"] |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4137 args, extras = parser.parse_known_args(argv) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4138 self.assertEqual(NS(v=3, spam=True, badger="B"), args) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4139 self.assertEqual(["C", "--foo", "4"], extras) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4140 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4141 # ============================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4142 # from argparse import * tests |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4143 # ============================ |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4144 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4145 class TestImportStar(TestCase): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4146 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4147 def test(self): |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4148 for name in argparse.__all__: |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4149 self.assertTrue(hasattr(argparse, name)) |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4150 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4151 def test_main(): |
| 60174 | 4152 # silence warnings about version argument - these are expected |
| 4153 with support.check_warnings( | |
| 4154 ('The "version" argument to ArgumentParser is deprecated.', | |
| 4155 DeprecationWarning), | |
| 4156 ('The (format|print)_version method is deprecated', | |
| 4157 DeprecationWarning)): | |
|
59275
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4158 support.run_unittest(__name__) |
|
59285
2d241765e631
Merged revisions 78604 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59282
diff
changeset
|
4159 # Remove global references to avoid looking like we have refleaks. |
|
2d241765e631
Merged revisions 78604 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59282
diff
changeset
|
4160 RFile.seen = {} |
|
2d241765e631
Merged revisions 78604 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59282
diff
changeset
|
4161 WFile.seen = set() |
|
2d241765e631
Merged revisions 78604 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59282
diff
changeset
|
4162 |
|
59275
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4163 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4164 |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4165 if __name__ == '__main__': |
|
12bcb69938b3
Merged revisions 78586-78593 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
59258
diff
changeset
|
4166 test_main() |
