Test args

This commit is contained in:
Jake Howard 2017-06-08 10:53:30 +01:00
parent f45f551bdf
commit 392703e3cb
2 changed files with 24 additions and 2 deletions

View file

@ -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)

22
tests/test_args.py Normal file
View file

@ -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)