From 392703e3cbe5bb6c446d20e654451ff4fba6c820 Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Thu, 8 Jun 2017 10:53:30 +0100 Subject: [PATCH] Test args --- md_pdf/args.py | 4 ++-- tests/test_args.py | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 tests/test_args.py diff --git a/md_pdf/args.py b/md_pdf/args.py index 3b42416..a576fc5 100644 --- a/md_pdf/args.py +++ b/md_pdf/args.py @@ -2,10 +2,10 @@ import argparse from md_pdf import __version__ -def parse_args(): +def parse_args(args=None): parser = argparse.ArgumentParser() parser.add_argument("-v", "--verbose", help="Set verbosity level (repeat argument)", action="count", default=0) parser.add_argument("--update-csl", help="Update CSL files", action="store_true") parser.add_argument("--version", action="version", version="%(prog)s {}".format(__version__)) parser.add_help = True - return parser.parse_args() + return parser.parse_args(args=args) diff --git a/tests/test_args.py b/tests/test_args.py new file mode 100644 index 0000000..359eba0 --- /dev/null +++ b/tests/test_args.py @@ -0,0 +1,22 @@ +from tests import BaseTestCase +from md_pdf.args import parse_args + + +class ArgParserTestCase(BaseTestCase): + def test_allows_no_args(self): + args = parse_args([]) + self.assertFalse(args.update_csl) + self.assertEqual(args.verbose, 0) + + def test_adds_verbosity(self): + args = parse_args(['-v']) + self.assertEqual(args.verbose, 1) + + def test_chains_verbosity(self): + for i in range(1, 10): + args = parse_args(['-' + ('v' * i)]) + self.assertEqual(args.verbose, i) + + def test_csl_update(self): + args = parse_args(['--update-csl']) + self.assertTrue(args.update_csl)