Fixes: 1) Remove obsolete `reboot` scripts for Unix and Windows to prevent redundancy; 2) Update Windows `test.ps1` to handle omitted coverage patterns and improve error feedback. Extra: 1) Refactor Windows scripts (`make-messages.ps1`, `compile-messages.ps1`, `backup.ps1`) to use shared utilities for better consistency and output formatting; 2) Add spinner-based progress indicators to enhance user experience in interactive environments.
76 lines
2.1 KiB
Bash
76 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
source ./scripts/Unix/starter.sh
|
|
|
|
report=""
|
|
omit_pattern='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*'
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
--report|-r)
|
|
if [ "${2-}" = "" ]; then
|
|
log_error "Error: --report/-r requires an argument: xml or html"
|
|
exit 1
|
|
fi
|
|
report="$2"
|
|
shift 2
|
|
;;
|
|
--report=*)
|
|
report="${1#*=}"
|
|
shift
|
|
;;
|
|
-r=*)
|
|
report="${1#*=}"
|
|
shift
|
|
;;
|
|
*)
|
|
log_error "Unknown argument: $1"
|
|
echo "Usage: $0 [--report|-r xml|html]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
case "${report:-}" in
|
|
"")
|
|
log_step "Running tests with coverage..."
|
|
|
|
log_info " → Erasing previous coverage data..."
|
|
if ! docker compose exec app uv run coverage erase; then
|
|
log_error "Failed to erase coverage data"
|
|
exit 1
|
|
fi
|
|
|
|
log_info " → Running tests..."
|
|
if ! docker compose exec app uv run coverage run --source='.' --omit="$omit_pattern" manage.py test; then
|
|
log_error "Tests failed"
|
|
exit 1
|
|
fi
|
|
|
|
log_info " → Generating coverage report..."
|
|
docker compose exec app uv run coverage report -m
|
|
;;
|
|
xml)
|
|
log_step "Generating XML coverage report..."
|
|
if docker compose exec app uv run coverage xml --omit="$omit_pattern"; then
|
|
log_success "XML coverage report generated"
|
|
else
|
|
log_error "Failed to generate XML coverage report"
|
|
exit 1
|
|
fi
|
|
;;
|
|
html)
|
|
log_step "Generating HTML coverage report..."
|
|
if docker compose exec app uv run coverage html --omit="$omit_pattern"; then
|
|
log_success "HTML coverage report generated"
|
|
else
|
|
log_error "Failed to generate HTML coverage report"
|
|
exit 1
|
|
fi
|
|
;;
|
|
*)
|
|
log_error "Invalid report type: $report (expected xml or html)"
|
|
exit 1
|
|
;;
|
|
esac
|