mirror of
https://github.com/kuhyx/screen-locker.git
synced 2026-11-10 22:27:12 +01:00
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (flutter, flutter-analyze, ) (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (mypy, mypy, ) (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (pylint, pylint, ) (push) Waiting to run
pre-commit / pre-commit (${{ matrix.group }}) (rest, , mypy,pylint,flutter-analyze) (push) Waiting to run
Tests / test (push) Waiting to run
Tests / lock-popup-safety (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (0) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (1) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (2) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (3) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (4) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (5) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (6) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (7) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (8) (push) Waiting to run
Tests / flutter test (shard ${{ matrix.shard }}) (9) (push) Waiting to run
Tests / flutter-coverage (push) Blocked by required conditions
Tests / web-coverage (push) Waiting to run
repo-contract / repo contract (push) Waiting to run
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
53 lines
2.1 KiB
Bash
Executable File
53 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ============================================================================
|
|
# Run only the tests related to files changed vs HEAD (staged, unstaged and
|
|
# untracked). Quiet: failures plus a one-line summary. Falls back to the full
|
|
# suite when a change cannot be mapped to tests. Generated by repo_contract.
|
|
# ============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
cd "$(git rev-parse --show-toplevel)"
|
|
CHANGED=()
|
|
while IFS= read -r f; do
|
|
[[ -n "$f" && -e "$f" ]] && CHANGED+=("$f")
|
|
done < <({ git diff --name-only HEAD 2>/dev/null || true; git ls-files --others --exclude-standard; } | sort -u)
|
|
|
|
pytest_run() {
|
|
# addopts in pyproject adds -v and the 100% coverage bar, which a partial
|
|
# run can never meet; replace it with the flags the suite really needs.
|
|
python3 -m pytest -o addopts="--strict-markers --strict-config -p screen_locker.tests.test_sync_fixtures" \
|
|
-p no:sugar --no-cov "$@"
|
|
}
|
|
|
|
if grep -qs testmon pyproject.toml requirements*.txt; then
|
|
pytest_run --testmon -q --tb=short; exit $?
|
|
fi
|
|
|
|
full=0
|
|
tests=()
|
|
for f in "${CHANGED[@]}"; do
|
|
case "$f" in
|
|
*/conftest.py | conftest.py | pyproject.toml | requirements*.txt | pytest.ini | setup.cfg) full=1 ;;
|
|
*.py)
|
|
base="$(basename "$f" .py)"
|
|
base="${base#_}" # private modules (_foo.py) are tested by test_foo.py
|
|
if [[ "$base" == test_* || "$base" == *_test ]]; then
|
|
tests+=("$f")
|
|
else
|
|
while IFS= read -r t; do tests+=("$t"); done \
|
|
< <(git ls-files "*test_${base}*.py" "*test__${base}*.py" "*${base}_test.py")
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ $full -eq 0 && ${#CHANGED[@]} -eq 0 ]]; then echo "no changes vs HEAD: nothing to test"; exit 0; fi
|
|
if [[ $full -eq 0 && ${#tests[@]} -gt 0 ]]; then pytest_run -q --tb=short "${tests[@]}"; exit $?; fi
|
|
if [[ $full -eq 0 ]] && ! printf '%s\n' "${CHANGED[@]}" | grep -q '\.py$'; then
|
|
echo "no python changes: nothing to test"; exit 0
|
|
fi
|
|
echo "no mapped tests: running full suite"
|
|
pytest_run -q --tb=short
|