Skip to main content

Automatic smoke tests for Django project.

Project description

https://badge.fury.io/py/django-smoke-tests.svg https://travis-ci.org/kamilkijak/django-smoke-tests.svg?branch=master https://codecov.io/gh/kamilkijak/django-smoke-tests/branch/master/graph/badge.svg

Django command that finds all endpoints in project, executes HTTP requests against them and checks if there are any unexpected responses.

https://i.imgur.com/cPK0y3W.gif

Requirements

  • Python (2.7, 3.4, 3.5, 3.6)

  • Django (1.8, 1.9, 1.10, 1.11, 2.0)

Installation

Install using pip:

pip install django-smoke-tests

Add it to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'django_smoke_tests',
    ...
)

Quickstart

Execute smoke tests for the whole project:

python manage.py smoke_tests

Usage

Parameters

$ python manage.py smoke_tests --help
usage: manage.py smoke_tests [-h] [--http-methods HTTP_METHODS]
                             [--allow-status-codes ALLOW_STATUS_CODES]
                             [--disallow-status-codes DISALLOW_STATUS_CODES]
                             [--settings SETTINGS]
                             [--configuration CONFIGURATION]
                             [--fixture FIXTURE] [--no-migrations] [--no-db]
                             [app_names]

Smoke tests for Django endpoints.

positional arguments:
  app_names             names of apps to test

optional arguments:
  -h, --help            show this help message and exit
  --http-methods HTTP_METHODS
                        comma separated HTTP methods that will be executed for
                        all endpoints, eg. GET,POST,DELETE
                        [default: GET,POST,PUT,DELETE]
  -g, --get-only        shortcut for --http-methods GET
  --allow-status-codes ALLOW_STATUS_CODES
                        comma separated HTTP status codes that will be
                        considered as success responses, eg. 200,201,204
                        [default: 200,201,301,302,304,405]
  --disallow-status-codes DISALLOW_STATUS_CODES
                        comma separated HTTP status codes that will be
                        considered as fail responses, eg. 404,500
  --settings SETTINGS   path to the Django settings module, eg.
                        myproject.settings
  --configuration CONFIGURATION
                        name of the configuration class to load, eg.
                        Development
  --fixture FIXTURE     Django fixture JSON file to be loaded before executing
                        smoke tests
  --no-migrations       flag for skipping migrations, database will be created
                        directly from models
  --no-db               flag for skipping database creation

Skipping tests

To skip tests for specific URLs add SKIP_SMOKE_TESTS option in your settings.

This setting should contain list of URLs’ names.

SKIP_SMOKE_TESTS = (
    'all-astronauts',  # to skip url(r'^astronauts/', AllAstronauts.as_view(), name='all-astronauts')
)

Reporting bugs

If you face any problems please report them to the issue tracker at https://github.com/kamilkijak/django-smoke-tests/issues

Contributing

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Credits

Tools used in rendering this package:

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

django-smoke-tests-0.4.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

django_smoke_tests-0.4.1-py2.py3-none-any.whl (12.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-smoke-tests-0.4.1.tar.gz.

File metadata

File hashes

Hashes for django-smoke-tests-0.4.1.tar.gz
Algorithm Hash digest
SHA256 555fcf5a24c4e08e18353905b93d6775d92fa55f71f12298c7a70d2235d2c4da
MD5 52167a9b4369676d76f91e9a8f14d1b0
BLAKE2b-256 8014c86217988650a1a76a0ebb0146a372d1c98092c0bd97615fc9d272ffdbba

See more details on using hashes here.

File details

Details for the file django_smoke_tests-0.4.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_smoke_tests-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b92d27ca40432053e754ef2b8f0ec26ad20bfdd74ffc5dd100722cef5c76a410
MD5 2add14ec8fb5dc5c443e24e2b4b4eda8
BLAKE2b-256 0e1e0aa9ea0b3077404cd2bd03a2608940a93a7f0794ee78cf12b6fd2c4d73e4

See more details on using hashes here.

Supported by

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