Skip to content

Commit 0180f41

Browse files
stonebigclaude
andcommitted
ci: run the wppm test suite on push and pull request
The suite added in 2a16046 had nothing invoking it. This wires it up. Matrix over Python 3.13 and 3.14 on windows-latest, the versions WinPython currently ships. Path-filtered to wppm/, tests/ and pyproject.toml so distribution-build commits do not trigger it, plus workflow_dispatch for manual runs. Test dependencies are hash-pinned in tests/requir.wppmtest.txt and installed with --no-deps --require-hashes, matching build_wppm.yml: a new pytest release cannot change what CI does without a visible commit. The file was generated with wppm's own tooling (pip lock, then wheelhouse.pylock_to_req), and the workflow header records the command to refresh it. Verified before committing rather than on the first red run: the exact install line into a clean venv, then the suite on 3.14.6 and on 3.13.7 -- 64 passed on both -- and the workflow YAML parses. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 3a87d0e commit 0180f41

2 files changed

Lines changed: 67 additions & 0 deletions

File tree

.github/workflows/test_wppm.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: test_wppm
2+
# Runs the wppm test suite on every push and pull request touching wppm.
3+
#
4+
# Dependencies are hash-pinned, like build_wppm.yml, so a new pytest release
5+
# cannot change what CI does without a visible commit. To refresh them:
6+
# python -m pip lock -r <(printf 'pytest\npackaging\n') -o pylock.wppmtest.toml
7+
# python -X utf8 -c "from wppm import wheelhouse as wh; wh.pylock_to_req('pylock.wppmtest.toml', r'tests/requir.wppmtest.txt')"
8+
9+
on:
10+
push:
11+
paths:
12+
- 'wppm/**'
13+
- 'tests/**'
14+
- 'pyproject.toml'
15+
- '.github/workflows/test_wppm.yml'
16+
pull_request:
17+
paths:
18+
- 'wppm/**'
19+
- 'tests/**'
20+
- 'pyproject.toml'
21+
- '.github/workflows/test_wppm.yml'
22+
workflow_dispatch:
23+
24+
permissions: {}
25+
26+
env:
27+
PYTHONIOENCODING: utf-8
28+
29+
jobs:
30+
pytest:
31+
name: pytest on Python ${{ matrix.python-version }}
32+
runs-on: windows-latest
33+
strategy:
34+
fail-fast: false
35+
matrix:
36+
# the versions WinPython currently ships
37+
python-version: ['3.13', '3.14']
38+
39+
steps:
40+
- uses: actions/checkout@v6
41+
with:
42+
persist-credentials: false
43+
44+
- name: Install Python
45+
uses: actions/setup-python@v5
46+
with:
47+
python-version: ${{ matrix.python-version }}
48+
49+
- name: Install pinned test dependencies
50+
shell: bash
51+
run: python -m pip install --no-deps --require-hashes -r tests/requir.wppmtest.txt
52+
53+
- name: Run the test suite
54+
shell: bash
55+
run: python -m pytest -q

tests/requir.wppmtest.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
colorama==0.4.6 \
2+
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
3+
iniconfig==2.3.0 \
4+
--hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12
5+
packaging==26.3 \
6+
--hash=sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c
7+
pluggy==1.6.0 \
8+
--hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
9+
pygments==2.20.0 \
10+
--hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
11+
pytest==9.1.1 \
12+
--hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c

0 commit comments

Comments
 (0)