Skip to content

sharm294/excode

 
 

Repository files navigation

meshio

Test code blocks in your READMEs.

PyPi Version Anaconda Cloud PyPI pyversions GitHub stars PyPi downloads

gh-actions codecov LGTM Code style: black

This is pytest-codeblocks, a pytest plugin for testing code blocks from README files. It supports Python and shell code.

Install with

pip install pytest-codeblocks

and run pytest with

pytest --codeblocks
================================= test session starts =================================
platform linux -- Python 3.9.4, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /path/to/directory
plugins: codeblocks-0.11.0
collected 56 items

example.md .......................                                              [ 50%]
README.md .......................                                               [100%]

================================= 56 passed in 0.08s ==================================

pytest-codeblocks will only pick up code blocks with python and sh/bash syntax highlighting.

Skipping code blocks

Prefix your code block with a pytest-codeblocks:skip comment to skip

Lorem ipsum
<!--pytest-codeblocks:skip-->
```python
foo + bar  # not working
```
dolor sit amet.

Merging code blocks

Broken-up code blocks can be merged into one with the pytest-codeblocks:cont prefix

Lorem ipsum
```python
a = 1
```
dolor sit amet
<!--pytest-codeblocks:cont-->
```python
# this would otherwise fail since `a` is not defined
a + 1
```

Expected output

You can also define the expected output of a code block:

This
```sh
print(1 + 3)
```
gives
<!--pytest-codeblocks:expected-output-->
```
4
```

Expected errors

Some code blocks are expected to give errors. You can verify this with

The following gives an error:
<!--pytest-codeblocks:expect-error-->
```python
1 / 0
```

The keyword expect-exception is also possible.

License

This software is published under the MIT license.

About

Extract code blocks from text files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.7%
  • Makefile 6.3%