Fix a couple of bugs in executors. Use run_tests.sh as a pre commit
[python_utils.git] / tests / run_tests.sh
index 6c418a2424c52dcfa293f09de52fbb00e4570ed8..5711b9ad362c930b609a8080b1e8376090be35c3 100755 (executable)
@@ -82,18 +82,23 @@ if [ $(expr ${DOCTEST} + ${UNITTEST} + ${INTEGRATION}) -eq 0 ]; then
     exit 2
 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))
+    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
@@ -106,6 +111,7 @@ if [ ${UNITTEST} -eq 1 ]; then
         ${test}
         if [ $? -ne 0 ]; then
             FAILURES=$((FAILURES+1))
+            FAILED_TESTS="${FAILED_TESTS},${BASE} (python3 ${test})"
         fi
     done
 fi
@@ -118,16 +124,23 @@ if [ ${INTEGRATION} -eq 1 ]; then
         ${test}
         if [ $? -ne 0 ]; then
             FAILURES=$((FAILURES+1))
+            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/,/\n__/g')
     if [ ${FAILURES} -eq 1 ]; then
-        echo -e "${RED}There was ${FAILURES} failure.${NC}"
+        echo -e "${RED}There was ${FAILURES} failure:"
     else
-        echo -e "${RED}There were ${FAILURES} failures.${NC}"
+        echo -e "${RED}There were ${FAILURES} failures:"
     fi
+    echo "${FAILED_TESTS}"
+    echo -e "${NC}"
+    exit ${FAILURES}
 else
-    echo -e "${GREEN}Everything looks good.${NC}"
+    echo -e "${BLACK}${ON_GREEN}Everything looks good.${NC}"
+    exit 0
 fi