File size: 1,465 Bytes
24c4def
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/bash

set -e

readarray -t IGNORED_FILES < $( dirname "$0" )/covignore.cfg

REUSE_COVERAGE_REPORT=${REUSE_COVERAGE_REPORT:-0}
REPO=${1:-"origin"}
BRANCH=${2:-"refactor_dev"}

git fetch $REPO $BRANCH

PY_FILES=""
for FILE_NAME in $(git diff --name-only ${REPO}/${BRANCH}); do
    # Only test python files in mmocr/ existing in current branch, and not ignored in covignore.cfg
    if [ ${FILE_NAME: -3} == ".py" ] && [ ${FILE_NAME:0:6} == "mmocr/" ] && [ -f "$FILE_NAME" ]; then
        IGNORED=false
        for IGNORED_FILE_NAME in "${IGNORED_FILES[@]}"; do
            # Skip blank lines
            if [ -z "$IGNORED_FILE_NAME" ]; then
                continue
            fi
            if [ "${IGNORED_FILE_NAME::1}" != "#" ] && [[ "$FILE_NAME" =~ $IGNORED_FILE_NAME ]]; then
                echo "Ignoring $FILE_NAME"
                IGNORED=true
                break
            fi
        done
        if [ "$IGNORED" = false ]; then
            PY_FILES="$PY_FILES $FILE_NAME"
        fi
    fi
done

# Only test the coverage when PY_FILES are not empty, otherwise they will test the entire project
if [ ! -z "${PY_FILES}" ]
then
    if [ "$REUSE_COVERAGE_REPORT" == "0" ]; then
        coverage run --branch --source mmocr -m pytest tests/
    fi
    coverage report --fail-under 90 -m $PY_FILES
    interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --ignore-magic --ignore-regex "__repr__" --fail-under 95 $PY_FILES
fi