#!/bin/bash
|
|
|
|
# Get current script path
|
|
SCRIPT_PATH="$(dirname -- "$(readlink -f -- "${0}")")"
|
|
# Activate OctoDNS Python venv
|
|
source "${SCRIPT_PATH}/common.sh"
|
|
|
|
SOURCE_DIR="octodns/"
|
|
|
|
# Don't allow disabling coverage
|
|
PRAGMA_OUTPUT=$(grep -r -I --line-number "# pragma: \+no.*cover" "$SOURCE_DIR" || echo)
|
|
PRAGMA_COUNT=$(echo "$PRAGMA_OUTPUT" | grep -c . || true)
|
|
PRAGMA_ALLOWED=5
|
|
if [ "$PRAGMA_COUNT" -ne "$PRAGMA_ALLOWED" ]; then
|
|
echo "Found $PRAGMA_COUNT instances of 'pragma: no cover' (no more than $PRAGMA_ALLOWED allowed):"
|
|
echo "$PRAGMA_OUTPUT"
|
|
echo "Code coverage should not be disabled, except for version handling blocks"
|
|
exit 1
|
|
fi
|
|
|
|
pytest \
|
|
--disable-network \
|
|
--cov-reset \
|
|
--cov=$SOURCE_DIR \
|
|
--cov-fail-under=100 \
|
|
--cov-report=html \
|
|
--cov-report=json \
|
|
--cov-report=xml \
|
|
--cov-report=term \
|
|
--cov-branch \
|
|
"$@"
|