diff --git a/bin/run_tests_for_developer.sh b/bin/run_tests_for_developer.sh index 778dcf4..ef4d66e 100755 --- a/bin/run_tests_for_developer.sh +++ b/bin/run_tests_for_developer.sh @@ -1,7 +1,14 @@ #! /bin/sh +echo "Building container" docker build \ --build-arg INSTANT_CLIENT_ZIP=${INSTANT_CLIENT_ZIP} \ -t etlhelper-test-runner . || exit 1 + +echo "Flake8 checks" +docker run \ + etlhelper-test-runner flake8 etlhelper test || exit 1 + +echo "Unit and integration tests" docker run \ -e TEST_PG_PASSWORD="${TEST_PG_PASSWORD}" \ -e TEST_ORACLE_DBTYPE="${TEST_ORACLE_DBTYPE}" \ diff --git a/test/integration/db/test_sqlite.py b/test/integration/db/test_sqlite.py index f3969f3..11d3c97 100644 --- a/test/integration/db/test_sqlite.py +++ b/test/integration/db/test_sqlite.py @@ -23,13 +23,15 @@ def test_connect(sqlitedb): @pytest.mark.skipif(sys.platform != 'linux', reason='Requires Linux OS') -def test_bad_connect(): - if os.getenv('USER') == 'root': - # Don't run for root user, but don't mark as skipped either - return - db_params = DbParams(dbtype='SQLITE', filename='/cannot_write_to_root') - with pytest.raises(ETLHelperConnectionError): - connect(db_params) +def test_bad_connect(tmpdir): + # Attemping to create file in non-existent directory should fail + try: + db_params = DbParams(dbtype='SQLITE', filename='/does/not/exist') + with pytest.raises(ETLHelperConnectionError): + connect(db_params) + finally: + # Restore permissions prior to cleanup + os.chmod(tmpdir, 0o666) def test_bad_select(testdb_conn): diff --git a/test/unit/test_db_helpers.py b/test/unit/test_db_helpers.py index c528ef7..d12299b 100644 --- a/test/unit/test_db_helpers.py +++ b/test/unit/test_db_helpers.py @@ -11,21 +11,18 @@ from etlhelper.db_helper_factory import DB_HELPER_FACTORY from etlhelper.db_helpers import ( OracleDbHelper, - SqlServerDbHelper, - PostgresDbHelper, - SQLiteDbHelper ) # pylint: disable=missing-docstring ORACLEDB = DbParams(dbtype='ORACLE', host='server', port='1521', - dbname='testdb', username='testuser') + dbname='testdb', user='testuser') MSSQLDB = DbParams(dbtype='MSSQL', host='server', port='1521', dbname='testdb', - username='testuser', odbc_driver='test driver') + user='testuser', odbc_driver='test driver') POSTGRESDB = DbParams(dbtype='PG', host='server', port='1521', dbname='testdb', - username='testuser', odbc_driver='test driver') + user='testuser', odbc_driver='test driver') SQLITEDB = DbParams(dbtype='SQLITE', filename='/myfile.db')