Skip to main content

Manager for test data providing downloads, caching of generated files, and a context for temp directories.

Project description

The datadir-mgr plugin for pytest provides the datadir_mgr fixture which allow test functions to easily download data files and cache generated data files in data directories in a manner that allows for overlaying of results. datadir-mgr is pathlib-based, so complete paths to data files are handled, not just filenames.

The datadir_mgr behaves like a limited dictionary, with datadir_mgr[item] returning a path with the most specific scope (out of global, module, [class], [function] that matches the string or path specified by item. In addition to serving data files already stored in the data directory, the fixture provides four methods useful for adding to the test data stored in the repository:

  • The download method allows downloading data files into data directories, with option MD5 checksum checks, un-gzipping, and a progressbar.

  • The savepath fixture lets an arbitrary path relative to the current working directory to be saved at a particular scope in the data directories.

  • The add_scope method lets one add directories from scopes different from the present request to be added to the search path. This lets the results of previous cached steps to be used in scopes other than global.

  • The in_tmp_dir method creates a context in a temporary directory with a list of request file paths copied in. Optionally, all output file paths can be saved at a particular scope at cleanup with an optional exclusion filter pattern (e.g., for excluding log files).

Prerequisites

Python 3.6 or greater is required. This package is tested under Linux and MacOS using Python 3.7.

Installation for Users

Install via pip

pip install pytest-datadir-mgr

For Developers

If you plan to develop datadir_mgr, you’ll need to install the poetry dependency manager. If you haven’t previously installed poetry, execute the command:

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

Next, get the master branch from GitHub

git clone https://github.com/legumeinfo/pytest-datadir-mgr.git

Change to the datadir-mgr/ directory and install with poetry:

poetry install -v

Test datadir-mgr with poetry:

poetry run pytest -s

Project Status

Latest Release

Python package

GitHub

GitHub repository

License

License terms

Travis Build

Travis CI

Coverage

Codecov.io test coverage

Code Grade

Codacy.io grade

Dependencies

dependabot dependencies

Issues

Issues reported

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-datadir-mgr-0.1.5.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

pytest_datadir_mgr-0.1.5-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file pytest-datadir-mgr-0.1.5.tar.gz.

File metadata

  • Download URL: pytest-datadir-mgr-0.1.5.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.7 Linux/5.6.3-gentoo-x86_64

File hashes

Hashes for pytest-datadir-mgr-0.1.5.tar.gz
Algorithm Hash digest
SHA256 17f4435bb75232845f8ca433e03538625f991497782baa5c958c06f21cfa7d28
MD5 0e9f686192d610c0356cd6bde4f59383
BLAKE2b-256 8571c5fab3cf6fb8ecd5d8cbd5b1ccc07b9e667974e3c67b0e857f216972ab01

See more details on using hashes here.

File details

Details for the file pytest_datadir_mgr-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: pytest_datadir_mgr-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.7 Linux/5.6.3-gentoo-x86_64

File hashes

Hashes for pytest_datadir_mgr-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3b63f7b9b16380e1b9a52fcf343a6d1afe04030cdd1b62de5b982ecd76d3dbea
MD5 61998ac01b6042224c7ce85cb9309c96
BLAKE2b-256 cc84c7ccc180b89decfcbc896ac26d3f7ecc1e83e8b37d758628a2e16febde86

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page