qamule-pytest-jira
Reusable Jira and Xray helpers for QAMule automation.
Set the following environment variables before using the Python API or CLI:
export QAMULE_JIRA_URL="https://jira.example.com"
export QAMULE_JIRA_TOKEN="..."
The package provides the qamule-jira command and a pytest plugin. Mark a
test with @pytest.mark.xray("TEST-123") to include its result in the
session artifact jira/xray-test-results.json. The artifact uses Xray's
execution import JSON format and can be uploaded without transformation:
uv run qamule-jira execution import \
pytest-artifacts/<session-id>/jira/xray-test-results.json
The plugin infers the Test Execution project from marked test keys such as
TEST-123. When a session contains tests from multiple projects, set the
target explicitly:
uv run pytest --xray-project-key TEST
Alternatively, configure xray_project_key = TEST in pytest configuration.
Read Xray test cases
Fetch Xray test summaries, preconditions, and steps:
uv run qamule-jira testcase TEST-123 TEST-456
The command caches responses in .xray_cache.sqlite3 for 24 hours by default.
The cache can contain Jira/Xray project data and must not be committed or
shared. This repository ignores the default cache path; protect any custom
path passed with --cache-path in the same way. Use --refresh to bypass
cached entries.
Create issue templates
Generate a request body for Jira's Create issue API from the project's live
create metadata. --field accepts either a Jira field ID or its displayed name,
so custom fields such as Example Text are resolved to the corresponding
customfield_* key automatically.
uv run qamule-jira issue template \
--project-key DEMO \
--issue-type Task \
--field "Example Text" \
--field "Example Option" \
create-task.json
The generated file is a QAMule issue-create JSON payload containing fields
and an empty attachments array. Replace placeholder values before sending it
to Jira. Required fields are always included; optional fields are included only
when requested with --field.
Create the issue from an edited template file:
uv run qamule-jira issue create create-task.json
The command requires a JSON object containing a fields object. To upload files
after the issue is created, add paths to the generated top-level attachments
array:
{
"fields": {
"project": {"key": "DEMO"},
"issuetype": {"id": "10000"},
"summary": "Create with evidence"
},
"attachments": [
"artifacts/report.log",
"artifacts/error.png"
]
}
Relative attachment paths are resolved from the directory containing the JSON
file. All files are validated before the issue is created. The command then
sends fields through Jira's Create issue API, uploads each attachment, and
prints the created issue's ID, key, and URL.
Metadata
Release files for qamule-pytest-jira 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| qamule_pytest_jira-0.1.0.tar.gz | 23.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qamule_pytest_jira-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.0 kB
Release files / qamule_pytest_jira-0.1.0.tar.gz
| Download URL | qamule_pytest_jira-0.1.0.tar.gz |
|---|---|
| Size | 23.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50e4ca511b802f4085c86ea44424e7266a4b41c82fad8d6628c4a102da7fd074
|
|
BLAKE2b-256 checksum How to use checksums |
259aefcc23cdf92ec3953baa5d04cfe64227be6f41104e523db17c915e427b5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / qamule_pytest_jira-0.1.0-py3-none-any.whl
| Download URL | qamule_pytest_jira-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21fa0ab672d3cd33e181fbd92194894147ce1b11d5217898710f64f2e2abd397
|
|
BLAKE2b-256 checksum How to use checksums |
17734b4c9d206deeca4a2c53971dac95978d2594420c97ce95e04fb5d1c0acf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for qamule-pytest-jira 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.