Skip to content

pytest-dev/cookiecutter-pytest-plugin

Repository files navigation

cookiecutter-pytest-plugin

Documentation Status

Minimal Cookiecutter template for authoring pytest plugins that help you write better programs.

Getting Started

Install Cookiecutter and generate a new pytest plugin project:

$ pip install cookiecutter
$ cookiecutter https://github.com/pytest-dev/cookiecutter-pytest-plugin

Cookiecutter prompts you for information regarding your plugin:

full_name [Raphael Pierzina]: Andreas Pelme
email [raphael@hackebrot.de]: andreas@pelme.se
github_username [hackebrot]: pelme
plugin_name [foobar]: awesome
module_name [awesome]: awesome
short_description [A simple plugin to use with pytest]:
version [0.1.0]:
pytest_version [2.9.1]:
Select docs_tool:
1 - mkdocs
2 - sphinx
3 - none
Choose from 1, 2, 3 [1]: 1
Select license:
1 - MIT
2 - BSD-3
3 - GNU GPL v3.0+
Choose from 1, 2, 3 [1]: 2
INFO:post_gen_project:Moving files for mkdocs.

There you go - you just created a minimal pytest plugin:

pytest-awesome/
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.rst
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ src
β”‚   └── pytest_awesome
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── plugin.py
β”œβ”€β”€ tests
β”‚   β”œβ”€β”€ conftest.py
β”‚   └── test_awesome.py
└── tox.ini

Features

  • Installable PyPI package featuring a pyproject.toml.
  • Test suite running tox and pytest that makes sure your plugin is working as expected
  • Working example code for a fixture, a cli option, as well as a pytest.ini option
  • Comprehensive README.rst file that contains useful information about your plugin
  • Continuous integration configuration for GitHub Actions
  • Optional documentation with either Sphinx or MkDocs
  • Choose from several licenses, such as MIT, BSD-3, Apache v2.0, GNU GPL v3.0+, or MPL v2.0

Requirements to Submit a Plugin

If you plan on submitting your plugin to the pytest-dev organization you need to meet the following requirements:

  • PyPI presence with a pyproject.toml that contains a license, pytest- prefixed, version number, authors, short and long description.
  • a tox.ini for running tests using tox.
  • a README describing how to use the plugin and on which platforms it runs.
  • a LICENSE file or equivalent containing the licensing information.
  • an issue tracker

Please see the official guidelines at Submit a Plugin.

Resources

Please consult the pytest docs for more information on hooks at pytest hook reference.

Contribute

We welcome you to contribute to this project. Please visit the documentation to get started!

Issues

If you encounter any problems, please file an issue along with a detailed description.

Code of Conduct

Everyone interacting in the Cookiecutter pytest Plugin project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.

License

Distributed under the terms of the MIT license, Cookiecutter pytest Plugin is free and open source software.

OSI certified