From a1b73867ea9a3cc50572ad779c12630bb6651176 Mon Sep 17 00:00:00 2001 From: Chris Kerr Date: Tue, 2 Apr 2019 22:06:26 +0200 Subject: [PATCH] Add a test that a sensible error is raised when MDBTools is not found This is the error that happens in issue #23 --- tests/test_Arbin.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/test_Arbin.py b/tests/test_Arbin.py index 9ceec8e..97c34a7 100644 --- a/tests/test_Arbin.py +++ b/tests/test_Arbin.py @@ -3,6 +3,7 @@ import os import sqlite3 import subprocess +import sys import pytest @@ -13,6 +14,19 @@ from galvani import res2sqlite have_mdbtools = (subprocess.call(['which', 'mdb-export'], stdout=None) == 0) +@pytest.mark.skipif(have_mdbtools, reason='This tests the failure when mdbtools is not installed') +def test_convert_Arbin_no_mdbtools(testdata_dir, tmpdir): + """Checks that the conversion fails with an appropriate error message.""" + res_file = os.path.join(testdata_dir, 'arbin1.res') + sqlite_file = os.path.join(str(tmpdir), 'arbin1.s3db') + if sys.version_info >= (3, 3): + expected_exception = FileNotFoundError + else: + expected_exception = OSError + with pytest.raises(expected_exception, match="No such file or directory: 'mdb-export'"): + res2sqlite.convert_arbin_to_sqlite(res_file, sqlite_file) + + @pytest.mark.skipif(not have_mdbtools, reason='Reading the Arbin file requires MDBTools') @pytest.mark.parametrize('basename', ['arbin1']) def test_convert_Arbin_to_sqlite(testdata_dir, tmpdir, basename):