All Projects → idlesign → pytest-djangoapp

idlesign / pytest-djangoapp

Licence: BSD-3-Clause License
Nice pytest plugin to help you with Django pluggable application testing.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pytest-djangoapp

pytest-localstack
Pytest plugin for local AWS integration tests
Stars: ✭ 66 (+88.57%)
Mutual labels:  pytest, testing-tools, pytest-plugin
pytest-test-groups
A Pytest plugin that gives you a way to split your tests into groups of a specific size
Stars: ✭ 37 (+5.71%)
Mutual labels:  pytest, pytest-plugin
pytest-elk-reporter
A plugin to send pytest test results to ELK stack
Stars: ✭ 17 (-51.43%)
Mutual labels:  pytest, pytest-plugin
pytest-mock-server
Mock server plugin for pytest
Stars: ✭ 19 (-45.71%)
Mutual labels:  pytest, pytest-plugin
pytest-subprocess
Pytest plugin to fake subprocess.
Stars: ✭ 83 (+137.14%)
Mutual labels:  pytest, pytest-plugin
pytest-csv
CSV reporter for pytest.
Stars: ✭ 16 (-54.29%)
Mutual labels:  pytest, pytest-plugin
pytest-snail
Plugin for adding a marker to slow running tests. 🐌
Stars: ✭ 15 (-57.14%)
Mutual labels:  pytest, pytest-plugin
pytest-involve
A pytest plugin to run tests pertaining to a specific file or changeset
Stars: ✭ 28 (-20%)
Mutual labels:  pytest, pytest-plugin
pytest-eth
PyTest plugin for testing smart contracts for Ethereum blockchain.
Stars: ✭ 23 (-34.29%)
Mutual labels:  pytest, pytest-plugin
playwright-pytest
Pytest plugin to write end-to-end browser tests with Playwright.
Stars: ✭ 214 (+511.43%)
Mutual labels:  testing-tools, pytest-plugin
pytest-notebook
A pytest plugin for regression testing and regenerating Jupyter Notebooks
Stars: ✭ 35 (+0%)
Mutual labels:  pytest, pytest-plugin
pytest-docker-tools
Opionated helpers for creating py.test fixtures for Docker integration and smoke testing environments
Stars: ✭ 61 (+74.29%)
Mutual labels:  pytest, pytest-plugin
pytest-pycodestyle
pytest plugin to run pycodestyle
Stars: ✭ 15 (-57.14%)
Mutual labels:  pytest, pytest-plugin
pytest-datafixtures
Data fixtures for pytest made simple
Stars: ✭ 24 (-31.43%)
Mutual labels:  pytest, pytest-plugin
pytest-dependency
Manage dependencies of tests
Stars: ✭ 113 (+222.86%)
Mutual labels:  pytest, pytest-plugin
pytest-pipeline
Pytest plugin for functional testing of data analysis pipelines
Stars: ✭ 19 (-45.71%)
Mutual labels:  pytest, pytest-plugin
overhave
Web-framework for BDD: scalable, configurable, easy to use, based on Flask Admin and Pydantic.
Stars: ✭ 61 (+74.29%)
Mutual labels:  pytest, pytest-plugin
pytest-datafiles
pytest plugin to create a tmpdir containing a preconfigured set of files and/or directories.
Stars: ✭ 75 (+114.29%)
Mutual labels:  pytest, pytest-plugin
pytest-watcher
Rerun pytest when your code changes
Stars: ✭ 60 (+71.43%)
Mutual labels:  pytest, testing-tools
pytest-snapshot
A plugin for snapshot testing with pytest.
Stars: ✭ 68 (+94.29%)
Mutual labels:  pytest, pytest-plugin

pytest-djangoapp

https://github.com/idlesign/pytest-djangoapp

release lic coverage

Description

Nice pytest plugin to help you with Django pluggable application testing.

This exposes some useful tools for Django applications developers to facilitate tests authoring, including:

  • Settings overriding
  • Template tags testing
  • User creation
  • Request object creation
  • Management command calls
  • Mailing
  • Messages
  • DB queries audit
  • etc.

Suitable for testing apps for Django 1.7+.

How to use

Let's say you have classical tests placing (inside application directory):

package_dir
|__ myapp
|  |__ __init__.py
|  |__ tests
|  |  |__ __init__.py
|  |  |__ conftest.py  <- Configure djangoapp here.
|
|__ setup.py

Add the following lines into conftest.py to configure djangoapp and start using it:

# conftest.py
from pytest_djangoapp import configure_djangoapp_plugin

pytest_plugins = configure_djangoapp_plugin()

Fixtures usage examples can be found in the documentation and the source code.

Testing an entire project

Despite the fact that djangoapp is primarily aimed to reusable Django applications testing one can use it also to test a project (a set of apps). For that, pass a dotted settings module path into settings argument:

pytest_plugins = configure_djangoapp_plugin(
    settings='myproject.settings.settings_testing',
    migrate=False,  # If you do not want to apply migrations.
)

What about pytest-django

pytest-djangoapp does not depend on pytest-django.

There are design decisions in pytest-django that might make it uncomfortable to work with.

  1. It uses setuptools entrypoints feature for pytest plugin discovery. It's not a problem by itself, but all kinds of bootstrapping with side effects made by pytest-django just on startup, make the plugin a poor choice for cases of system-wide (i.e. not venv) installations.
  2. Philosophy that next to no unit test should require DB access may be quite annoying.
  3. Some fixtures (e.g. django_assert_num_queries) usability arouse questions.

Despite that pytest-django is nice, of course.

pytest-djangoapp fixtures allow the use of Django without marking all relevant tests as needing a database, as is required by pytest-django which provides the django_db mark and db fixtures.

If you have pytest-django already installed, it can be disabled for projects using pytest-djangoapp by adding the following lines into pytest.ini:

# pytest.ini
[pytest]
addopts = -p no:django

Documentation

http://pytest-djangoapp.readthedocs.org/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].