Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

[![Build Status](https://travis-ci.org/djentlemen/django-smoked.svg)](https://travis-ci.org/djentlemen/django-smoked)
[![Coverage Status](https://coveralls.io/repos/djentlemen/django-smoked/badge.svg?branch=master)](https://coveralls.io/r/djentlemen/django-smoked?branch=master)

# django-smoked

Smoke tests framework for Django Web Framework

## Motivation

> Code without tests is broken by design. - Jacob Kaplan-Moss, Django core developer

Every successful deployment of an application must be followed by series of tests to ensure that website is up and works.

Compared to unit/integration/functional/performance/etc tests which runs in an isolated environment, smoke tests are designed to check safely the production environment. These tests only check the fundemantal functionality, ex. email sending is working, app is able to connect to the database, background queue accepts task, etc.

## Idea

Create framework for **reusable** smoke tests which could be easily shared among projects.

Each test is defined by a name and an action to be taken:

```python
class DatabaseTest(SmokeTest):
name = 'Database test'
description = 'Check all database connection are valid'

def test(self):
...
```

Smoke tests are registered manually in custom module:

```python
# settings.py
SMOKE_TESTS = 'myproject.smoked'
```

```python
# myproject/smoked.py
import smoked

# Built-in test
smoked.register('smoked.DatabaseTest')

# Custom test
smoked.register('myproject.MessageQueueTest')

# ad-hoc function
def smoke_test():
...
smoked.register(smoke_test, name='Test my setup', description='...')

# ad-hoc function using decorator
@smoked.register(name='Verbose name', description='Long text')
def smoke_test():
...

# default name and description
@smoked.register
def smoke_test(): # name='smoke_test'
""" Docstring will become description """
...

```

Test runner is trigger either by management command:

```shell
./manage.py smoked
```

or an API call:

```shell
curl -d"TOKEN=VerySecretToken" http://myproject.io/_smoked/
```

## Licence

MIT

Metadata

Release files for django-smoked 0.1-alpha.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-smoked 0.1-alpha.1
File Size Uploaded Provenance
django-smoked-0.1-alpha.1.tar.gz 5.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for django-smoked 0.1-alpha.1
File Interpreter ABI Platform
django_smoked-0.1_alpha.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 14.7 kB

Release files / django-smoked-0.1-alpha.1.tar.gz

Download URL django-smoked-0.1-alpha.1.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3887730411c4e4ba7e24aa6f9d4c06fdb004c4177c6e325cc8b0e3cecbeafbfa
BLAKE2b-256 checksum
How to use checksums
faf7eba6a5e54a68fae2bef42b9b3d2846c78795aa9f5801a4d0d73ffe777dfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / django_smoked-0.1_alpha.1-py2.py3-none-any.whl

Download URL django_smoked-0.1_alpha.1-py2.py3-none-any.whl
Size 9.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
7a2e2783bffea1e55a757210faa2aa04344b1a32094acbaf667083feae46de1f
BLAKE2b-256 checksum
How to use checksums
b82238ec93e64b3533914f85a6e11f2ae47dee58299212e999235def80b6dfe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for django-smoked 0.1-alpha.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page