tests.test_release_workflow_steps moduleΒΆ
Run the exact command of each release step against a mocked GitHub.
A step gated on a release commit runs on no ordinary push, so no CI run between
two releases reaches it: a wrong argument would only surface as a failed
release. Each test here reads the stepβs run: line out of the workflow file,
expands its environment variables with plausible values, and invokes the
command that line holds. The arguments a release passes are the ones these
tests run.
- tests.test_release_workflow_steps.REPOSITORY = 'kdeldycke/papaya'ΒΆ
The repository the steps run in.
- tests.test_release_workflow_steps.VERSION = '1.2.3'ΒΆ
The version the release publishes.
- tests.test_release_workflow_steps.COMMIT = '6f27db47612aaee06fdf08744b09a9f5f6c26a1b'ΒΆ
The release commit.
- tests.test_release_workflow_steps.CLI_MARK = '-- repomatic 'ΒΆ
What separates the command that starts the CLI from the arguments it gets.
- tests.test_release_workflow_steps.VARIABLE_RE = re.compile('\\$\\{(\\w+)\\}|\\$(\\w+)')ΒΆ
A shell variable, braced or bare.
- tests.test_release_workflow_steps.PYPROJECT = '[project]\nname = "papaya"\nversion = "1.2.3"\n\n[tool.repomatic]\nrelease-assets = ["papaya.zip", "mango.zip"]\n'ΒΆ
The project the release steps work on.
- tests.test_release_workflow_steps.CHANGELOG = '# Changelog\n\n## [`1.2.3` (2026-10-21)](https://github.com/kdeldycke/papaya/compare/v1.2.2...v1.2.3)\n\n- Add a juicer.\n\n## [`1.2.2` (2026-10-01)](https://github.com/kdeldycke/papaya/compare/v1.2.1...v1.2.2)\n\n- Peel faster.\n'ΒΆ
A changelog holding the section of the release.
- tests.test_release_workflow_steps.find_step(document, job, name)[source]ΒΆ
The step of job named name, the one step matching it.
- Return type:
- tests.test_release_workflow_steps.step_argv(step, env)[source]ΒΆ
The arguments a step passes to the CLI, its variables expanded.
Every variable the line reads must be one the step declares in its
env:or one GitHub sets, which env stands in for: an undeclared one would reach the CLI empty.
- tests.test_release_workflow_steps.project(tmp_path, monkeypatch)[source]ΒΆ
A checkout of the project being released, the working directory.
- tests.test_release_workflow_steps.test_squashed_release_step(project, monkeypatch, message, reported)[source]ΒΆ
A squash-merged release PR reopens one issue and fails the job.
- tests.test_release_workflow_steps.test_create_release_step(project)[source]ΒΆ
The draft gets the release notes, the target commit and the package.
- tests.test_release_workflow_steps.test_create_release_step_skips_an_existing_release(project)[source]ΒΆ
A re-run of the job finds the draft its first attempt created.
- tests.test_release_workflow_steps.test_compile_binaries_attestation_step(project)[source]ΒΆ
The binaryβs provenance is checked, and its bundle named after it.
- tests.test_release_workflow_steps.test_manpages_steps(project)[source]ΒΆ
The tarball the attest step names is the one the pack step writes.
- tests.test_release_workflow_steps.test_extra_assets_steps(project, landed)[source]ΒΆ
Every declared asset lands on the draft, or the job fails before upload.
- tests.test_release_workflow_steps.test_publish_release_steps(project)[source]ΒΆ
The binaries and their aliases reach the draft, which then publishes.
- tests.test_release_workflow_steps.test_wait_pypi_step(tmp_path)[source]ΒΆ
The composite action runs the CLI of the tree it was fetched with.
- tests.test_release_workflow_steps.release_checkout(tmp_path, monkeypatch, hermetic_git)[source]ΒΆ
A repository whose version was just stripped of its
.devsuffix.