diff --git a/CI/run_pytest.sh b/CI/run_pytest.sh
index 5da52d22d812c573b740329ac477b70e3562f5ab..baa7ef8e892fc2d9efdd30094917ca492017de3d 100644
--- a/CI/run_pytest.sh
+++ b/CI/run_pytest.sh
@@ -39,13 +39,10 @@ TEST_PASSED="$(echo "${TEST_PASSED}" | (grep -oP '\d*'))"
 if [[ -z "$TEST_FAILED" ]]; then
     TEST_FAILED=0
 fi
-#let "TEST_PASSED=${TEST_PASSED}-${TEST_FAILED}"
 (( TEST_PASSED=TEST_PASSED-TEST_FAILED ))
 # calculate metrics
 (( SUM=TEST_FAILED+TEST_PASSED ))
 (( TEST_PASSED_RATIO=TEST_PASSED*100/SUM ))
-#let "SUM=${TEST_FAILED}+${TEST_PASSED}"
-#let "TEST_PASSED_RATIO=${TEST_PASSED}*100/${SUM}"
 
 # report
 if [[ ${IS_FAILED} -eq 0 ]]; then
diff --git a/CI/run_pytest_coverage.sh b/CI/run_pytest_coverage.sh
index 0161a9c1a59264bf35667a98f3a67e7c68623989..45916427f1521843923fb94e49dc661241dc0369 100644
--- a/CI/run_pytest_coverage.sh
+++ b/CI/run_pytest_coverage.sh
@@ -1,17 +1,16 @@
 #!/usr/bin/env bash
 
 # run coverage twice, 1) for html deploy 2) for success evaluation
-python3.6 -m pytest --cov=src --cov-report html test/
-python3.6 -m pytest --cov=src --cov-report term test/ | tee coverage_results.out
+python3.6 -m pytest --cov=src --cov-report term  --cov-report html test/ | tee coverage_results.out
 
 IS_FAILED=$?
 
 # move html coverage report
 mkdir coverage/
 BRANCH_NAME=$( echo -e "${CI_COMMIT_REF_NAME////_}")
-mkdir coverage/${BRANCH_NAME}
-mkdir coverage/recent
-cp -r htmlcov/* coverage/${BRANCH_NAME}/.
+mkdir "coverage/${BRANCH_NAME}"
+mkdir "coverage/recent"
+cp -r htmlcov/* "coverage/${BRANCH_NAME}/."
 cp -r htmlcov/* coverage/recent/.
 if [[ "${CI_COMMIT_REF_NAME}" = "master" ]]; then
     cp -r htmlcov/* coverage/.
@@ -19,10 +18,10 @@ fi
 
 # extract coverage information
 COVERAGE_RATIO="$(grep -oP '\d+\%' coverage_results.out | tail -1)"
-COVERAGE_RATIO="$(echo ${COVERAGE_RATIO} | (grep -oP '\d*'))"
+COVERAGE_RATIO="$(echo "${COVERAGE_RATIO}" | (grep -oP '\d*'))"
 
 # report
-if [[ ${IS_FAILED} == 0 ]]; then
+if [[ ${IS_FAILED} -eq 0 ]]; then
     if [[ ${COVERAGE_RATIO} -lt ${COVERAGE_PASS_THRESHOLD} ]]; then
         echo "only ${COVERAGE_RATIO}% covered"
         echo "incomplete" > status.txt
diff --git a/src/helpers.py b/src/helpers.py
index 2ab628d739989f32735d5289d92c09a494cf5166..e977c9ae0da53c640405aa376a593281b485f46d 100644
--- a/src/helpers.py
+++ b/src/helpers.py
@@ -9,13 +9,12 @@ import logging
 import math
 import os
 import socket
-import sys
 import time
 
 import keras.backend as K
 import xarray as xr
 
-from typing import Dict, Callable
+from typing import Dict, Callable, Pattern, Union
 
 
 def to_list(arg):
@@ -157,7 +156,7 @@ def set_bootstrap_path(bootstrap_path, data_path, sampling):
 class PyTestRegex:
     """Assert that a given string meets some expectations."""
 
-    def __init__(self, pattern: str, flags: int = 0):
+    def __init__(self, pattern: Union[str, Pattern], flags: int = 0):
         self._regex = re.compile(pattern, flags)
 
     def __eq__(self, actual: str) -> bool: