Skip to main content

testreqstatus

PyPI - Version PyPI - Python Version


pip install testreqstatus

Usage

  1. Establish a set of requirements corresponding to test names:

    {
      "DMS356": [
        "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline"
      ],
      "DMS373": [
        "romancal.regtest.test_mos_pipeline.test_hlp_mosaic_pipeline"
      ],
      "DMS374": [
        "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline"
      ],
      "DMS400": [
        "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline"
      ]
    }
    

[!TIP] To extract test requirements from existing tests decorated with @metrics_logger, use RequirementTests.from_test_directory():

from testreqstatus import RequirementTests

requirements = RequirementTests.from_test_directory("~/projects/romancal/")
requirements.to_file("test_requirements.json")
  1. Run tests and generate a JUnitXML results file:

    <?xml version="1.0" encoding="utf-8"?>
    <testsuites>
      <testsuite name="pytest" errors="0" failures="0" skipped="0" tests="2" time="2021.550" timestamp="2024-08-23T00:23:01.454354" hostname="spacetelescope-runner-2ls89-rrbf2">
        <testcase classname="romancal.regtest.test_mos_pipeline" name="test_level3_mos_pipeline" time="677.728">
        </testcase>
        <testcase classname="romancal.regtest.test_mos_pipeline" name="test_hlp_mosaic_pipeline" time="486.642">
        </testcase>
      </testsuite>
    </testsuites>
    
  2. Use RequirementTestResults.requirements_by_test_result to retrieve the status of each test and its corresponding requirements:

    from testreqstatus import RequirementTestResults
    
    results = RequirementTestResults(
        test_requirements="examples/test_requirements.json",
        test_results="examples/results.xml",
    )
    
    print(results.requirements_by_test_result)
    
    {
      "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline": {
        "status": "PASS",
        "requirements": [
          "DMS356",
          "DMS374",
          "DMS400"
        ]
      },
      "romancal.regtest.test_mos_pipeline.test_hlp_mosaic_pipeline": {
        "status": "PASS",
        "requirements": [
          "DMS373"
        ]
      }
    }
    

[!TIP] You can alternatively use RequirementTestResults.test_results_by_requirement to obtain the inverse mapping (requirements and their corresponding test statuses):

print(results.test_results_by_requirement)
{
  "DMS356": {
    "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline": "PASS"
  },
  "DMS373": {
    "romancal.regtest.test_mos_pipeline.test_hlp_mosaic_pipeline": "PASS"
  },
  "DMS374": {
    "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline": "PASS"
  },
  "DMS400": {
    "romancal.regtest.test_mos_pipeline.test_level3_mos_pipeline": "PASS"
  }
}

Metadata

Release files for testreqstatus 0.6.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 testreqstatus 0.6.0
File Size Uploaded
testreqstatus-0.6.0.tar.gz 290.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for testreqstatus 0.6.0
File Interpreter ABI Platform
testreqstatus-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 319.1 kB

Release files / testreqstatus-0.6.0.tar.gz

Download URL testreqstatus-0.6.0.tar.gz
Size 290.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c14e25eb30fcd987384d3bb337b36e03001100ef59f32b1c7dcc5a6fed401f89
BLAKE2b-256 checksum
How to use checksums
f7f2190c15e1adc66158563fdf297675805937ad21a7c703842c19325fdc0d15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / testreqstatus-0.6.0-py3-none-any.whl

Download URL testreqstatus-0.6.0-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
779be864f8ad4982c0a28fc83f5803f0c55535d40915c859fea523f00efc5c9d
BLAKE2b-256 checksum
How to use checksums
148e223813e47a724b649d67178dca273b4eef550439ef03ce0e15ae14343a74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.0.1

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