diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 782494a5d52cc499d62054ea66255ed3c7df9dc0..ad541ff8bf7c8c67c079f9a26227a2e1b282012b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,6 +27,7 @@ linting: stage: test script: - flake8 refscrub + - flake8 tests python3.6: image: python:3.6 diff --git a/tests/test_data/020000005_0036EE80 b/tests/test_data/020000005_0036EE80 new file mode 100755 index 0000000000000000000000000000000000000000..39a43f34b818072f4a1ddff7b0f8b2997994d8fa Binary files /dev/null and b/tests/test_data/020000005_0036EE80 differ diff --git a/tests/test_data/scrubsum_test.txt b/tests/test_data/scrubsum_test.txt new file mode 100644 index 0000000000000000000000000000000000000000..866f43400361faf76981375916a92463b2493729 --- /dev/null +++ b/tests/test_data/scrubsum_test.txt @@ -0,0 +1,8 @@ +tests/test_data/020000005_0036EE80, 020000005_0036EE80 +OFFSET: 2478080 + OF: 2478080 +Good packets: 2420 = 2.36MB +IOErrors: 0 + SN: YR:DAY:HR -- YR:DAY:HR : Good Packets + 91F5: 16:100:02 -- 16:100:02 : 2420 + diff --git a/tests/test_refscrub.py b/tests/test_refscrub.py index 56529bb82f365b4239220491f8367b26e92d322d..c9920728833fc616d91d89943132f55d564c4551 100644 --- a/tests/test_refscrub.py +++ b/tests/test_refscrub.py @@ -3,22 +3,46 @@ """Tests for `refscrub` package.""" +import argparse +import os import unittest -import sys -try: - import refscrub -except ImportError: - pass +from unittest.mock import patch +from refscrub.refscrub import main + +TEST_DATA = "tests/test_data/020000005_0036EE80" +TEST_SUMMARY = "tests/test_data/scrubsum_test.txt" + +if os.path.isfile('scrubsum.txt'): + os.remove('scrubsum.txt') + class TestRefscrub(unittest.TestCase): """Tests for `refscrub` package.""" - def setUp(self): - """Set up test fixtures, if any.""" - - def tearDown(self): - """Tear down test fixtures, if any.""" + @patch('refscrub.refscrub.sys.exit', autospec=True) + @patch('argparse.ArgumentParser.parse_args', autospec=True) + def test_refscrub(self, mock_parser, mock_exit): + """Test basic functionality of refscrub""" + mock_parser.return_value = argparse.Namespace(EXTRACT=False, + PREFIX=None, + SUMMARY=False, + VERBOSE=False, + infile=[]) + main() + self.assertTrue(mock_exit.called, "sys.exit(1) never called - Failed " + "to exercise refscrub") - def test_import(self): - self.assertTrue('refscrub' in sys.modules, "Refscrub import failed!") + mock_parser.return_value = argparse.Namespace(EXTRACT=False, + PREFIX=None, + SUMMARY=True, + VERBOSE=False, + infile=[TEST_DATA]) + main() + self.assertTrue(os.path.isfile('scrubsum.txt'), "Error! Summary file " + "not created.") + with open("scrubsum.txt", "rt") as f_out: + out = f_out.readlines() + with open(TEST_SUMMARY, "rt") as f_test: + test = f_test.readlines() + self.assertEqual(out, test) diff --git a/tox.ini b/tox.ini index 90a1bcaedb744359310e321f0e074a66af3055de..9ff41874c14ef7ed806c09586cece3179e66d10e 100644 --- a/tox.ini +++ b/tox.ini @@ -5,6 +5,7 @@ envlist = py36, py37, py38, flake8 basepython = python deps = flake8 commands = flake8 refscrub + flake8 tests [testenv] commands = python -m unittest