Regression Testing Utils
Collection of Python tools to support execution of regression testing.
Exported Console Scripts
The following exported console scripts are available:
regression-testing-runner
Usage
Install the package:
pip install regression-testing-utils
Prepare your regression configuration file.
Contents of example.yaml:
---
# Acceptable values for file_format are csv or tsv.
# Meaning, this software can only compare files
# where both files are tab-delimited (tsv) or both
# files are comma-separated (csv).
file_format: tsv
# The line number that the column headers occur on.
# Column headers are necessary for reporting which
# which columns the differences were detected in.
header_line_number: 1
# The line number that the records start on.
# Beginning on this line, records will be compared
# between the two files.
records_start_line_number: 2
# The maximum number of columns. If specified, this
# will inform the software up to which line should
# be consider. Otherwise, all lines beginning at-
# and including records_start_line_number (above).
max_column_count:
# If the following is True, then the evaluator software will ignore
# the columns listed in the "ignore_columns_str".
ignore_columns: false
# The following will list the columns to be ignored by the evaluator
# software. Note: if the evaluator software should ignore columns
# specified in this list, then the "ignore_columns" boolean above
# should be set to true.
ignore_columns_str: null
workflow:
# If running in test mode, the actual commands will not be executed.
test_mode: false
stages:
# Each workflow stage is optional.
# The stage_name and commands are all required.
# The desc (description) is optional.
- stage_name: evaluation
desc: "Evaluate the results of the software being tested/evaluated"
commands:
- evaluator:
# Set-up for testing:
# cp regression-testing-utils/examples/example_actual.tsv /tmp/demo-regression-testing-utils/actual.tsv
# cp regression-testing-utils/examples/example_expected.tsv /tmp/demo-regression-testing-utils/expected.tsv
args:
# file1 is required. It must indicate the first file that will be compared against file2.
file1: /tmp/demo-regression-testing-utils/actual.tsv
# file2 is required. It must indicate the first file that will be compared against file1.
file2: /tmp/demo-regression-testing-utils/expected.tsv
# file_format is optional. It indicates what the file formats are.
file_format: tsv
# outfile is required. It indicates where the comparison report will be written to.
outfile: /tmp/demo-regression-testing-utils/comparison_report.txt
# If the following is set to true,
# the software will use the Rich Table
# API for displaying which stage is
# being executed.
# If set to false, will use a simple
# banner to display the same information.
use_rich_table: true
Contents of actual.tsv
cat -n /tmp/demo-regression-testing-utils/actual.tsv
1 #CHROM POS ID REF ALT QUAL FILTER INFO
2 1 12345 rs567 A G 50 PASS DP=30;AF=0.2;AN=1000;CSQ=missense_variant|HIGH|GeneA|ENSG00000112345|transcriptA|ENST00000234567|protein_coding|1/10|c.123C>T|p.Arg41Trp|123/1000|ensembl
3 2 56789 rs555 T C 44 PASS DP=25;AF=0.1;AN=1200;CSQ=synonymous_variant|MEDIUM|GeneB|ENSG00000123456|transcriptB|ENST00000345678|protein_coding|5/20|c.567A>G|p.Ala189Ala|567/1200|ensembl
4 3 98765 rs123 G T 61 PASS DP=40;AF=0.3;AN=800;CSQ=splice_acceptor_variant|HIGH|GeneC|ENSG00000134567|transcriptC|ENST00000456789|protein_coding|2/15|c.987+1G>T|p.?|987/800|ensembl
5 1 34567 rs456 C A 55 FAIL DP=35;AF=0.15;AN=900;CSQ=frameshift_variant|HIGH|GeneX|ENSG00000145678|transcriptX|ENST00000567890|protein_coding|8/25|c.345_346insT|p.Leu116Phefs*12|345/900|ensembl
Contents of expected.tsv
cat -n /tmp/demo-regression-testing-utils/expected.tsv
1 #CHROM POS ID REF ALT QUAL FILTER INFO
2 1 12345 rs567 A G 50 PASS DP=30;AF=0.2;AN=1000;CSQ=missense_variant|HIGH|GeneA|ENSG00000112345|transcriptA|ENST00000234567|protein_coding|1/10|c.123C>T|p.Arg41Trp|123/1000|ensembl
3 2 56789 rs890 T C 44 PASS DP=25;AF=0.1;AN=1200;CSQ=synonymous_variant|MEDIUM|GeneB|ENSG00000123456|transcriptB|ENST00000345678|protein_coding|5/20|c.567A>G|p.Ala189Ala|567/1200|ensembl
4 3 98765 rs123 G T 60 PASS DP=40;AF=0.3;AN=800;CSQ=splice_acceptor_variant|HIGH|GeneC|ENSG00000134567|transcriptC|ENST00000456789|protein_coding|2/15|c.987+1G>T|p.?|987/800|ensembl
5 1 34567 rs456 C A 55 PASS DP=35;AF=0.15;AN=900;CSQ=frameshift_variant|HIGH|GeneX|ENSG00000145678|transcriptX|ENST00000567890|protein_coding|8/25|c.345_346insT|p.Leu116Phefs*12|345/900|ensembl
Execution of exported console script:
regression-testing-runner --config_file /tmp/demo-regression-testing-utils/simple.yaml --outdir /tmp/demo-regression-testing-utils
--logfile was not specified and therefore was set to '/tmp/demo-regression-testing-utils/runner.log'
Setting file format to 'tsv'
3 differences found
Contents of comparison report:
cat -n /tmp/demo-regression-testing-utils/comparison_report.txt
1 ## method-created: /tmp/regression-testing-utils/venv/lib/python3.10/site-packages/regression_testing_utils/evaluator.py
2 ## date-created: 2025-02-15-121022
3 ## created-by: sundaram
4 ## file 1: /tmp/demo-regression-testing-utils/actual.tsv
5 ## file 2: /tmp/demo-regression-testing-utils/expected.tsv
6 ## file-format: tsv
7 ## logfile: /tmp/demo-regression-testing-utils/runner.log
8 ## Number of differences: 3
9 Line # Column Name Column # Column Letter Value in File 1 Value in File 2
10 1 rs567 3 C rs555 rs890
11 2 50 6 F 61 60
12 3 PASS 7 G FAIL PASS
History
0.1.0 (2024-02-24)
First release on PyPI.
Metadata
Release files for regression-testing-utils 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| regression_testing_utils-0.1.2.tar.gz | 25.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| regression_testing_utils-0.1.2-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 51.5 kB
Release files / regression_testing_utils-0.1.2.tar.gz
| Download URL | regression_testing_utils-0.1.2.tar.gz |
|---|---|
| Size | 25.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b62a8a7331b3ed8b634681cd385e1eae1535d2d0d2744e6c2b2b3b3e500f93fa
|
|
BLAKE2b-256 checksum How to use checksums |
e4f3bf1b21a41a455c1cb370deee039003591b9bfb8951653421b3029da1f48e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.12
|
Release files / regression_testing_utils-0.1.2-py2.py3-none-any.whl
| Download URL | regression_testing_utils-0.1.2-py2.py3-none-any.whl |
|---|---|
| Size | 26.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
f43d6f5539061c7441c250df18167690f3cd8724dcdc266896a3d90a70d153ad
|
|
BLAKE2b-256 checksum How to use checksums |
b4ff85ffed7590f40f2530faab46639f489af7a82443b9dda1a689ac9f844f06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.12
|