From b6a8f705b6b35f60dec5efd1d8f1ec4548958e7b Mon Sep 17 00:00:00 2001 From: ulif <uli@gnufix.de> Date: Wed, 28 Jan 2015 12:36:49 +0100 Subject: [PATCH] Test that main uses sys.argv. --- tests/test_diceware.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/test_diceware.py b/tests/test_diceware.py index bbfa953..01098e0 100644 --- a/tests/test_diceware.py +++ b/tests/test_diceware.py @@ -7,6 +7,16 @@ from diceware.diceware import ( ) +@pytest.fixture(scope="function") +def argv_handler(request): + """This fixture restores sys.argv after tests. + """ + _argv_stored = sys.argv + def teardown(): + sys.argv = _argv_stored + request.addfinalizer(teardown) + + class Test_GetWordList(object): def test_get_wordlist_en(self): @@ -105,3 +115,10 @@ class TestDicewareModule(object): ' -h, --help show this help message and exit\n' ' -n NUM, --num NUM number of words to concatenate. Default: 6\n' ) + + def test_main_argv(self, argv_handler): + # main() handles sys.argv if nothing is provided + sys.argv = ['diceware', '--help'] + with pytest.raises(SystemExit) as exc_info: + main() + assert exc_info.value.code == 0 -- GitLab