Skip to main content

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

Project description

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

release lic ci 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/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-djangoapp-0.15.1.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

pytest_djangoapp-0.15.1-py2.py3-none-any.whl (27.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest-djangoapp-0.15.1.tar.gz.

File metadata

  • Download URL: pytest-djangoapp-0.15.1.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/2.7

File hashes

Hashes for pytest-djangoapp-0.15.1.tar.gz
Algorithm Hash digest
SHA256 ed10b80ca3bf4c7eb55be209c438582ca6599691d58643d75a5f6f1e7170b149
MD5 06c8e0272e55a717c82bf632b026d70f
BLAKE2b-256 8c7eaac1472f995d5359ce3053646b776a57357dd45b3fdf4af1ef8eb086a3b4

See more details on using hashes here.

File details

Details for the file pytest_djangoapp-0.15.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_djangoapp-0.15.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 de416cfef01c3cf8e4e9d42653c0b7b23e33844a5684522e7958b892bb9616a9
MD5 2ef784f25faddca7fc4a081d6300f6ca
BLAKE2b-256 3bfe5e3a31d2b8926377cce6b6f13737eabc4ca4222dd4cb664ba9640686c8e6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page