#!/bin/bash set -e target="$1" html="$2" case "$target" in pylib) pythonpath="out/pylib" source="pylib/anki" outdir="out/coverage/python-pylib" tests="pylib/tests" threshold=65 ;; qt) pythonpath="pylib:out/pylib:out/qt:qt/tools" source="qt/aqt,qt/tools" outdir="out/coverage/python-qt" tests="qt/tests" threshold=20 ;; *) echo "Usage: $0 [pylib|qt] [--html]" exit 1 ;; esac mkdir -p "$outdir" PYTHONPATH="$pythonpath" ANKI_TEST_MODE=1 out/pyenv/bin/python -m coverage run \ --source="$source" --data-file="$outdir/.coverage" \ -m pytest -p no:cacheprovider "$tests" out/pyenv/bin/python -m coverage json \ --data-file="$outdir/.coverage" -o "$outdir/coverage-summary.json" out/pyenv/bin/python -m coverage report \ --data-file="$outdir/.coverage" --fail-under="$threshold" if [ "$html" = "--html" ]; then out/pyenv/bin/python -m coverage html \ --data-file="$outdir/.coverage" -d "$outdir/html" --fail-under="$threshold" echo "Python $target coverage report: $outdir/html/index.html" fi