Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_optparse.py @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 33bdd0a985b9 |
| children |
| rev | line source |
|---|---|
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1 # |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
2 # Test suite for Optik. Supplied by Johannes Gijsbers |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
3 # (taradino@softhome.net) -- translated from the original Optik |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
4 # test suite to this PyUnit-based version. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
5 # |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
6 # $Id$ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
7 # |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
8 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
9 import sys |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
10 import os |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
11 import re |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
12 import copy |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
13 import unittest |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
14 |
|
42501
f6069f9dd52d
SF patch# 1770008 by Christian Heimes (plus some extras).
Guido van Rossum <guido@python.org>
parents:
42161
diff
changeset
|
15 from io import StringIO |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
16 from test import support |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
17 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
18 |
|
59615
b93cfafcdcad
Merged revisions 78093 via svnmerge from
Georg Brandl <georg@python.org>
parents:
59613
diff
changeset
|
19 from optparse import make_option, Option, \ |
|
b93cfafcdcad
Merged revisions 78093 via svnmerge from
Georg Brandl <georg@python.org>
parents:
59613
diff
changeset
|
20 TitledHelpFormatter, OptionParser, OptionGroup, \ |
|
b93cfafcdcad
Merged revisions 78093 via svnmerge from
Georg Brandl <georg@python.org>
parents:
59613
diff
changeset
|
21 SUPPRESS_USAGE, OptionError, OptionConflictError, \ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
22 BadOptionError, OptionValueError, Values |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
23 from optparse import _match_abbrev |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
24 from optparse import _parse_num |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
25 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
26 retype = type(re.compile('')) |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
27 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
28 class InterceptedError(Exception): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
29 def __init__(self, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
30 error_message=None, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
31 exit_status=None, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
32 exit_message=None): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
33 self.error_message = error_message |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
34 self.exit_status = exit_status |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
35 self.exit_message = exit_message |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
36 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
37 def __str__(self): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
38 return self.error_message or self.exit_message or "intercepted error" |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
39 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
40 class InterceptingOptionParser(OptionParser): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
41 def exit(self, status=0, msg=None): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
42 raise InterceptedError(exit_status=status, exit_message=msg) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
43 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
44 def error(self, msg): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
45 raise InterceptedError(error_message=msg) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
46 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
47 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
48 class BaseTest(unittest.TestCase): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
49 def assertParseOK(self, args, expected_opts, expected_positional_args): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
50 """Assert the options are what we expected when parsing arguments. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
51 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
52 Otherwise, fail with a nicely formatted message. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
53 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
54 Keyword arguments: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
55 args -- A list of arguments to parse with OptionParser. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
56 expected_opts -- The options expected. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
57 expected_positional_args -- The positional arguments expected. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
58 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
59 Returns the options and positional args for further testing. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
60 """ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
61 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
62 (options, positional_args) = self.parser.parse_args(args) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
63 optdict = vars(options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
64 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
65 self.assertEqual(optdict, expected_opts, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
66 """ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
67 Options are %(optdict)s. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
68 Should be %(expected_opts)s. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
69 Args were %(args)s.""" % locals()) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
70 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
71 self.assertEqual(positional_args, expected_positional_args, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
72 """ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
73 Positional arguments are %(positional_args)s. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
74 Should be %(expected_positional_args)s. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
75 Args were %(args)s.""" % locals ()) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
76 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
77 return (options, positional_args) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
78 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
79 def assertRaises(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
80 func, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
81 args, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
82 kwargs, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
83 expected_exception, |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
84 expected_message): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
85 """ |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
86 Assert that the expected exception is raised when calling a |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
87 function, and that the right error message is included with |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
88 that exception. |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
89 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
90 Arguments: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
91 func -- the function to call |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
92 args -- positional arguments to `func` |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
93 kwargs -- keyword arguments to `func` |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
94 expected_exception -- exception that should be raised |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
95 expected_message -- expected exception message (or pattern |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
96 if a compiled regex object) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
97 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
98 Returns the exception raised for further testing. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
99 """ |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
100 if args is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
101 args = () |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
102 if kwargs is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
103 kwargs = {} |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
104 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
105 try: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
106 func(*args, **kwargs) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
107 except expected_exception as err: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
108 actual_message = str(err) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
109 if isinstance(expected_message, retype): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
110 self.assertTrue(expected_message.search(actual_message), |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
111 """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
112 expected exception message pattern: |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
113 /%s/ |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
114 actual exception message: |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
115 '''%s''' |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
116 """ % (expected_message.pattern, actual_message)) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
117 else: |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
118 self.assertEqual(actual_message, |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
119 expected_message, |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
120 """\ |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
121 expected exception message: |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
122 '''%s''' |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
123 actual exception message: |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
124 '''%s''' |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
125 """ % (expected_message, actual_message)) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
126 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
127 return err |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
128 else: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
129 self.fail("""expected exception %(expected_exception)s not raised |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
130 called %(func)r |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
131 with args %(args)r |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
132 and kwargs %(kwargs)r |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
133 """ % locals ()) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
134 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
135 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
136 # -- Assertions used in more than one class -------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
137 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
138 def assertParseFail(self, cmdline_args, expected_output): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
139 """ |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
140 Assert the parser fails with the expected message. Caller |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
141 must ensure that self.parser is an InterceptingOptionParser. |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
142 """ |
|
32872
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
143 try: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
144 self.parser.parse_args(cmdline_args) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
145 except InterceptedError as err: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
146 self.assertEqual(err.error_message, expected_output) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
147 else: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
148 self.assertFalse("expected parse failure") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
149 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
150 def assertOutput(self, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
151 cmdline_args, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
152 expected_output, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
153 expected_status=0, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
154 expected_error=None): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
155 """Assert the parser prints the expected output on stdout.""" |
|
32872
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
156 save_stdout = sys.stdout |
|
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
157 try: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
158 try: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
159 sys.stdout = StringIO() |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
160 self.parser.parse_args(cmdline_args) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
161 finally: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
162 output = sys.stdout.getvalue() |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
163 sys.stdout = save_stdout |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
164 |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
165 except InterceptedError as err: |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
166 self.assertTrue( |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
167 isinstance(output, str), |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
168 "expected output to be an ordinary string, not %r" |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
169 % type(output)) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
170 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
171 if output != expected_output: |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
172 self.fail("expected: \n'''\n" + expected_output + |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
173 "'''\nbut got \n'''\n" + output + "'''") |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
174 self.assertEqual(err.exit_status, expected_status) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
175 self.assertEqual(err.exit_message, expected_error) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
176 else: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
177 self.assertFalse("expected parser.exit()") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
178 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
179 def assertTypeError(self, func, expected_message, *args): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
180 """Assert that TypeError is raised when executing func.""" |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
181 self.assertRaises(func, args, None, TypeError, expected_message) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
182 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
183 def assertHelp(self, parser, expected_help): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
184 actual_help = parser.format_help() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
185 if actual_help != expected_help: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
186 raise self.failureException( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
187 'help text failure; expected:\n"' + |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
188 expected_help + '"; got:\n"' + |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
189 actual_help + '"\n') |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
190 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
191 # -- Test make_option() aka Option ------------------------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
192 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
193 # It's not necessary to test correct options here. All the tests in the |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
194 # parser.parse_args() section deal with those, because they're needed |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
195 # there. |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
196 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
197 class TestOptionChecks(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
198 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
199 self.parser = OptionParser(usage=SUPPRESS_USAGE) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
200 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
201 def assertOptionError(self, expected_message, args=[], kwargs={}): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
202 self.assertRaises(make_option, args, kwargs, |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
203 OptionError, expected_message) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
204 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
205 def test_opt_string_empty(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
206 self.assertTypeError(make_option, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
207 "at least one option string must be supplied") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
208 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
209 def test_opt_string_too_short(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
210 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
211 "invalid option string 'b': must be at least two characters long", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
212 ["b"]) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
213 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
214 def test_opt_string_short_invalid(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
215 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
216 "invalid short option string '--': must be " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
217 "of the form -x, (x any non-dash char)", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
218 ["--"]) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
219 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
220 def test_opt_string_long_invalid(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
221 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
222 "invalid long option string '---': " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
223 "must start with --, followed by non-dash", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
224 ["---"]) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
225 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
226 def test_attr_invalid(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
227 self.assertOptionError( |
| 38464 | 228 "option -b: invalid keyword arguments: bar, foo", |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
229 ["-b"], {'foo': None, 'bar': None}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
230 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
231 def test_action_invalid(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
232 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
233 "option -b: invalid action: 'foo'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
234 ["-b"], {'action': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
235 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
236 def test_type_invalid(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
237 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
238 "option -b: invalid option type: 'foo'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
239 ["-b"], {'type': 'foo'}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
240 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
241 "option -b: invalid option type: 'tuple'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
242 ["-b"], {'type': tuple}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
243 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
244 def test_no_type_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
245 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
246 "option -b: must not supply a type for action 'count'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
247 ["-b"], {'action': 'count', 'type': 'int'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
248 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
249 def test_no_choices_list(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
250 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
251 "option -b/--bad: must supply a list of " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
252 "choices for type 'choice'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
253 ["-b", "--bad"], {'type': "choice"}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
254 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
255 def test_bad_choices_list(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
256 typename = type('').__name__ |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
257 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
258 "option -b/--bad: choices must be a list of " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
259 "strings ('%s' supplied)" % typename, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
260 ["-b", "--bad"], |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
261 {'type': "choice", 'choices':"bad choices"}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
262 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
263 def test_no_choices_for_type(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
264 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
265 "option -b: must not supply choices for type 'int'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
266 ["-b"], {'type': 'int', 'choices':"bad"}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
267 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
268 def test_no_const_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
269 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
270 "option -b: 'const' must not be supplied for action 'store'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
271 ["-b"], {'action': 'store', 'const': 1}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
272 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
273 def test_no_nargs_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
274 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
275 "option -b: 'nargs' must not be supplied for action 'count'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
276 ["-b"], {'action': 'count', 'nargs': 2}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
277 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
278 def test_callback_not_callable(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
279 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
280 "option -b: callback not callable: 'foo'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
281 ["-b"], {'action': 'callback', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
282 'callback': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
283 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
284 def dummy(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
285 pass |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
286 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
287 def test_callback_args_no_tuple(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
288 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
289 "option -b: callback_args, if supplied, " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
290 "must be a tuple: not 'foo'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
291 ["-b"], {'action': 'callback', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
292 'callback': self.dummy, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
293 'callback_args': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
294 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
295 def test_callback_kwargs_no_dict(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
296 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
297 "option -b: callback_kwargs, if supplied, " |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
298 "must be a dict: not 'foo'", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
299 ["-b"], {'action': 'callback', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
300 'callback': self.dummy, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
301 'callback_kwargs': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
302 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
303 def test_no_callback_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
304 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
305 "option -b: callback supplied ('foo') for non-callback option", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
306 ["-b"], {'action': 'store', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
307 'callback': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
308 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
309 def test_no_callback_args_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
310 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
311 "option -b: callback_args supplied for non-callback option", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
312 ["-b"], {'action': 'store', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
313 'callback_args': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
314 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
315 def test_no_callback_kwargs_for_action(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
316 self.assertOptionError( |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
317 "option -b: callback_kwargs supplied for non-callback option", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
318 ["-b"], {'action': 'store', |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
319 'callback_kwargs': 'foo'}) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
320 |
|
78124
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
321 def test_no_single_dash(self): |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
322 self.assertOptionError( |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
323 "invalid long option string '-debug': " |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
324 "must start with --, followed by non-dash", |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
325 ["-debug"]) |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
326 |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
327 self.assertOptionError( |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
328 "option -d: invalid long option string '-debug': must start with" |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
329 " --, followed by non-dash", |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
330 ["-d", "-debug"]) |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
331 |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
332 self.assertOptionError( |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
333 "invalid long option string '-debug': " |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
334 "must start with --, followed by non-dash", |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
335 ["-debug", "--debug"]) |
|
844bb753570f
#4640: Add optparse tests for '-xxx' invalid when defining options.
R David Murray <rdmurray@bitdance.com>
parents:
71103
diff
changeset
|
336 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
337 class TestOptionParser(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
338 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
339 self.parser = OptionParser() |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
340 self.parser.add_option("-v", "--verbose", "-n", "--noisy", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
341 action="store_true", dest="verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
342 self.parser.add_option("-q", "--quiet", "--silent", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
343 action="store_false", dest="verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
344 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
345 def test_add_option_no_Option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
346 self.assertTypeError(self.parser.add_option, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
347 "not an Option instance: None", None) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
348 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
349 def test_add_option_invalid_arguments(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
350 self.assertTypeError(self.parser.add_option, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
351 "invalid arguments", None, None) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
352 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
353 def test_get_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
354 opt1 = self.parser.get_option("-v") |
|
58473
71acd4482e65
Merged revisions 77727 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
355 self.assertIsInstance(opt1, Option) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
356 self.assertEqual(opt1._short_opts, ["-v", "-n"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
357 self.assertEqual(opt1._long_opts, ["--verbose", "--noisy"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
358 self.assertEqual(opt1.action, "store_true") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
359 self.assertEqual(opt1.dest, "verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
360 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
361 def test_get_option_equals(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
362 opt1 = self.parser.get_option("-v") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
363 opt2 = self.parser.get_option("--verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
364 opt3 = self.parser.get_option("-n") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
365 opt4 = self.parser.get_option("--noisy") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
366 self.assertTrue(opt1 is opt2 is opt3 is opt4) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
367 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
368 def test_has_option(self): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
369 self.assertTrue(self.parser.has_option("-v")) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
370 self.assertTrue(self.parser.has_option("--verbose")) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
371 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
372 def assertTrueremoved(self): |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
373 self.assertTrue(self.parser.get_option("-v") is None) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
374 self.assertTrue(self.parser.get_option("--verbose") is None) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
375 self.assertTrue(self.parser.get_option("-n") is None) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
376 self.assertTrue(self.parser.get_option("--noisy") is None) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
377 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
378 self.assertFalse(self.parser.has_option("-v")) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
379 self.assertFalse(self.parser.has_option("--verbose")) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
380 self.assertFalse(self.parser.has_option("-n")) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
381 self.assertFalse(self.parser.has_option("--noisy")) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
382 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
383 self.assertTrue(self.parser.has_option("-q")) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
384 self.assertTrue(self.parser.has_option("--silent")) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
385 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
386 def test_remove_short_opt(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
387 self.parser.remove_option("-n") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
388 self.assertTrueremoved() |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
389 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
390 def test_remove_long_opt(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
391 self.parser.remove_option("--verbose") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
392 self.assertTrueremoved() |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
393 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
394 def test_remove_nonexistent(self): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
395 self.assertRaises(self.parser.remove_option, ('foo',), None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
396 ValueError, "no such option 'foo'") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
397 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
398 def test_refleak(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
399 # If an OptionParser is carrying around a reference to a large |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
400 # object, various cycles can prevent it from being GC'd in |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
401 # a timely fashion. destroy() breaks the cycles to ensure stuff |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
402 # can be cleaned up. |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
403 big_thing = [42] |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
404 refcount = sys.getrefcount(big_thing) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
405 parser = OptionParser() |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
406 parser.add_option("-a", "--aaarggh") |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
407 parser.big_thing = big_thing |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
408 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
409 parser.destroy() |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
410 #self.assertEqual(refcount, sys.getrefcount(big_thing)) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
411 del parser |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
412 self.assertEqual(refcount, sys.getrefcount(big_thing)) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
413 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
414 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
415 class TestOptionValues(BaseTest): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
416 def setUp(self): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
417 pass |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
418 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
419 def test_basics(self): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
420 values = Values() |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
421 self.assertEqual(vars(values), {}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
422 self.assertEqual(values, {}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
423 self.assertNotEqual(values, {"foo": "bar"}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
424 self.assertNotEqual(values, "") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
425 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
426 dict = {"foo": "bar", "baz": 42} |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
427 values = Values(defaults=dict) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
428 self.assertEqual(vars(values), dict) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
429 self.assertEqual(values, dict) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
430 self.assertNotEqual(values, {"foo": "bar"}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
431 self.assertNotEqual(values, {}) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
432 self.assertNotEqual(values, "") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
433 self.assertNotEqual(values, []) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
434 |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
435 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
436 class TestTypeAliases(BaseTest): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
437 def setUp(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
438 self.parser = OptionParser() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
439 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
440 def test_str_aliases_string(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
441 self.parser.add_option("-s", type="str") |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
63446
diff
changeset
|
442 self.assertEqual(self.parser.get_option("-s").type, "string") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
443 |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
444 def test_type_object(self): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
445 self.parser.add_option("-s", type=str) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
63446
diff
changeset
|
446 self.assertEqual(self.parser.get_option("-s").type, "string") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
447 self.parser.add_option("-x", type=int) |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
63446
diff
changeset
|
448 self.assertEqual(self.parser.get_option("-x").type, "int") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
449 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
450 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
451 # Custom type for testing processing of default values. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
452 _time_units = { 's' : 1, 'm' : 60, 'h' : 60*60, 'd' : 60*60*24 } |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
453 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
454 def _check_duration(option, opt, value): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
455 try: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
456 if value[-1].isdigit(): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
457 return int(value) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
458 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
459 return int(value[:-1]) * _time_units[value[-1]] |
|
59613
77c71f258df7
Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents:
59521
diff
changeset
|
460 except (ValueError, IndexError): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
461 raise OptionValueError( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
462 'option %s: invalid duration: %r' % (opt, value)) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
463 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
464 class DurationOption(Option): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
465 TYPES = Option.TYPES + ('duration',) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
466 TYPE_CHECKER = copy.copy(Option.TYPE_CHECKER) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
467 TYPE_CHECKER['duration'] = _check_duration |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
468 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
469 class TestDefaultValues(BaseTest): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
470 def setUp(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
471 self.parser = OptionParser() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
472 self.parser.add_option("-v", "--verbose", default=True) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
473 self.parser.add_option("-q", "--quiet", dest='verbose') |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
474 self.parser.add_option("-n", type="int", default=37) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
475 self.parser.add_option("-m", type="int") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
476 self.parser.add_option("-s", default="foo") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
477 self.parser.add_option("-t") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
478 self.parser.add_option("-u", default=None) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
479 self.expected = { 'verbose': True, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
480 'n': 37, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
481 'm': None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
482 's': "foo", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
483 't': None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
484 'u': None } |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
485 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
486 def test_basic_defaults(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
487 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
488 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
489 def test_mixed_defaults_post(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
490 self.parser.set_defaults(n=42, m=-100) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
491 self.expected.update({'n': 42, 'm': -100}) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
492 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
493 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
494 def test_mixed_defaults_pre(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
495 self.parser.set_defaults(x="barf", y="blah") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
496 self.parser.add_option("-x", default="frob") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
497 self.parser.add_option("-y") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
498 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
499 self.expected.update({'x': "frob", 'y': "blah"}) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
500 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
501 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
502 self.parser.remove_option("-y") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
503 self.parser.add_option("-y", default=None) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
504 self.expected.update({'y': None}) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
505 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
506 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
507 def test_process_default(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
508 self.parser.option_class = DurationOption |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
509 self.parser.add_option("-d", type="duration", default=300) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
510 self.parser.add_option("-e", type="duration", default="6m") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
511 self.parser.set_defaults(n="42") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
512 self.expected.update({'d': 300, 'e': 360, 'n': 42}) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
513 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
514 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
515 self.parser.set_process_default_values(False) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
516 self.expected.update({'d': 300, 'e': "6m", 'n': "42"}) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
517 self.assertEqual(self.parser.get_default_values(), self.expected) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
518 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
519 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
520 class TestProgName(BaseTest): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
521 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
522 Test that %prog expands to the right thing in usage, version, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
523 and help strings. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
524 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
525 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
526 def assertUsage(self, parser, expected_usage): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
527 self.assertEqual(parser.get_usage(), expected_usage) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
528 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
529 def assertVersion(self, parser, expected_version): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
530 self.assertEqual(parser.get_version(), expected_version) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
531 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
532 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
533 def test_default_progname(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
534 # Make sure that program name taken from sys.argv[0] by default. |
|
32872
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
535 save_argv = sys.argv[:] |
|
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
536 try: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
537 sys.argv[0] = os.path.join("foo", "bar", "baz.py") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
538 parser = OptionParser("%prog ...", version="%prog 1.2") |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
539 expected_usage = "Usage: baz.py ...\n" |
|
32872
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
540 self.assertUsage(parser, expected_usage) |
|
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
541 self.assertVersion(parser, "baz.py 1.2") |
|
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
542 self.assertHelp(parser, |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
543 expected_usage + "\n" + |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
544 "Options:\n" |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
545 " --version show program's version number and exit\n" |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
546 " -h, --help show this help message and exit\n") |
|
32872
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
547 finally: |
|
d013393c7d98
Be more careful about reverting mutuations to system-wide (sys) variables.
Tim Peters <tim.peters@gmail.com>
parents:
32870
diff
changeset
|
548 sys.argv[:] = save_argv |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
549 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
550 def test_custom_progname(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
551 parser = OptionParser(prog="thingy", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
552 version="%prog 0.1", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
553 usage="%prog arg arg") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
554 parser.remove_option("-h") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
555 parser.remove_option("--version") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
556 expected_usage = "Usage: thingy arg arg\n" |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
557 self.assertUsage(parser, expected_usage) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
558 self.assertVersion(parser, "thingy 0.1") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
559 self.assertHelp(parser, expected_usage + "\n") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
560 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
561 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
562 class TestExpandDefaults(BaseTest): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
563 def setUp(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
564 self.parser = OptionParser(prog="test") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
565 self.help_prefix = """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
566 Usage: test [options] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
567 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
568 Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
569 -h, --help show this help message and exit |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
570 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
571 self.file_help = "read from FILE [default: %default]" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
572 self.expected_help_file = self.help_prefix + \ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
573 " -f FILE, --file=FILE read from FILE [default: foo.txt]\n" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
574 self.expected_help_none = self.help_prefix + \ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
575 " -f FILE, --file=FILE read from FILE [default: none]\n" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
576 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
577 def test_option_default(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
578 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
579 default="foo.txt", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
580 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
581 self.assertHelp(self.parser, self.expected_help_file) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
582 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
583 def test_parser_default_1(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
584 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
585 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
586 self.parser.set_default('file', "foo.txt") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
587 self.assertHelp(self.parser, self.expected_help_file) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
588 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
589 def test_parser_default_2(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
590 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
591 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
592 self.parser.set_defaults(file="foo.txt") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
593 self.assertHelp(self.parser, self.expected_help_file) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
594 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
595 def test_no_default(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
596 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
597 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
598 self.assertHelp(self.parser, self.expected_help_none) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
599 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
600 def test_default_none_1(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
601 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
602 default=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
603 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
604 self.assertHelp(self.parser, self.expected_help_none) |
|
33848
3398c5ce8b7a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
33846
diff
changeset
|
605 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
606 def test_default_none_2(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
607 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
608 help=self.file_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
609 self.parser.set_defaults(file=None) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
610 self.assertHelp(self.parser, self.expected_help_none) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
611 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
612 def test_float_default(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
613 self.parser.add_option( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
614 "-p", "--prob", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
615 help="blow up with probability PROB [default: %default]") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
616 self.parser.set_defaults(prob=0.43) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
617 expected_help = self.help_prefix + \ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
618 " -p PROB, --prob=PROB blow up with probability PROB [default: 0.43]\n" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
619 self.assertHelp(self.parser, expected_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
620 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
621 def test_alt_expand(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
622 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
623 default="foo.txt", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
624 help="read from FILE [default: *DEFAULT*]") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
625 self.parser.formatter.default_tag = "*DEFAULT*" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
626 self.assertHelp(self.parser, self.expected_help_file) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
627 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
628 def test_no_expand(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
629 self.parser.add_option("-f", "--file", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
630 default="foo.txt", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
631 help="read from %default file") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
632 self.parser.formatter.default_tag = None |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
633 expected_help = self.help_prefix + \ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
634 " -f FILE, --file=FILE read from %default file\n" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
635 self.assertHelp(self.parser, expected_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
636 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
637 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
638 # -- Test parser.parse_args() ------------------------------------------ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
639 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
640 class TestStandard(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
641 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
642 options = [make_option("-a", type="string"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
643 make_option("-b", "--boo", type="int", dest='boo'), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
644 make_option("--foo", action="append")] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
645 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
646 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
647 option_list=options) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
648 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
649 def test_required_value(self): |
|
68767
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
68257
diff
changeset
|
650 self.assertParseFail(["-a"], "-a option requires 1 argument") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
651 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
652 def test_invalid_integer(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
653 self.assertParseFail(["-b", "5x"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
654 "option -b: invalid integer value: '5x'") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
655 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
656 def test_no_such_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
657 self.assertParseFail(["--boo13"], "no such option: --boo13") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
658 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
659 def test_long_invalid_integer(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
660 self.assertParseFail(["--boo=x5"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
661 "option --boo: invalid integer value: 'x5'") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
662 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
663 def test_empty(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
664 self.assertParseOK([], {'a': None, 'boo': None, 'foo': None}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
665 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
666 def test_shortopt_empty_longopt_append(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
667 self.assertParseOK(["-a", "", "--foo=blah", "--foo="], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
668 {'a': "", 'boo': None, 'foo': ["blah", ""]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
669 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
670 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
671 def test_long_option_append(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
672 self.assertParseOK(["--foo", "bar", "--foo", "", "--foo=x"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
673 {'a': None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
674 'boo': None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
675 'foo': ["bar", "", "x"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
676 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
677 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
678 def test_option_argument_joined(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
679 self.assertParseOK(["-abc"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
680 {'a': "bc", 'boo': None, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
681 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
682 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
683 def test_option_argument_split(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
684 self.assertParseOK(["-a", "34"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
685 {'a': "34", 'boo': None, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
686 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
687 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
688 def test_option_argument_joined_integer(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
689 self.assertParseOK(["-b34"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
690 {'a': None, 'boo': 34, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
691 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
692 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
693 def test_option_argument_split_negative_integer(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
694 self.assertParseOK(["-b", "-5"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
695 {'a': None, 'boo': -5, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
696 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
697 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
698 def test_long_option_argument_joined(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
699 self.assertParseOK(["--boo=13"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
700 {'a': None, 'boo': 13, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
701 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
702 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
703 def test_long_option_argument_split(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
704 self.assertParseOK(["--boo", "111"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
705 {'a': None, 'boo': 111, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
706 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
707 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
708 def test_long_option_short_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
709 self.assertParseOK(["--foo=bar", "-axyz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
710 {'a': 'xyz', 'boo': None, 'foo': ["bar"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
711 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
712 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
713 def test_abbrev_long_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
714 self.assertParseOK(["--f=bar", "-axyz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
715 {'a': 'xyz', 'boo': None, 'foo': ["bar"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
716 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
717 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
718 def test_defaults(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
719 (options, args) = self.parser.parse_args([]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
720 defaults = self.parser.get_default_values() |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
721 self.assertEqual(vars(defaults), vars(options)) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
722 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
723 def test_ambiguous_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
724 self.parser.add_option("--foz", action="store", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
725 type="string", dest="foo") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
726 self.assertParseFail(["--f=bar"], |
| 38464 | 727 "ambiguous option: --f (--foo, --foz?)") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
728 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
729 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
730 def test_short_and_long_option_split(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
731 self.assertParseOK(["-a", "xyz", "--foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
732 {'a': 'xyz', 'boo': None, 'foo': ["bar"]}, |
|
82958
33bdd0a985b9
Issue #17516: do not create useless tuple: remove dummy commas in tests
Victor Stinner <victor.stinner@gmail.com>
parents:
78124
diff
changeset
|
733 []) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
734 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
735 def test_short_option_split_long_option_append(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
736 self.assertParseOK(["--foo=bar", "-b", "123", "--foo", "baz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
737 {'a': None, 'boo': 123, 'foo': ["bar", "baz"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
738 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
739 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
740 def test_short_option_split_one_positional_arg(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
741 self.assertParseOK(["-a", "foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
742 {'a': "foo", 'boo': None, 'foo': None}, |
|
82958
33bdd0a985b9
Issue #17516: do not create useless tuple: remove dummy commas in tests
Victor Stinner <victor.stinner@gmail.com>
parents:
78124
diff
changeset
|
743 ["bar"]) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
744 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
745 def test_short_option_consumes_separator(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
746 self.assertParseOK(["-a", "--", "foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
747 {'a': "--", 'boo': None, 'foo': None}, |
|
82958
33bdd0a985b9
Issue #17516: do not create useless tuple: remove dummy commas in tests
Victor Stinner <victor.stinner@gmail.com>
parents:
78124
diff
changeset
|
748 ["foo", "bar"]) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
749 self.assertParseOK(["-a", "--", "--foo", "bar"], |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
750 {'a': "--", 'boo': None, 'foo': ["bar"]}, |
|
82958
33bdd0a985b9
Issue #17516: do not create useless tuple: remove dummy commas in tests
Victor Stinner <victor.stinner@gmail.com>
parents:
78124
diff
changeset
|
751 []) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
752 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
753 def test_short_option_joined_and_separator(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
754 self.assertParseOK(["-ab", "--", "--foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
755 {'a': "b", 'boo': None, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
756 ["--foo", "bar"]), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
757 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
758 def test_hyphen_becomes_positional_arg(self): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
759 self.assertParseOK(["-ab", "-", "--foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
760 {'a': "b", 'boo': None, 'foo': ["bar"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
761 ["-"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
762 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
763 def test_no_append_versus_append(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
764 self.assertParseOK(["-b3", "-b", "5", "--foo=bar", "--foo", "baz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
765 {'a': None, 'boo': 5, 'foo': ["bar", "baz"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
766 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
767 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
768 def test_option_consumes_optionlike_string(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
769 self.assertParseOK(["-a", "-b3"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
770 {'a': "-b3", 'boo': None, 'foo': None}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
771 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
772 |
|
62507
a456b00c3b75
Merged revisions 82234 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
55593
diff
changeset
|
773 def test_combined_single_invalid_option(self): |
|
a456b00c3b75
Merged revisions 82234 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
55593
diff
changeset
|
774 self.parser.add_option("-t", action="store_true") |
|
a456b00c3b75
Merged revisions 82234 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
55593
diff
changeset
|
775 self.assertParseFail(["-test"], |
|
62515
1dcae52c495c
Merged revisions 82244 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
62507
diff
changeset
|
776 "no such option: -e") |
|
62507
a456b00c3b75
Merged revisions 82234 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
55593
diff
changeset
|
777 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
778 class TestBool(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
779 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
780 options = [make_option("-v", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
781 "--verbose", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
782 action="store_true", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
783 dest="verbose", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
784 default=''), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
785 make_option("-q", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
786 "--quiet", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
787 action="store_false", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
788 dest="verbose")] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
789 self.parser = OptionParser(option_list = options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
790 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
791 def test_bool_default(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
792 self.assertParseOK([], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
793 {'verbose': ''}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
794 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
795 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
796 def test_bool_false(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
797 (options, args) = self.assertParseOK(["-q"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
798 {'verbose': 0}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
799 []) |
|
63446
0dcae455ec07
Merged revisions 83352,83355-83358,83362,83366,83368-83369 via svnmerge from
Georg Brandl <georg@python.org>
parents:
62515
diff
changeset
|
800 self.assertTrue(options.verbose is False) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
801 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
802 def test_bool_true(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
803 (options, args) = self.assertParseOK(["-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
804 {'verbose': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
805 []) |
|
63446
0dcae455ec07
Merged revisions 83352,83355-83358,83362,83366,83368-83369 via svnmerge from
Georg Brandl <georg@python.org>
parents:
62515
diff
changeset
|
806 self.assertTrue(options.verbose is True) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
807 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
808 def test_bool_flicker_on_and_off(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
809 self.assertParseOK(["-qvq", "-q", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
810 {'verbose': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
811 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
812 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
813 class TestChoice(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
814 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
815 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
816 self.parser.add_option("-c", action="store", type="choice", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
817 dest="choice", choices=["one", "two", "three"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
818 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
819 def test_valid_choice(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
820 self.assertParseOK(["-c", "one", "xyz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
821 {'choice': 'one'}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
822 ["xyz"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
823 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
824 def test_invalid_choice(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
825 self.assertParseFail(["-c", "four", "abc"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
826 "option -c: invalid choice: 'four' " |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
827 "(choose from 'one', 'two', 'three')") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
828 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
829 def test_add_choice_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
830 self.parser.add_option("-d", "--default", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
831 choices=["four", "five", "six"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
832 opt = self.parser.get_option("-d") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
833 self.assertEqual(opt.type, "choice") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
834 self.assertEqual(opt.action, "store") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
835 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
836 class TestCount(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
837 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
838 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
839 self.v_opt = make_option("-v", action="count", dest="verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
840 self.parser.add_option(self.v_opt) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
841 self.parser.add_option("--verbose", type="int", dest="verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
842 self.parser.add_option("-q", "--quiet", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
843 action="store_const", dest="verbose", const=0) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
844 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
845 def test_empty(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
846 self.assertParseOK([], {'verbose': None}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
847 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
848 def test_count_one(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
849 self.assertParseOK(["-v"], {'verbose': 1}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
850 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
851 def test_count_three(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
852 self.assertParseOK(["-vvv"], {'verbose': 3}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
853 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
854 def test_count_three_apart(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
855 self.assertParseOK(["-v", "-v", "-v"], {'verbose': 3}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
856 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
857 def test_count_override_amount(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
858 self.assertParseOK(["-vvv", "--verbose=2"], {'verbose': 2}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
859 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
860 def test_count_override_quiet(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
861 self.assertParseOK(["-vvv", "--verbose=2", "-q"], {'verbose': 0}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
862 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
863 def test_count_overriding(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
864 self.assertParseOK(["-vvv", "--verbose=2", "-q", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
865 {'verbose': 1}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
866 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
867 def test_count_interspersed_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
868 self.assertParseOK(["--quiet", "3", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
869 {'verbose': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
870 ["3"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
871 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
872 def test_count_no_interspersed_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
873 self.parser.disable_interspersed_args() |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
874 self.assertParseOK(["--quiet", "3", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
875 {'verbose': 0}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
876 ["3", "-v"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
877 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
878 def test_count_no_such_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
879 self.assertParseFail(["-q3", "-v"], "no such option: -3") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
880 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
881 def test_count_option_no_value(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
882 self.assertParseFail(["--quiet=3", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
883 "--quiet option does not take a value") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
884 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
885 def test_count_with_default(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
886 self.parser.set_default('verbose', 0) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
887 self.assertParseOK([], {'verbose':0}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
888 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
889 def test_count_overriding_default(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
890 self.parser.set_default('verbose', 0) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
891 self.assertParseOK(["-vvv", "--verbose=2", "-q", "-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
892 {'verbose': 1}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
893 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
894 class TestMultipleArgs(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
895 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
896 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
897 self.parser.add_option("-p", "--point", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
898 action="store", nargs=3, type="float", dest="point") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
899 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
900 def test_nargs_with_positional_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
901 self.assertParseOK(["foo", "-p", "1", "2.5", "-4.3", "xyz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
902 {'point': (1.0, 2.5, -4.3)}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
903 ["foo", "xyz"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
904 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
905 def test_nargs_long_opt(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
906 self.assertParseOK(["--point", "-1", "2.5", "-0", "xyz"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
907 {'point': (-1.0, 2.5, -0.0)}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
908 ["xyz"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
909 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
910 def test_nargs_invalid_float_value(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
911 self.assertParseFail(["-p", "1.0", "2x", "3.5"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
912 "option -p: " |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
913 "invalid floating-point value: '2x'") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
914 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
915 def test_nargs_required_values(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
916 self.assertParseFail(["--point", "1.0", "3.5"], |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
917 "--point option requires 3 arguments") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
918 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
919 class TestMultipleArgsAppend(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
920 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
921 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
922 self.parser.add_option("-p", "--point", action="store", nargs=3, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
923 type="float", dest="point") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
924 self.parser.add_option("-f", "--foo", action="append", nargs=2, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
925 type="int", dest="foo") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
926 self.parser.add_option("-z", "--zero", action="append_const", |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
927 dest="foo", const=(0, 0)) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
928 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
929 def test_nargs_append(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
930 self.assertParseOK(["-f", "4", "-3", "blah", "--foo", "1", "666"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
931 {'point': None, 'foo': [(4, -3), (1, 666)]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
932 ["blah"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
933 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
934 def test_nargs_append_required_values(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
935 self.assertParseFail(["-f4,3"], |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
936 "-f option requires 2 arguments") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
937 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
938 def test_nargs_append_simple(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
939 self.assertParseOK(["--foo=3", "4"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
940 {'point': None, 'foo':[(3, 4)]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
941 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
942 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
943 def test_nargs_append_const(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
944 self.assertParseOK(["--zero", "--foo", "3", "4", "-z"], |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
945 {'point': None, 'foo':[(0, 0), (3, 4), (0, 0)]}, |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
946 []) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
947 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
948 class TestVersion(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
949 def test_version(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
950 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
951 version="%prog 0.1") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
952 save_argv = sys.argv[:] |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
953 try: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
954 sys.argv[0] = os.path.join(os.curdir, "foo", "bar") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
955 self.assertOutput(["--version"], "bar 0.1\n") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
956 finally: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
957 sys.argv[:] = save_argv |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
958 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
959 def test_no_version(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
960 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
961 self.assertParseFail(["--version"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
962 "no such option: --version") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
963 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
964 # -- Test conflicting default values and parser.parse_args() ----------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
965 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
966 class TestConflictingDefaults(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
967 """Conflicting default values: the last one should win.""" |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
968 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
969 self.parser = OptionParser(option_list=[ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
970 make_option("-v", action="store_true", dest="verbose", default=1)]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
971 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
972 def test_conflict_default(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
973 self.parser.add_option("-q", action="store_false", dest="verbose", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
974 default=0) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
975 self.assertParseOK([], {'verbose': 0}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
976 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
977 def test_conflict_default_none(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
978 self.parser.add_option("-q", action="store_false", dest="verbose", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
979 default=None) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
980 self.assertParseOK([], {'verbose': None}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
981 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
982 class TestOptionGroup(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
983 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
984 self.parser = OptionParser(usage=SUPPRESS_USAGE) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
985 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
986 def test_option_group_create_instance(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
987 group = OptionGroup(self.parser, "Spam") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
988 self.parser.add_option_group(group) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
989 group.add_option("--spam", action="store_true", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
990 help="spam spam spam spam") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
991 self.assertParseOK(["--spam"], {'spam': 1}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
992 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
993 def test_add_group_no_group(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
994 self.assertTypeError(self.parser.add_option_group, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
995 "not an OptionGroup instance: None", None) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
996 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
997 def test_add_group_invalid_arguments(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
998 self.assertTypeError(self.parser.add_option_group, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
999 "invalid arguments", None, None) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1000 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1001 def test_add_group_wrong_parser(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1002 group = OptionGroup(self.parser, "Spam") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1003 group.parser = OptionParser() |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1004 self.assertRaises(self.parser.add_option_group, (group,), None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1005 ValueError, "invalid OptionGroup (wrong parser)") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1006 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1007 def test_group_manipulate(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1008 group = self.parser.add_option_group("Group 2", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1009 description="Some more options") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1010 group.set_title("Bacon") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1011 group.add_option("--bacon", type="int") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1012 self.assertTrue(self.parser.get_option_group("--bacon"), group) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1013 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1014 # -- Test extending and parser.parse_args() ---------------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1015 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1016 class TestExtendAddTypes(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1017 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1018 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1019 option_class=self.MyOption) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1020 self.parser.add_option("-a", None, type="string", dest="a") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1021 self.parser.add_option("-f", "--file", type="file", dest="file") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1022 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1023 def tearDown(self): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1024 if os.path.isdir(support.TESTFN): |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1025 os.rmdir(support.TESTFN) |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1026 elif os.path.isfile(support.TESTFN): |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1027 os.unlink(support.TESTFN) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1028 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1029 class MyOption (Option): |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1030 def check_file(option, opt, value): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1031 if not os.path.exists(value): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1032 raise OptionValueError("%s: file does not exist" % value) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1033 elif not os.path.isfile(value): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1034 raise OptionValueError("%s: not a regular file" % value) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1035 return value |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1036 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1037 TYPES = Option.TYPES + ("file",) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1038 TYPE_CHECKER = copy.copy(Option.TYPE_CHECKER) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1039 TYPE_CHECKER["file"] = check_file |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1040 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1041 def test_filetype_ok(self): |
|
71103
0c49260e85a0
Issue #12451: Add support.create_empty_file()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
68767
diff
changeset
|
1042 support.create_empty_file(support.TESTFN) |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1043 self.assertParseOK(["--file", support.TESTFN, "-afoo"], |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1044 {'file': support.TESTFN, 'a': 'foo'}, |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1045 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1046 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1047 def test_filetype_noexist(self): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1048 self.assertParseFail(["--file", support.TESTFN, "-afoo"], |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1049 "%s: file does not exist" % |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1050 support.TESTFN) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1051 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1052 def test_filetype_notfile(self): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1053 os.mkdir(support.TESTFN) |
|
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1054 self.assertParseFail(["--file", support.TESTFN, "-afoo"], |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1055 "%s: not a regular file" % |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1056 support.TESTFN) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1057 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1058 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1059 class TestExtendAddActions(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1060 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1061 options = [self.MyOption("-a", "--apple", action="extend", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1062 type="string", dest="apple")] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1063 self.parser = OptionParser(option_list=options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1064 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1065 class MyOption (Option): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1066 ACTIONS = Option.ACTIONS + ("extend",) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1067 STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1068 TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1069 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1070 def take_action(self, action, dest, opt, value, values, parser): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1071 if action == "extend": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1072 lvalue = value.split(",") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1073 values.ensure_value(dest, []).extend(lvalue) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1074 else: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1075 Option.take_action(self, action, dest, opt, parser, value, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1076 values) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1077 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1078 def test_extend_add_action(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1079 self.assertParseOK(["-afoo,bar", "--apple=blah"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1080 {'apple': ["foo", "bar", "blah"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1081 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1082 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1083 def test_extend_add_action_normal(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1084 self.assertParseOK(["-a", "foo", "-abar", "--apple=x,y"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1085 {'apple': ["foo", "bar", "x", "y"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1086 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1087 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1088 # -- Test callbacks and parser.parse_args() ---------------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1089 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1090 class TestCallback(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1091 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1092 options = [make_option("-x", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1093 None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1094 action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1095 callback=self.process_opt), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1096 make_option("-f", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1097 "--file", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1098 action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1099 callback=self.process_opt, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1100 type="string", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1101 dest="filename")] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1102 self.parser = OptionParser(option_list=options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1103 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1104 def process_opt(self, option, opt, value, parser_): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1105 if opt == "-x": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1106 self.assertEqual(option._short_opts, ["-x"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1107 self.assertEqual(option._long_opts, []) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1108 self.assertTrue(parser_ is self.parser) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1109 self.assertTrue(value is None) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1110 self.assertEqual(vars(parser_.values), {'filename': None}) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1111 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1112 parser_.values.x = 42 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1113 elif opt == "--file": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1114 self.assertEqual(option._short_opts, ["-f"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1115 self.assertEqual(option._long_opts, ["--file"]) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1116 self.assertTrue(parser_ is self.parser) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1117 self.assertEqual(value, "foo") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1118 self.assertEqual(vars(parser_.values), {'filename': None, 'x': 42}) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1119 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1120 setattr(parser_.values, option.dest, value) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1121 else: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1122 self.fail("Unknown option %r in process_opt." % opt) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1123 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1124 def test_callback(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1125 self.assertParseOK(["-x", "--file=foo"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1126 {'filename': "foo", 'x': 42}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1127 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1128 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1129 def test_callback_help(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1130 # This test was prompted by SF bug #960515 -- the point is |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1131 # not to inspect the help text, just to make sure that |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1132 # format_help() doesn't crash. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1133 parser = OptionParser(usage=SUPPRESS_USAGE) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1134 parser.remove_option("-h") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1135 parser.add_option("-t", "--test", action="callback", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1136 callback=lambda: None, type="string", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1137 help="foo") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1138 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1139 expected_help = ("Options:\n" |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1140 " -t TEST, --test=TEST foo\n") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1141 self.assertHelp(parser, expected_help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1142 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1143 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1144 class TestCallbackExtraArgs(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1145 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1146 options = [make_option("-p", "--point", action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1147 callback=self.process_tuple, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1148 callback_args=(3, int), type="string", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1149 dest="points", default=[])] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1150 self.parser = OptionParser(option_list=options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1151 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1152 def process_tuple(self, option, opt, value, parser_, len, type): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1153 self.assertEqual(len, 3) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1154 self.assertTrue(type is int) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1155 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1156 if opt == "-p": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1157 self.assertEqual(value, "1,2,3") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1158 elif opt == "--point": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1159 self.assertEqual(value, "4,5,6") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1160 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1161 value = tuple(map(type, value.split(","))) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1162 getattr(parser_.values, option.dest).append(value) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1163 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1164 def test_callback_extra_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1165 self.assertParseOK(["-p1,2,3", "--point", "4,5,6"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1166 {'points': [(1,2,3), (4,5,6)]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1167 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1168 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1169 class TestCallbackMeddleArgs(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1170 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1171 options = [make_option(str(x), action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1172 callback=self.process_n, dest='things') |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1173 for x in range(-1, -6, -1)] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1174 self.parser = OptionParser(option_list=options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1175 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1176 # Callback that meddles in rargs, largs |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1177 def process_n(self, option, opt, value, parser_): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1178 # option is -3, -5, etc. |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1179 nargs = int(opt[1:]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1180 rargs = parser_.rargs |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1181 if len(rargs) < nargs: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1182 self.fail("Expected %d arguments for %s option." % (nargs, opt)) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1183 dest = parser_.values.ensure_value(option.dest, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1184 dest.append(tuple(rargs[0:nargs])) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1185 parser_.largs.append(nargs) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1186 del rargs[0:nargs] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1187 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1188 def test_callback_meddle_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1189 self.assertParseOK(["-1", "foo", "-3", "bar", "baz", "qux"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1190 {'things': [("foo",), ("bar", "baz", "qux")]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1191 [1, 3]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1192 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1193 def test_callback_meddle_args_separator(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1194 self.assertParseOK(["-2", "foo", "--"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1195 {'things': [('foo', '--')]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1196 [2]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1197 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1198 class TestCallbackManyArgs(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1199 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1200 options = [make_option("-a", "--apple", action="callback", nargs=2, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1201 callback=self.process_many, type="string"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1202 make_option("-b", "--bob", action="callback", nargs=3, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1203 callback=self.process_many, type="int")] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1204 self.parser = OptionParser(option_list=options) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1205 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1206 def process_many(self, option, opt, value, parser_): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1207 if opt == "-a": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1208 self.assertEqual(value, ("foo", "bar")) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1209 elif opt == "--apple": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1210 self.assertEqual(value, ("ding", "dong")) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1211 elif opt == "-b": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1212 self.assertEqual(value, (1, 2, 3)) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1213 elif opt == "--bob": |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1214 self.assertEqual(value, (-666, 42, 0)) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1215 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1216 def test_many_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1217 self.assertParseOK(["-a", "foo", "bar", "--apple", "ding", "dong", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1218 "-b", "1", "2", "3", "--bob", "-666", "42", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1219 "0"], |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1220 {"apple": None, "bob": None}, |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1221 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1222 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1223 class TestCallbackCheckAbbrev(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1224 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1225 self.parser = OptionParser() |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1226 self.parser.add_option("--foo-bar", action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1227 callback=self.check_abbrev) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1228 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1229 def check_abbrev(self, option, opt, value, parser): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1230 self.assertEqual(opt, "--foo-bar") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1231 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1232 def test_abbrev_callback_expansion(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1233 self.assertParseOK(["--foo"], {}, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1234 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1235 class TestCallbackVarArgs(BaseTest): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1236 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1237 options = [make_option("-a", type="int", nargs=2, dest="a"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1238 make_option("-b", action="store_true", dest="b"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1239 make_option("-c", "--callback", action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1240 callback=self.variable_args, dest="c")] |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1241 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1242 option_list=options) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1243 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1244 def variable_args(self, option, opt, value, parser): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1245 self.assertTrue(value is None) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1246 value = [] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1247 rargs = parser.rargs |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1248 while rargs: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1249 arg = rargs[0] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1250 if ((arg[:2] == "--" and len(arg) > 2) or |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1251 (arg[:1] == "-" and len(arg) > 1 and arg[1] != "-")): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1252 break |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1253 else: |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1254 value.append(arg) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1255 del rargs[0] |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1256 setattr(parser.values, option.dest, value) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1257 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1258 def test_variable_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1259 self.assertParseOK(["-a3", "-5", "--callback", "foo", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1260 {'a': (3, -5), 'b': None, 'c': ["foo", "bar"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1261 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1262 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1263 def test_consume_separator_stop_at_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1264 self.assertParseOK(["-c", "37", "--", "xxx", "-b", "hello"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1265 {'a': None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1266 'b': True, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1267 'c': ["37", "--", "xxx"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1268 ["hello"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1269 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1270 def test_positional_arg_and_variable_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1271 self.assertParseOK(["hello", "-c", "foo", "-", "bar"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1272 {'a': None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1273 'b': None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1274 'c':["foo", "-", "bar"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1275 ["hello"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1276 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1277 def test_stop_at_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1278 self.assertParseOK(["-c", "foo", "-b"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1279 {'a': None, 'b': True, 'c': ["foo"]}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1280 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1281 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1282 def test_stop_at_invalid_option(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1283 self.assertParseFail(["-c", "3", "-5", "-a"], "no such option: -5") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1284 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1285 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1286 # -- Test conflict handling and parser.parse_args() -------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1287 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1288 class ConflictBase(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1289 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1290 options = [make_option("-v", "--verbose", action="count", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1291 dest="verbose", help="increment verbosity")] |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1292 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1293 option_list=options) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1294 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1295 def show_version(self, option, opt, value, parser): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1296 parser.values.show_version = 1 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1297 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1298 class TestConflict(ConflictBase): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1299 """Use the default conflict resolution for Optik 1.2: error.""" |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1300 def assertTrueconflict_error(self, func): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1301 err = self.assertRaises( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1302 func, ("-v", "--version"), {'action' : "callback", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1303 'callback' : self.show_version, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1304 'help' : "show version"}, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1305 OptionConflictError, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1306 "option -v/--version: conflicting option string(s): -v") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1307 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1308 self.assertEqual(err.msg, "conflicting option string(s): -v") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1309 self.assertEqual(err.option_id, "-v/--version") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1310 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1311 def test_conflict_error(self): |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1312 self.assertTrueconflict_error(self.parser.add_option) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1313 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1314 def test_conflict_error_group(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1315 group = OptionGroup(self.parser, "Group 1") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1316 self.assertTrueconflict_error(group.add_option) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1317 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1318 def test_no_such_conflict_handler(self): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1319 self.assertRaises( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1320 self.parser.set_conflict_handler, ('foo',), None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1321 ValueError, "invalid conflict_resolution value 'foo'") |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1322 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1323 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1324 class TestConflictResolve(ConflictBase): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1325 def setUp(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1326 ConflictBase.setUp(self) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1327 self.parser.set_conflict_handler("resolve") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1328 self.parser.add_option("-v", "--version", action="callback", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1329 callback=self.show_version, help="show version") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1330 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1331 def test_conflict_resolve(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1332 v_opt = self.parser.get_option("-v") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1333 verbose_opt = self.parser.get_option("--verbose") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1334 version_opt = self.parser.get_option("--version") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1335 |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1336 self.assertTrue(v_opt is version_opt) |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53646
diff
changeset
|
1337 self.assertTrue(v_opt is not verbose_opt) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1338 self.assertEqual(v_opt._long_opts, ["--version"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1339 self.assertEqual(version_opt._short_opts, ["-v"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1340 self.assertEqual(version_opt._long_opts, ["--version"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1341 self.assertEqual(verbose_opt._short_opts, []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1342 self.assertEqual(verbose_opt._long_opts, ["--verbose"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1343 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1344 def test_conflict_resolve_help(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1345 self.assertOutput(["-h"], """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1346 Options: |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1347 --verbose increment verbosity |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1348 -h, --help show this help message and exit |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1349 -v, --version show version |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1350 """) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1351 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1352 def test_conflict_resolve_short_opt(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1353 self.assertParseOK(["-v"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1354 {'verbose': None, 'show_version': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1355 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1356 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1357 def test_conflict_resolve_long_opt(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1358 self.assertParseOK(["--verbose"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1359 {'verbose': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1360 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1361 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1362 def test_conflict_resolve_long_opts(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1363 self.assertParseOK(["--verbose", "--version"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1364 {'verbose': 1, 'show_version': 1}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1365 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1366 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1367 class TestConflictOverride(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1368 def setUp(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1369 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1370 self.parser.set_conflict_handler("resolve") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1371 self.parser.add_option("-n", "--dry-run", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1372 action="store_true", dest="dry_run", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1373 help="don't do anything") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1374 self.parser.add_option("--dry-run", "-n", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1375 action="store_const", const=42, dest="dry_run", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1376 help="dry run mode") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1377 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1378 def test_conflict_override_opts(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1379 opt = self.parser.get_option("--dry-run") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1380 self.assertEqual(opt._short_opts, ["-n"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1381 self.assertEqual(opt._long_opts, ["--dry-run"]) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1382 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1383 def test_conflict_override_help(self): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1384 self.assertOutput(["-h"], """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1385 Options: |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1386 -h, --help show this help message and exit |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1387 -n, --dry-run dry run mode |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1388 """) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1389 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1390 def test_conflict_override_args(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1391 self.assertParseOK(["-n"], |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1392 {'dry_run': 42}, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1393 []) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1394 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1395 # -- Other testing. ---------------------------------------------------- |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1396 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1397 _expected_help_basic = """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1398 Usage: bar.py [options] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1399 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1400 Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1401 -a APPLE throw APPLEs at basket |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1402 -b NUM, --boo=NUM shout "boo!" NUM times (in order to frighten away all the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1403 evil spirits that cause trouble and mayhem) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1404 --foo=FOO store FOO in the foo list for later fooing |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1405 -h, --help show this help message and exit |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1406 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1407 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1408 _expected_help_long_opts_first = """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1409 Usage: bar.py [options] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1410 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1411 Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1412 -a APPLE throw APPLEs at basket |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1413 --boo=NUM, -b NUM shout "boo!" NUM times (in order to frighten away all the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1414 evil spirits that cause trouble and mayhem) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1415 --foo=FOO store FOO in the foo list for later fooing |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1416 --help, -h show this help message and exit |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1417 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1418 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1419 _expected_help_title_formatter = """\ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1420 Usage |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1421 ===== |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1422 bar.py [options] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1423 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1424 Options |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1425 ======= |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1426 -a APPLE throw APPLEs at basket |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1427 --boo=NUM, -b NUM shout "boo!" NUM times (in order to frighten away all the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1428 evil spirits that cause trouble and mayhem) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1429 --foo=FOO store FOO in the foo list for later fooing |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1430 --help, -h show this help message and exit |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1431 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1432 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1433 _expected_help_short_lines = """\ |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1434 Usage: bar.py [options] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1435 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1436 Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1437 -a APPLE throw APPLEs at basket |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1438 -b NUM, --boo=NUM shout "boo!" NUM times (in order to |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1439 frighten away all the evil spirits |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1440 that cause trouble and mayhem) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1441 --foo=FOO store FOO in the foo list for later |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1442 fooing |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1443 -h, --help show this help message and exit |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1444 """ |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1445 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1446 class TestHelp(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1447 def setUp(self): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1448 self.parser = self.make_parser(80) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1449 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1450 def make_parser(self, columns): |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1451 options = [ |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1452 make_option("-a", type="string", dest='a', |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1453 metavar="APPLE", help="throw APPLEs at basket"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1454 make_option("-b", "--boo", type="int", dest='boo', |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1455 metavar="NUM", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1456 help= |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1457 "shout \"boo!\" NUM times (in order to frighten away " |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1458 "all the evil spirits that cause trouble and mayhem)"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1459 make_option("--foo", action="append", type="string", dest='foo', |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1460 help="store FOO in the foo list for later fooing"), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1461 ] |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1462 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1463 # We need to set COLUMNS for the OptionParser constructor, but |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1464 # we must restore its original value -- otherwise, this test |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1465 # screws things up for other tests when it's part of the Python |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1466 # test suite. |
|
53496
c42b7dd15505
test_support was renamed to support on py3k.
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents:
53492
diff
changeset
|
1467 with support.EnvironmentVarGuard() as env: |
|
53646
5c55b9c80846
Merged revisions 72167 via svnmerge from
Walter Dörwald <walter@livinglogic.de>
parents:
53496
diff
changeset
|
1468 env['COLUMNS'] = str(columns) |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1469 return InterceptingOptionParser(option_list=options) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1470 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1471 def assertHelpEquals(self, expected_output): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1472 save_argv = sys.argv[:] |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1473 try: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1474 # Make optparse believe bar.py is being executed. |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1475 sys.argv[0] = os.path.join("foo", "bar.py") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1476 self.assertOutput(["-h"], expected_output) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1477 finally: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33387
diff
changeset
|
1478 sys.argv[:] = save_argv |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1479 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1480 def test_help(self): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1481 self.assertHelpEquals(_expected_help_basic) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1482 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1483 def test_help_old_usage(self): |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1484 self.parser.set_usage("Usage: %prog [options]") |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1485 self.assertHelpEquals(_expected_help_basic) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1486 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1487 def test_help_long_opts_first(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1488 self.parser.formatter.short_first = 0 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1489 self.assertHelpEquals(_expected_help_long_opts_first) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1490 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1491 def test_help_title_formatter(self): |
|
53496
c42b7dd15505
test_support was renamed to support on py3k.
Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp>
parents:
53492
diff
changeset
|
1492 with support.EnvironmentVarGuard() as env: |
|
53646
5c55b9c80846
Merged revisions 72167 via svnmerge from
Walter Dörwald <walter@livinglogic.de>
parents:
53496
diff
changeset
|
1493 env["COLUMNS"] = "80" |
|
40643
47f9efdc0855
Merged revisions 53304-53433,53435-53450 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40626
diff
changeset
|
1494 self.parser.formatter = TitledHelpFormatter() |
|
47f9efdc0855
Merged revisions 53304-53433,53435-53450 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
40626
diff
changeset
|
1495 self.assertHelpEquals(_expected_help_title_formatter) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1496 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1497 def test_wrap_columns(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1498 # Ensure that wrapping respects $COLUMNS environment variable. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1499 # Need to reconstruct the parser, since that's the only time |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1500 # we look at $COLUMNS. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1501 self.parser = self.make_parser(60) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1502 self.assertHelpEquals(_expected_help_short_lines) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1503 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1504 def test_help_unicode(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1505 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE) |
|
41575
beacf40b5960
Rip out all the u"..." literals and calls to unicode().
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
1506 self.parser.add_option("-a", action="store_true", help="ol\u00E9!") |
|
beacf40b5960
Rip out all the u"..." literals and calls to unicode().
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
1507 expect = """\ |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1508 Options: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1509 -h, --help show this help message and exit |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1510 -a ol\u00E9! |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1511 """ |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1512 self.assertHelpEquals(expect) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1513 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1514 def test_help_unicode_description(self): |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1515 self.parser = InterceptingOptionParser(usage=SUPPRESS_USAGE, |
|
41575
beacf40b5960
Rip out all the u"..." literals and calls to unicode().
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
1516 description="ol\u00E9!") |
|
beacf40b5960
Rip out all the u"..." literals and calls to unicode().
Guido van Rossum <guido@python.org>
parents:
41554
diff
changeset
|
1517 expect = """\ |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1518 ol\u00E9! |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1519 |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1520 Options: |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1521 -h, --help show this help message and exit |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1522 """ |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1523 self.assertHelpEquals(expect) |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38464
diff
changeset
|
1524 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1525 def test_help_description_groups(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1526 self.parser.set_description( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1527 "This is the program description for %prog. %prog has " |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1528 "an option group as well as single options.") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1529 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1530 group = OptionGroup( |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1531 self.parser, "Dangerous Options", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1532 "Caution: use of these options is at your own risk. " |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1533 "It is believed that some of them bite.") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1534 group.add_option("-g", action="store_true", help="Group option.") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1535 self.parser.add_option_group(group) |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1536 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1537 expect = """\ |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1538 Usage: bar.py [options] |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1539 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1540 This is the program description for bar.py. bar.py has an option group as |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1541 well as single options. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1542 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1543 Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1544 -a APPLE throw APPLEs at basket |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1545 -b NUM, --boo=NUM shout "boo!" NUM times (in order to frighten away all the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1546 evil spirits that cause trouble and mayhem) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1547 --foo=FOO store FOO in the foo list for later fooing |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1548 -h, --help show this help message and exit |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1549 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1550 Dangerous Options: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1551 Caution: use of these options is at your own risk. It is believed |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1552 that some of them bite. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1553 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1554 -g Group option. |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1555 """ |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1556 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1557 self.assertHelpEquals(expect) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1558 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1559 self.parser.epilog = "Please report bugs to /dev/null." |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1560 self.assertHelpEquals(expect + "\nPlease report bugs to /dev/null.\n") |
|
33848
3398c5ce8b7a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
33846
diff
changeset
|
1561 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1562 |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1563 class TestMatchAbbrev(BaseTest): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1564 def test_match_abbrev(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1565 self.assertEqual(_match_abbrev("--f", |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1566 {"--foz": None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1567 "--foo": None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1568 "--fie": None, |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1569 "--f": None}), |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1570 "--f") |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1571 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1572 def test_match_abbrev_error(self): |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1573 s = "--f" |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1574 wordmap = {"--foz": None, "--foo": None, "--fie": None} |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1575 self.assertRaises( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1576 _match_abbrev, (s, wordmap), None, |
| 38464 | 1577 BadOptionError, "ambiguous option: --f (--fie, --foo, --foz?)") |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1578 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1579 |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1580 class TestParseNumber(BaseTest): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1581 def setUp(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1582 self.parser = InterceptingOptionParser() |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1583 self.parser.add_option("-n", type=int) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40643
diff
changeset
|
1584 self.parser.add_option("-l", type=int) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1585 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1586 def test_parse_num_fail(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1587 self.assertRaises( |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1588 _parse_num, ("", int), {}, |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1589 ValueError, |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1590 re.compile(r"invalid literal for int().*: '?'?")) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1591 self.assertRaises( |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40643
diff
changeset
|
1592 _parse_num, ("0xOoops", int), {}, |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1593 ValueError, |
|
42161
0eb840f2dafa
Make test_optparse pass.
Guido van Rossum <guido@python.org>
parents:
41986
diff
changeset
|
1594 re.compile(r"invalid literal for int().*: s?'?0xOoops'?")) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1595 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1596 def test_parse_num_ok(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1597 self.assertEqual(_parse_num("0", int), 0) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1598 self.assertEqual(_parse_num("0x10", int), 16) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40643
diff
changeset
|
1599 self.assertEqual(_parse_num("0XA", int), 10) |
|
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40643
diff
changeset
|
1600 self.assertEqual(_parse_num("010", int), 8) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1601 self.assertEqual(_parse_num("0b11", int), 3) |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40643
diff
changeset
|
1602 self.assertEqual(_parse_num("0b", int), 0) |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1603 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1604 def test_numeric_options(self): |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1605 self.assertParseOK(["-n", "42", "-l", "0x20"], |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1606 { "n": 42, "l": 0x20 }, []) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1607 self.assertParseOK(["-n", "0b0101", "-l010"], |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1608 { "n": 5, "l": 8 }, []) |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1609 self.assertParseFail(["-n008"], |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1610 "option -n: invalid integer value: '008'") |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1611 self.assertParseFail(["-l0b0123"], |
|
40626
4aee3f672f77
Merged the int/long unification branch, by very crude means (sorry Thomas!).
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
1612 "option -l: invalid integer value: '0b0123'") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1613 self.assertParseFail(["-l", "0x12x"], |
|
40626
4aee3f672f77
Merged the int/long unification branch, by very crude means (sorry Thomas!).
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
1614 "option -l: invalid integer value: '0x12x'") |
|
37929
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1615 |
|
88da84776119
Update optparse to Optik 1.5.1.
Greg Ward <gward@python.net>
parents:
37549
diff
changeset
|
1616 |
|
28917
1741af48fd9f
Combine the functionality of test_support.run_unittest()
Walter Dörwald <walter@livinglogic.de>
parents:
28706
diff
changeset
|
1617 def test_main(): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
45471
diff
changeset
|
1618 support.run_unittest(__name__) |
|
28706
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1619 |
|
52930be9dfea
Test suite for optparse. This is a slightly-edited copy of
Greg Ward <gward@python.net>
parents:
diff
changeset
|
1620 if __name__ == '__main__': |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
40644
diff
changeset
|
1621 test_main() |
