Skip to main content

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)

Source distribution for qamule-pytest-jira 0.1.0
File Size Uploaded Provenance
qamule_pytest_jira-0.1.0.tar.gz 23.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for qamule-pytest-jira 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page