Skip to content

Commit

Permalink
Adds a script testing for bug 23058
Browse files Browse the repository at this point in the history
  • Loading branch information
remram44 committed May 18, 2015
1 parent 5fc9d1f commit 3e73c60
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions scripts/test_bug_23058.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from __future__ import unicode_literals

import argparse
import unittest


class Test23058(unittest.TestCase):
def do_test_verbosity(self, parser, line, expected_verbosity):
try:
args = parser.parse_args(line.split())
except SystemExit:
self.fail("Parsing arguments failed")
self.assertEqual(args.verbosity, expected_verbosity)

def test_parents(self):
options = argparse.ArgumentParser(add_help=False)
options.add_argument('-v', '--verbose', action='count', default=1,
dest='verbosity')

parser = argparse.ArgumentParser(parents=[options])

subparsers = parser.add_subparsers()

command = subparsers.add_parser('command', parents=[options])

self.do_test_verbosity(parser, 'command', 1)
self.do_test_verbosity(parser, 'command -v', 2)
self.do_test_verbosity(parser, 'command -v -v', 3)
self.do_test_verbosity(parser, '-v command', 2) # FAILS
# arguments passed to main parser are *silently ignored*
self.do_test_verbosity(parser, '-v -v command', 3)
self.do_test_verbosity(parser, '-v -v command -v -v', 5)

def test_function(self):
def add_options(prs):
prs.add_argument('-v', '--verbose', action='count', default=1,
dest='verbosity')

parser = argparse.ArgumentParser()
add_options(parser)

subparsers = parser.add_subparsers()

command = subparsers.add_parser('command')
add_options(command)

self.do_test_verbosity(parser, 'command', 1)
self.do_test_verbosity(parser, 'command -v', 2)
self.do_test_verbosity(parser, 'command -v -v', 3)
self.do_test_verbosity(parser, '-v command', 2) # FAILS
# arguments passed to main parser are *silently ignored*
self.do_test_verbosity(parser, '-v -v command', 3)
self.do_test_verbosity(parser, '-v -v command -v -v', 5)


if __name__ == '__main__':
unittest.main()

0 comments on commit 3e73c60

Please sign in to comment.