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