Skip to main content

jps-test-artifact-python-utils

Test Publish to PyPI codecov

Utilities for creating, verifying, and managing test artifact directories used to support functional testing of command-line executables. Includes CLI tools for setting up test directories, generating MD5 manifests, and validating test data integrity.


🧩 Installation

pip install jps-test-artifact-python-utils

or install in editable mode for local development:

git clone git@github.com:jai-python3/jps-test-artifact-python-utils.git  
cd jps-test-artifact-python-utils  
pip install -e .

🧩 setup-test-artifacts

Sets up a new test artifact instance directory by copying representative input, output, and script files into a new workspace.

Usage

setup-test-artifacts --indir <test-case-dir> [--script-dir <scripts-dir>]

Example

setup-test-artifacts --indir synthentic-genomics-pipeline/v1.2.0/comp_analysis/test-case-001/

This generates a fully configured test workspace with expected structure and a runnable shell script.


🧩 create-md5-manifest

Generates an md5_manifest.txt file listing all files under a given directory with their MD5 checksums, sizes, and timestamps.

Usage

create-md5-manifest --test-case-dir <path> --manifest-file <path>

Example Output

## method-created: /scripts/create_md5_manifest.py
## date-created: 2025-10-28 13:22:01
## created-by: jsundaram
## Columns:
## 1: relative file path
## 2: md5sum
## 3: number of bytes
## 4: date/time md5sum was derived

inputs/sample_input.vcf  3d883acf1a3db79c3390b8a96570a2ec  2145  2025-10-28-13:22:03
outputs/expected_output.tsv  53754d366f5676075a00e4c979f85cae  907  2025-10-28-13:22:04

🧩 verify-md5-manifest

Compares the current MD5 checksums of files in a test artifact directory with a saved manifest, reporting any mismatches or missing files.

Usage

verify-md5-manifest --test-case-dir <path> --manifest-file <path>

Example Output

✔ inputs/sample_input.vcf
✔ outputs/expected_output.tsv
✘ outputs/altered_output.tsv

2 of 3 files passed
Files with mismatched MD5 sums:
File: outputs/altered_output.tsv
Current MD5: 25a89f...
Previous MD5: 53754d...

🗂 Example Test Artifact Directory Layout

synthentic-genomics-pipeline/v1.2.0/comp_analysis/test-case-001/
├── inputs/
│   ├── sample_input.bam
│   ├── sample_input.vcf
│   └── genes.fasta
├── outputs/
│   └── expected_output.tsv
└── scripts/
    ├── requirements.txt
    └── run_test_case.sh.tmpl

🧾 Logging

Logs follow this format:

LOG_FORMAT = "%(levelname)s : %(asctime)s : %(pathname)s : %(lineno)d : %(message)s"
  • Only WARNING and above are printed to STDERR.
  • INFO, WARNING, ERROR, and FATAL are all written to the log file.

🧪 Development and Testing

Install dependencies for linting, formatting, and testing:

pip install -e '.[dev]'

Run all lint and test checks:

make lint  
make test

🧾 License

MIT License
© 2025 Jaideep Sundaram

Metadata

Release files for jps-test-artifact-python-utils 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jps-test-artifact-python-utils 0.1.3
File Size Uploaded
jps_test_artifact_python_utils-0.1.3.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jps-test-artifact-python-utils 0.1.3
File Interpreter ABI Platform
jps_test_artifact_python_utils-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 26.0 kB

Release files / jps_test_artifact_python_utils-0.1.3.tar.gz

Download URL jps_test_artifact_python_utils-0.1.3.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bb6e860043edfcbf37fda8390ce50b797b245d52e3f274858bc931659eed89a7
BLAKE2b-256 checksum
How to use checksums
0ed9e1c6f0dcb84f2a6abd69f37d7bdab9646a50b51bb49bf1a1a6a17b761dbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / jps_test_artifact_python_utils-0.1.3-py3-none-any.whl

Download URL jps_test_artifact_python_utils-0.1.3-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53a3459dd474f47725ca008ab50703198b4501972748c26d8cc12f61fde875d6
BLAKE2b-256 checksum
How to use checksums
5e8de362f3016d1ef64ff92788ad2190725c2e8bda160a1fc0bfc7dd10017192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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