From f3c06d000593abde76faadd2e7ff19fe09bdf813 Mon Sep 17 00:00:00 2001
From: Maeva Pourpoint <maeva@passcal.nmt.edu>
Date: Wed, 9 Sep 2020 16:16:27 -0600
Subject: [PATCH] Add unit tests to ensure code basic functionalities

---
 .gitlab-ci.yml       |  1 +
 tests/test_fixhdr.py | 25 +++++++++++++------------
 tox.ini              |  1 +
 3 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 98ff46b..7979b81 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,6 +27,7 @@ linting:
   stage: test
   script:
   - flake8 --ignore=F403,F405,F821,F841,W504 fixhdr
+  - flake8 tests
 
 python3.6:
   image: python:3.6
diff --git a/tests/test_fixhdr.py b/tests/test_fixhdr.py
index 7520eb4..dbe9358 100644
--- a/tests/test_fixhdr.py
+++ b/tests/test_fixhdr.py
@@ -4,21 +4,22 @@
 """Tests for `fixhdr` package."""
 
 import unittest
-import sys
 
-try:
-    import fixhdr
-except ImportError:
-     pass
+from unittest.mock import patch
+
 
 class TestFixhdr(unittest.TestCase):
     """Tests for `fixhdr` package."""
 
-    def setUp(self):
-        """Set up test fixtures, if any."""
-
-    def tearDown(self):
-        """Tear down test fixtures, if any."""
-
     def test_import(self):
-        self.assertTrue('fixhdr' in sys.modules, "Fixhdr import failed!")
+        """Test fixhdr import"""
+        with patch("sys.argv", ["fixhdr", "-#"]):
+            with self.assertRaises(SystemExit) as cmd:
+                try:
+                    import fixhdr.fixhdr as fx
+                    fx.Usage()
+                except ImportError as e:
+                    print(e)
+                    self.fail("fixhdr import failed")
+            self.assertEqual(cmd.exception.code, 0, "sys.exit(0) never called "
+                             "- Failed to exercise fixhdr")
diff --git a/tox.ini b/tox.ini
index dfe02e1..8ad663c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,6 +5,7 @@ envlist = py36, py37, py38, flake8
 basepython = python
 deps = flake8
 commands = flake8 --ignore=F403,F405,F821,F841,W504 fixhdr
+           flake8 tests
 
 [testenv]
 commands = python -m unittest
-- 
GitLab