Socket
Socket
Sign inDemoInstall

pytest-deadfixtures

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pytest-deadfixtures

A simple plugin to list unused fixtures in pytest


Maintainers
1

=================== pytest-deadfixtures

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/python/black :alt: Black

.. image:: https://travis-ci.org/jllorencetti/pytest-deadfixtures.svg?branch=master :target: https://travis-ci.org/jllorencetti/pytest-deadfixtures :alt: See Build Status on Travis CI

A simple plugin to list unused or duplicated fixtures in a pytest suite.


Features

  • List unused fixtures in your tests
  • List duplicated fixtures

Installation

You can install "pytest-deadfixtures" via pip_ from PyPI_::

$ pip install pytest-deadfixtures

Usage

Important


The --dead-fixtures option will not run your tests and it's also sensible for errors in the pytest collection step. If you are using as part of you CI process the recommended way is to run it after the default test run. For example::

script:
  - pytest
  - pytest --dead-fixtures

Listing unused fixtures


Just run 'pytest' with an extra option '--dead-fixtures'::

$ pytest --dead-fixtures
============================= test session starts ==============================
(hidden for brevity)

Hey there, I believe the following fixture(s) are not being used:
Fixture name: some_fixture, location: test_write_docs_when_verbose.py:5

========================= no tests ran in 0.00 seconds =========================

Using some level of verbosity will also print the docstring of each fixture::

$ pytest --dead-fixtures -v
============================= test session starts ==============================
(hidden for brevity)

Hey there, I believe the following fixture(s) are not being used:
Fixture name: some_fixture, location: test_write_docs_when_verbose.py:5
    Blabla fixture docs

========================= no tests ran in 0.00 seconds =========================

Listing repeated fixtures


Now that you removed every unused fixture of your test suite, what if you want to go an extra mile?

An important note about this is that it uses the fixture return value to verify if two or more fixtures are equal.

This means fixtures without a truthy return value will be skipped.

You should use this as a hint only, verify that the functionality provided by both fixtures are really repeated before deleting one of them.

Just run 'pytest' with an extra option '--dup-fixtures', unlike the '--dead-fixtures' option, it'll normally run you tests::

$ pytest --dup-fixtures
======================================================================================================================== test session starts ========================================================================================================================
(hidden for brevity)

tests/test_deadfixtures.py ........

You may have some duplicate fixtures:
Fixture name: someclass_fixture, location: test_repeated_fixtures.py:12
Fixture name: someclass_samefixture, location: test_repeated_fixtures.py:17

Projects using it

  • wemake-django-template_

Contributing

Contributions are very welcome. Tests can be run with tox_, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT_ license, 'pytest-deadfixtures' is free and open source software

Issues

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

.. _@jllorencetti: https://github.com/jllorencetti .. _MIT: http://opensource.org/licenses/MIT .. _file an issue: https://github.com/jllorencetti/pytest-deadfixtures/issues .. _pytest: https://github.com/pytest-dev/pytest .. _tox: https://tox.readthedocs.io/en/latest/ .. _pip: https://pypi.python.org/pypi/pip/ .. _PyPI: https://pypi.python.org/pypi .. _wemake-django-template: https://github.com/wemake-services/wemake-django-template

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc