{ "info": { "author": "Alessio Di Stasio", "author_email": "aledista@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "drf-chaos extension\r\n===================\r\n\r\n.. image:: https://img.shields.io/pypi/v/drf-chaos.svg\r\n\r\ndrf-chaos is a small collection of decorators and middlewares for\r\ntesting `Django REST Framework`_ API under unexpected circumstances.\r\n\r\nSettings\r\n=========\r\n\r\nDRF_CHAOS_ENABLED\r\n\r\nDecorators\r\n==========\r\n\r\nDelay\r\n-----\r\n\r\nDelay response of a specific amount of milliseconds\r\n\r\n``@delay(rate, milliseconds)``\r\n\r\nParams:\r\n\r\n``rate``: probability that an unexpected event happens\r\n\r\n``milliseconds``: suspend execution of the current thread for the given\r\nnumber of milliseconds\r\n\r\nError\r\n-----\r\n\r\nReturn a different response HTTP status code\r\n\r\n``@error(rate, status)``\r\n\r\nParams:\r\n\r\n``rate``: probability that an unexpected event happens\r\n\r\n``status``: integer corresponding to any valid HTTP status code. See\r\n`DRF HTTP status codes`_\r\n\r\nMime\r\n-----\r\n\r\nReturn a random Mime Content-type\r\n\r\n``@mime(rate)``\r\n\r\nParams:\r\n\r\n``rate``: probability that an unexpected event happens\r\n\r\nChaos\r\n-----\r\n\r\nApply a random unexpected event to the HTTP response. (A delay between 0\r\nto 3 second and a random HTTP status code)\r\n\r\n``@chaos(rate)``\r\n\r\nParams:\r\n\r\n``rate``: probability that an unexpected event happens\r\n\r\nMiddlewares\r\n===========\r\n\r\n- ChaosMiddleware\r\n\r\nExample\r\n=======\r\n\r\n::\r\n\r\n from rest_framework import status\r\n from rest_framework.response import Response\r\n from rest_framework.views import APIView\r\n\r\n from drf_chaos.decorators import delay, error, mime, chaos\r\n\r\n\r\n class DelayApiView(APIView):\r\n @delay(rate=0.5, milliseconds=700)\r\n def get(self, request):\r\n return Response(status=status.HTTP_204_NO_CONTENT)\r\n\r\n\r\n class ErrorApiView(APIView):\r\n @error(rate=0.5, status=500)\r\n def get(self, request):\r\n return Response(status=status.HTTP_204_NO_CONTENT)\r\n\r\n\r\n class MimeTypeApiView(APIView):\r\n @mime(rate=0.5)\r\n def get(self, request):\r\n return Response(status=status.HTTP_204_NO_CONTENT)\r\n\r\n\r\n class ChaosApiView(APIView):\r\n @chaos(rate=0.5)\r\n def get(self, request):\r\n return Response(status=status.HTTP_204_NO_CONTENT)\r\n\r\nRequirements\r\n============\r\n\r\n- Python (2.7)\r\n- Django (1.6+, 1.7+, 1.8)\r\n\r\nInstallation\r\n============\r\n\r\nInstall using ``pip``\\\r\n\r\n::\r\n\r\n pip install drf-chaos\r\n\r\nAdd 'drf_chaos' to your INSTALLED_APPS setting.\r\n\r\n::\r\n\r\n INSTALLED_APPS = (\r\n ...\r\n 'drf_chaos',\r\n )\r\n\r\n.. _Django REST Framework: https://github.com/tomchristie/django-rest-framework\r\n.. _DRF HTTP status codes: https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/status.py", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aledista/drf-chaos", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "drf-chaos", "package_url": "https://pypi.org/project/drf-chaos/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/drf-chaos/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aledista/drf-chaos" }, "release_url": "https://pypi.org/project/drf-chaos/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Collection of decorators and middlewares for testing DRF API under unexpected circumstances.", "version": "0.1.3" }, "last_serial": 1590319, "releases": { "0.1": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "533631ec7357613c45972eb4244fbae4", "sha256": "cbd428cf791c5cb9391fc05e46d80ce395a56d49241a49c43427ced6544309d7" }, "downloads": -1, "filename": "drf-chaos-0.1.1.macosx-10.10-intel.exe", "has_sig": false, "md5_digest": "533631ec7357613c45972eb4244fbae4", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 67893, "upload_time": "2015-06-07T23:28:42", "url": "https://files.pythonhosted.org/packages/34/1a/ed91dd1ed457d2f15b74d3282db8231cd70502eef039420382d5afd9431a/drf-chaos-0.1.1.macosx-10.10-intel.exe" }, { "comment_text": "", "digests": { "md5": "2813ef921b818edbd4af5db68c66ab50", "sha256": "b5a3ee8dae6baebbda22bd3c2a027b355439bda301bdcad697817eb3dcba5b50" }, "downloads": -1, "filename": "drf-chaos-0.1.1.tar.gz", "has_sig": false, "md5_digest": "2813ef921b818edbd4af5db68c66ab50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2790, "upload_time": "2015-06-07T23:28:38", "url": "https://files.pythonhosted.org/packages/09/55/abbbe697ade1c968f590899cf8ed61a25b23396e194d1aec459c76d3e7f6/drf-chaos-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "20f0fc0342b042d4d1d8ccbea77241f2", "sha256": "f49d27885b1ec5623bee6c25b476e0fc95c4d2f908105059d3709e8ac9e21c85" }, "downloads": -1, "filename": "drf-chaos-0.1.2.macosx-10.10-intel.exe", "has_sig": false, "md5_digest": "20f0fc0342b042d4d1d8ccbea77241f2", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 68282, "upload_time": "2015-06-09T23:29:40", "url": "https://files.pythonhosted.org/packages/56/a7/2cf393a0c665dd28647de3595285de230da2a684cfaec953f8189bf6f34c/drf-chaos-0.1.2.macosx-10.10-intel.exe" }, { "comment_text": "", "digests": { "md5": "ebf137b6289db3ac0dd6b69c6bf8a943", "sha256": "1f2682b789c013e5c18e5f5f72f358246a36c569534d0e729b4a55d5f994fd0b" }, "downloads": -1, "filename": "drf-chaos-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ebf137b6289db3ac0dd6b69c6bf8a943", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3009, "upload_time": "2015-06-09T23:29:36", "url": "https://files.pythonhosted.org/packages/69/11/b5cd6419624488a6c82726dd13a25a6bbbfe78ee0666441d5deb40d9b577/drf-chaos-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f2a330c52d18e8afdbcc80a850d1b1d4", "sha256": "ea1802b455ae9aca8d4864ed7469a8386c914557cabba75c5485a0dedca5b8cc" }, "downloads": -1, "filename": "drf-chaos-0.1.3.macosx-10.10-intel.exe", "has_sig": false, "md5_digest": "f2a330c52d18e8afdbcc80a850d1b1d4", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 68702, "upload_time": "2015-06-10T00:05:29", "url": "https://files.pythonhosted.org/packages/65/cd/1811c6b9f1cc18aea80a824372f8c00ba69c13bdee1ed8a006d0ca724f4f/drf-chaos-0.1.3.macosx-10.10-intel.exe" }, { "comment_text": "", "digests": { "md5": "19942d49b61412288bb83838bcb512ba", "sha256": "1141ec3f75289b7c66cd8b760da7ebeb371b15ea21b976658d483b9bc5db9555" }, "downloads": -1, "filename": "drf-chaos-0.1.3.tar.gz", "has_sig": false, "md5_digest": "19942d49b61412288bb83838bcb512ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2015-06-10T00:05:25", "url": "https://files.pythonhosted.org/packages/4e/70/26c1925d21a63b356735122b6d511f45a55a3f86281bebb4f3244ec9d0ca/drf-chaos-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f2a330c52d18e8afdbcc80a850d1b1d4", "sha256": "ea1802b455ae9aca8d4864ed7469a8386c914557cabba75c5485a0dedca5b8cc" }, "downloads": -1, "filename": "drf-chaos-0.1.3.macosx-10.10-intel.exe", "has_sig": false, "md5_digest": "f2a330c52d18e8afdbcc80a850d1b1d4", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 68702, "upload_time": "2015-06-10T00:05:29", "url": "https://files.pythonhosted.org/packages/65/cd/1811c6b9f1cc18aea80a824372f8c00ba69c13bdee1ed8a006d0ca724f4f/drf-chaos-0.1.3.macosx-10.10-intel.exe" }, { "comment_text": "", "digests": { "md5": "19942d49b61412288bb83838bcb512ba", "sha256": "1141ec3f75289b7c66cd8b760da7ebeb371b15ea21b976658d483b9bc5db9555" }, "downloads": -1, "filename": "drf-chaos-0.1.3.tar.gz", "has_sig": false, "md5_digest": "19942d49b61412288bb83838bcb512ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2015-06-10T00:05:25", "url": "https://files.pythonhosted.org/packages/4e/70/26c1925d21a63b356735122b6d511f45a55a3f86281bebb4f3244ec9d0ca/drf-chaos-0.1.3.tar.gz" } ] }