MCPcopy Index your code
hub / github.com/python/cpython / __init__

Method __init__

Lib/test/test_argparse.py:238–335  ·  view source on GitHub ↗
(cls, name, bases, bodydict)

Source from the content-addressed store, hash-verified

236 """
237
238 def __init__(cls, name, bases, bodydict):
239 if name == 'ParserTestCase':
240 return
241
242 # default parser signature is empty
243 if not hasattr(cls, 'parser_signature'):
244 cls.parser_signature = Sig()
245 if not hasattr(cls, 'parser_class'):
246 cls.parser_class = ErrorRaisingArgumentParser
247
248 # ---------------------------------------
249 # functions for adding optional arguments
250 # ---------------------------------------
251 def no_groups(parser, argument_signatures):
252 """Add all arguments directly to the parser"""
253 for sig in argument_signatures:
254 parser.add_argument(*sig.args, **sig.kwargs)
255
256 def one_group(parser, argument_signatures):
257 """Add all arguments under a single group in the parser"""
258 group = parser.add_argument_group('foo')
259 for sig in argument_signatures:
260 group.add_argument(*sig.args, **sig.kwargs)
261
262 def many_groups(parser, argument_signatures):
263 """Add each argument in its own group to the parser"""
264 for i, sig in enumerate(argument_signatures):
265 group = parser.add_argument_group('foo:%i' % i)
266 group.add_argument(*sig.args, **sig.kwargs)
267
268 # --------------------------
269 # functions for parsing args
270 # --------------------------
271 def listargs(parser, args):
272 """Parse the args by passing in a list"""
273 return parser.parse_args(args)
274
275 def sysargs(parser, args):
276 """Parse the args by defaulting to sys.argv"""
277 old_sys_argv = sys.argv
278 sys.argv = [old_sys_argv[0]] + args
279 try:
280 return parser.parse_args()
281 finally:
282 sys.argv = old_sys_argv
283
284 # class that holds the combination of one optional argument
285 # addition method and one arg parsing method
286 class AddTests(object):
287
288 def __init__(self, tester_cls, add_arguments, parse_args):
289 self._add_arguments = add_arguments
290 self._parse_args = parse_args
291
292 add_arguments_name = self._add_arguments.__name__
293 parse_args_name = self._parse_args.__name__
294 for test_func in [self.test_failures, self.test_successes]:
295 func_name = test_func.__name__

Callers

nothing calls this directly

Calls 2

SigClass · 0.85
AddTestsClass · 0.70

Tested by

no test coverage detected