28 lines
804 B
Bash
Executable File
28 lines
804 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run the default QA suite (pytest, mypy, flake8, black --check).
|
|
# Additional arguments are forwarded to pytest.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-${0}}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
VENV_DIR="${PROJECT_ROOT}/.venv"
|
|
PYTHON_BIN="${VENV_DIR}/bin/python"
|
|
|
|
if [ ! -x "${PYTHON_BIN}" ]; then
|
|
echo "Virtualenv not found. Run 'bash scripts/bootstrap.sh' first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
CACHE_DIR="${PROJECT_ROOT}/bin/pycache"
|
|
mkdir -p "${CACHE_DIR}"
|
|
export PYTHONPYCACHEPREFIX="${CACHE_DIR}"
|
|
export PYTHONPATH="${PROJECT_ROOT}/src${PYTHONPATH:+:${PYTHONPATH}}"
|
|
|
|
PYTEST_ARGS=("$@")
|
|
|
|
"${PYTHON_BIN}" -m pytest "${PYTEST_ARGS[@]}"
|
|
"${PYTHON_BIN}" -m mypy src
|
|
"${VENV_DIR}/bin/flake8" src tests
|
|
"${VENV_DIR}/bin/black" --check src tests
|