Metadata-Version: 2.1
Name: geneweaver-testing
Version: 0.0.3
Summary: A library to standardize testing of GeneWeaver pacakges.
Home-page: https://thejacksonlaboratory.github.io/geneweaver-docs/
License: Apache-2.0
Author: Alexander Berger
Author-email: alexander.berger@jax.org
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: black (>=23.3.0,<24.0.0)
Requires-Dist: isort (>=5.12.0,<6.0.0)
Requires-Dist: mypy (>=1.4.1,<2.0.0)
Requires-Dist: pytest (>=7.4.0,<8.0.0)
Requires-Dist: pytest-cov (>=4.1.0,<5.0.0)
Requires-Dist: ruff (>=0.0.277,<0.0.278)
Requires-Dist: tomli (>=2.0.1,<3.0.0)
Project-URL: Repository, https://github.com/TheJacksonLaboratory/geneweaver-testing
Description-Content-Type: text/markdown

# Geneweaver Testing

[![Tests](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/tests.yml/badge.svg?event=push)](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/tests.yml)
[![Style](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/style.yml/badge.svg?event=push)](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/style.yml)
[![Coverage](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/coverage.yml/badge.svg?event=push)](https://github.com/TheJacksonLaboratory/geneweaver-testing/actions/workflows/coverage.yml)

This package is used to test the Geneweaver project. It contains tools for running tests
against Geneweaver project packages and components to aid in the development of
Geneweaver. 

## Quick Start
1. Install the package
    ```bash
    poetry install -G dev geneweaver-testing
    ```
2. Make a "common" test file
    ```
    touch tests/common.py
    ```
3. Add the following to the "common" test file
    ```
    # Inside tests/common.py
    from geneweaver.testing import *
    ```
4. Add a fixture file at test root (if you don't have one already)
    ```
    touch tests/conftest.py
    ```
5. Add the following to the fixture file
    ```
    # Inside tests/conftest.py
    from geneweaver.testing.fixtures import *
    ```
6. Run Tests!
    ```bash
    pytest tests
    ```

## Package Modules

Like all Geneweaver packages, this package is namespaced under the `geneweaver` package.
The root of this package is `geneweaver.testing`. The package is structured for usage in
pytest tests, with pre-defined tests available through splat (`*`) imports as shown in
the Quick Start. Other package functionality is available by specifically importing
modules.

The following modules are available in this package:

### `geneweaver.testing.fixtures`

This module contains pytest fixtures that are used to test Geneweaver packages. These
fixtures can be used to set up test contexts for Geneweaver packages. This module does
not contain any tests.

### `geneweaver.testing.package`

This module contains tools for testing and validating Geneweaver packages.

## Contributing

Contributions to this package are welcome. Please see
the [Contributing](CONTRIBUTING.md) document for more information.


