Fix a couple of bugs in executors. Use run_tests.sh as a pre commit
[python_utils.git] / tests / run_tests.sh
index 486bd4e220024cdc194b5441d82677cc4e869a08..5711b9ad362c930b609a8080b1e8376090be35c3 100755 (executable)
@@ -85,18 +85,20 @@ fi
 
 FAILED_TESTS=""
 if [ ${DOCTEST} -eq 1 ]; then
-    for doctest in $(grep -lR doctest ${ROOT}/*.py); do
-        BASE=$(basename ${doctest})
-        BASE="${BASE} (doctest)"
-        make_header "${BASE}" "${CYAN}"
-        OUT=$( python3 ${doctest} 2>&1 )
-        FAILED=$( echo "${OUT}" | grep '\*\*\*Test Failed\*\*\*' | wc -l )
-        if [ $FAILED == 0 ]; then
-            echo "OK"
-        else
-            echo -e "${FAILED}"
-            FAILURES=$((FAILURES+1))
-            FAILED_TESTS="${FAILED_TESTS}, ${BASE}"
+    for doctest in $(grep -lR doctest ${ROOT}/*); do
+        if [[ ${doctest} == *.py ]]; then
+            BASE=$(basename ${doctest})
+            BASE="${BASE} (doctest)"
+            make_header "${BASE}" "${CYAN}"
+            OUT=$( python3 ${doctest} 2>&1 )
+            FAILED=$( echo "${OUT}" | grep '\*\*\*Test Failed\*\*\*' | wc -l )
+            if [ $FAILED == 0 ]; then
+                echo "OK"
+            else
+                echo -e "${FAILED}"
+                FAILURES=$((FAILURES+1))
+                FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${doctest})"
+            fi
         fi
     done
 fi
@@ -109,7 +111,7 @@ if [ ${UNITTEST} -eq 1 ]; then
         ${test}
         if [ $? -ne 0 ]; then
             FAILURES=$((FAILURES+1))
-            FAILED_TESTS="${FAILED_TESTS}, ${BASE}"
+            FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
         fi
     done
 fi
@@ -122,13 +124,14 @@ if [ ${INTEGRATION} -eq 1 ]; then
         ${test}
         if [ $? -ne 0 ]; then
             FAILURES=$((FAILURES+1))
-            FAILED_TESTS="${FAILED_TESTS}, ${BASE}"
+            FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
         fi
     done
 fi
 
 if [ ${FAILURES} -ne 0 ]; then
-    FAILED_TESTS=$(echo ${FAILED_TESTS} | sed 's/^, //g')
+    FAILED_TESTS=$(echo ${FAILED_TESTS} | sed 's/^,/__/g')
+    FAILED_TESTS=$(echo ${FAILED_TESTS} | sed 's/,/\n__/g')
     if [ ${FAILURES} -eq 1 ]; then
         echo -e "${RED}There was ${FAILURES} failure:"
     else
@@ -136,6 +139,8 @@ if [ ${FAILURES} -ne 0 ]; then
     fi
     echo "${FAILED_TESTS}"
     echo -e "${NC}"
+    exit ${FAILURES}
 else
     echo -e "${BLACK}${ON_GREEN}Everything looks good.${NC}"
+    exit 0
 fi