Collection of decorators and middlewares for testing DRF API under unexpected circumstances.
Project description
drf-chaos extension
drf-chaos is a small collection of decorators and middlewares for testing Django REST Framework API under unexpected circumstances.
Settings
DRF_CHAOS_ENABLED
Decorators
Delay
Delay response of a specific amount of milliseconds
@delay(rate, milliseconds)
Params:
rate: probability that an unexpected event happens
milliseconds: suspend execution of the current thread for the given number of milliseconds
Error
Return a different response HTTP status code
@error(rate, status)
Params:
rate: probability that an unexpected event happens
status: integer corresponding to any valid HTTP status code. See DRF HTTP status codes
Mime
Return a random Mime Content-type
@mime(rate)
Params:
rate: probability that an unexpected event happens
Chaos
Apply a random unexpected event to the HTTP response. (A delay between 0 to 3 second and a random HTTP status code)
@chaos(rate)
Params:
rate: probability that an unexpected event happens
Middlewares
ChaosMiddleware
Example
from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from drf_chaos.decorators import delay, error, mime, chaos class DelayApiView(APIView): @delay(rate=0.5, milliseconds=700) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class ErrorApiView(APIView): @error(rate=0.5, status=500) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class MimeTypeApiView(APIView): @mime(rate=0.5) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT) class ChaosApiView(APIView): @chaos(rate=0.5) def get(self, request): return Response(status=status.HTTP_204_NO_CONTENT)
Requirements
Python (2.7)
Django (1.6+, 1.7+, 1.8)
Installation
Install using pip
pip install drf-chaos
Add ‘drf_chaos’ to your INSTALLED_APPS setting.
INSTALLED_APPS = ( ... 'drf_chaos', )
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
Built Distribution
Hashes for drf-chaos-0.1.3.macosx-10.10-intel.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea1802b455ae9aca8d4864ed7469a8386c914557cabba75c5485a0dedca5b8cc |
|
MD5 | f2a330c52d18e8afdbcc80a850d1b1d4 |
|
BLAKE2b-256 | 65cd1811c6b9f1cc18aea80a824372f8c00ba69c13bdee1ed8a006d0ca724f4f |