A pytest plugin to extract relevant metadata about tests into an external file (currently only json support)
Project description
pytest-data-extractor
Pytest plugin intended for extracting test data and metadata and serializing it into a file. The plugin currently support json files.
This is a completely open source project so everyone are more than welcome to join and extended it.
Version 0.1.7
Use case
pip install the package to your project's virtual environment. Directly from plugin folder:
pip install -e .
or pip install it from Pypi:
pip install pytest-data-extractor
Go to a test file and now simply add upload_manager fixture in order to save a variable (except callable), Like so:
# test_foo.py
def test_bar(upload_manager):
expected_value = upload_manager(1000)
assert expected_value == 1000, "assert failed"
Activate the plugin with the pytest cli with the command:
pytest --output_test_data True
Now the data passed to upload_manager, as well as the test data that is specified at the TestData container will be stored in an external file. For a json file output:
[
{
"test_input": [
{
"test_file_path": "_20220719_21_00_10_806534.csv",
"file_type": "csv"
}
],
"expected_result": null,
"actual_result": null,
"test_operator": null,
"test_func": "test_bar",
"test_status": 1,
"test_duration": 0.046707000000000054,
"meta_data": null
}
]
In version 0.1.7 there's no recording of the expected_result, actual_result and test_operator since the test result is a PASS. Additionally, all objects passed to the upload_manager fixture will be saved as an external file that will be associated by test_file_path param. There's no garbage collection so be mindful how and where the files are stored.
Miscellaneous
For order sakes, the plugin will use a test comparison convention of:
* left- actual result.
* right- expected result.
conftest.py hooks and fixtures
In order to change the folder for either cache or output files, use conftest.py with the correct fixtures. example:
# conftest.py
import pytest
@pytest.fixture
def suite_output_dir():
return "my_files.output"
@pytest.fixture
def suite_cache_dir():
return "my_files.temp"
@pytest.fixture
def suite_output_file_prefix():
return "my_special_prefix"
Enumeration
By default there are 3 values for the test values in the data_containers.py file:
class TestStatus(Enum):
Skip = -1
Fail = 0
Pass = 1
The default directories will be at the root where the pytest is called. Supports automatic pipeline
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest_data_extractor-0.1.7.tar.gz
.
File metadata
- Download URL: pytest_data_extractor-0.1.7.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e067a284d57b33da64be467ea46d9af2bab3303fb544baeca44c5e4b24de9348 |
|
MD5 | 5219a1262ec932d6abc6ce4d694a93b3 |
|
BLAKE2b-256 | ca8d3bd1328a5f5679ce7fe93289b064c4347a23ea7aebab8f758b17097905d7 |
File details
Details for the file pytest_data_extractor-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: pytest_data_extractor-0.1.7-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f204287e5371133228043885515f11844b99b7c4fe814b09b02642ed917a20a7 |
|
MD5 | fa846c5d0a72dc5e71ee02748f6b6bb3 |
|
BLAKE2b-256 | bffc15fd811b66a9d818d9ab925c7b81a6e1714ab548bc9cdfa5a9a16ac56b1b |