Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stefanhoelzl/pytest_docfiles
pytest plugin to test code sections in your documentation
https://github.com/stefanhoelzl/pytest_docfiles
Last synced: 14 days ago
JSON representation
pytest plugin to test code sections in your documentation
- Host: GitHub
- URL: https://github.com/stefanhoelzl/pytest_docfiles
- Owner: stefanhoelzl
- License: mit
- Created: 2021-12-13T20:03:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-22T17:30:20.000Z (almost 3 years ago)
- Last Synced: 2024-11-09T05:13:58.395Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-pytest - pytest-docfiles - Test the code sections in your documentation. (Plugins)
README
# pytest_docfiles
[![Build Status](https://github.com/stefanhoelzl/pytest_docfiles/workflows/push/badge.svg)](https://github.com/stefanhoelzl/pytest_docfiles/actions)
[![PyPI](https://img.shields.io/pypi/v/pytest_docfiles.svg)](https://pypi.org/project/pytest_docfiles/)
[![Downloads](https://img.shields.io/pypi/dm/pytest_docfiles?color=blue&logo=pypi&logoColor=yellow)](https://pypistats.org/packages/pytest_docfiles)
[![License](https://img.shields.io/pypi/l/pytest_docfiles.svg)](LICENSE)pytest plugin to test code sections in your documentation.
## Installation
```bash
pip install pytest_docfiles
```## Usage
Define code sections in your markdown files.
````md# Hello World
```python
print("hello world!")
```
````
run pytest on your markdown files with the `--docfiles` flag.
```bash
pytest --docfiles doc.md
```## Features
### Section Names
Define names for your code sections so they can be better identified in your pytest output
````md```python {"name": "my-section"}
print("hello world")
```
````
```bash
$ pytest --docfiles doc.md
...
doc.md::my-section PASSED
...
```### Fixtures
Define your fixtures in `conftest.py` as usual
```python
# conftest.pyimport pytest
@pytest.fixture
def custom_fixture() -> str:
return "fixture value"@pytest.fixture(autouse=True)
def autouse() -> None:
"""autouse fixtures are used in each code section"""
```
use the fixtures in your code sections
````md```python {"fixtures": ["custom_fixture"]}
assert custom_fixture == "fixture value"
```
````### Scopes
Code section depending on other code section can be executed in scopes.
````md
```python {"scope": "my-scope"}
value = True
```
```python {"scope": "my-scope"}
assert value is True
```
````### Skip Sections
````md
```python {"skip": true}
raise Exception("this section should not run")
```
````### Exception Handling
````md
```python {"raises": "RuntimeError"}
raise RuntimeError("this section should pass")
```
````