Customisation

It’s possible to customise which codeblock languages and file extensions are recognised by the plugin.


Languages

By default, the plugin recognises the following codeblock languages:

  • reStructuredText: python, py, python3

  • Markdown: python, py, python3

reStructruredText

For reStructruredText defaults are configured via rst_codeblocks setting in the [tool.pytest-codeblock] section of your pyproject.toml.

[tool.pytest-codeblock]
rst_codeblocks = ["python", "py", "python3"]

Note

Don’t touch the defaults, unless you want to remove certain options.

If you only want to add custom codeblock languages, use rst_user_codeblocks.

The following example adds c_py as a custom codeblock language:

[tool.pytest-codeblock]
rst_user_codeblocks = ["c_py"]

Now the following codeblock will be recognised and executed:

.. code-block:: c_py
   :name: test_c_py_example

   print("This is a custom Python codeblock")

Markdown

For Markdown defaults configured via md_codeblocks setting in the [tool.pytest-codeblock] section of your pyproject.toml.

[tool.pytest-codeblock]
md_codeblocks = ["python", "py", "python3"]

Note

Don’t touch the defaults, unless you want to remove certain options.

If you only want to add custom codeblock languages, use md_user_codeblocks.

The following example adds c_py as a custom codeblock language:

[tool.pytest-codeblock]
md_user_codeblocks = ["c_py"]

Now the following codeblock will be recognised and executed:

```c_py name=test_c_py_example
print("This is a custom Python codeblock")
```

Extensions

Note

If you customise both reStructuredText and Markdown configurations, make sure to avoid overlapping file extensions.

reStructruredText

By default, the plugin recognises the following file extensions for reStructuredText files: .rst

These defaults are configured via rst_extensions setting in the [tool.pytest-codeblock] section of your pyproject.toml.

[tool.pytest-codeblock]
rst_extensions = [".rst"]

Note

Don’t touch the defaults, unless you want to remove certain options.

If you only want to add custom file extensions, use rst_user_extensions.

The following example adds .rst.txt as a custom reStructuredText file extension:

[tool.pytest-codeblock]
rst_user_extensions = [".rst.txt"]

Now the following file will be recognised and processed:

*Filename: example.rst.txt*

.. code-block:: python
   :name: test_custom_rst_extension_example

   print("Custom .rst.txt extension example executed successfully!")

Markdown

By default, the plugin recognises the following file extensions for Markdown files: .md, .markdown

These defaults are configured via md_extensions setting in the [tool.pytest-codeblock] section of your pyproject.toml.

[tool.pytest-codeblock]
md_extensions = [".md", ".markdown"]

Note

Don’t touch the defaults, unless you want to remove certain options.

If you only want to add custom file extensions, use md_user_extensions.

The following example adds .md.txt as a custom Markdown file extension:

[tool.pytest-codeblock]
md_user_extensions = [".md.txt"]

Now the following file will be recognised and processed:

*Filename: example.md.txt*

```python name=test_custom_md_extension_example
print("Custom .md.txt extension example executed successfully!")
```