{ "info": { "author": "Tom\u00e1\u0161 Ehrlich", "author_email": "tomas.ehrlich@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://travis-ci.org/djentlemen/django-smoked.svg)](https://travis-ci.org/djentlemen/django-smoked)\n[![Coverage Status](https://coveralls.io/repos/djentlemen/django-smoked/badge.svg?branch=master)](https://coveralls.io/r/djentlemen/django-smoked?branch=master)\n\n# django-smoked\n\nSmoke tests framework for Django Web Framework\n\n## Motivation\n\n> Code without tests is broken by design. - Jacob Kaplan-Moss, Django core developer\n\nEvery successful deployment of an application must be followed by series of tests to ensure that website is up and works.\n\nCompared 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.\n\n## Idea\n\nCreate framework for **reusable** smoke tests which could be easily shared among projects.\n\nEach test is defined by a name and an action to be taken:\n\n```python\nclass DatabaseTest(SmokeTest):\n name = 'Database test'\n description = 'Check all database connection are valid'\n\n def test(self):\n ...\n```\n \n Smoke tests are registered manually in custom module:\n\n```python\n # settings.py\n SMOKE_TESTS = 'myproject.smoked'\n```\n\n```python\n # myproject/smoked.py\n import smoked\n\n # Built-in test\n smoked.register('smoked.DatabaseTest')\n\n # Custom test\n smoked.register('myproject.MessageQueueTest')\n\n # ad-hoc function\n def smoke_test():\n ...\n smoked.register(smoke_test, name='Test my setup', description='...')\n\n # ad-hoc function using decorator\n @smoked.register(name='Verbose name', description='Long text')\n def smoke_test():\n ...\n\n # default name and description\n @smoked.register\n def smoke_test(): # name='smoke_test'\n \"\"\" Docstring will become description \"\"\"\n ...\n\n```\n\nTest runner is trigger either by management command:\n\n```shell\n./manage.py smoked\n```\n\nor an API call:\n\n```shell\ncurl -d\"TOKEN=VerySecretToken\" http://myproject.io/_smoked/\n```\n\n## Licence\n\nMIT", "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/djentlemen/django-smoked", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-smoked", "package_url": "https://pypi.org/project/django-smoked/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-smoked/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/djentlemen/django-smoked" }, "release_url": "https://pypi.org/project/django-smoked/0.1-alpha.1/", "requires_dist": null, "requires_python": null, "summary": "Smoke tests framework for Django Web Framework", "version": "0.1-alpha.1" }, "last_serial": 1394655, "releases": { "0.1-alpha.1": [ { "comment_text": "", "digests": { "md5": "cc6362ebdefb4737a41c381506f6299a", "sha256": "7a2e2783bffea1e55a757210faa2aa04344b1a32094acbaf667083feae46de1f" }, "downloads": -1, "filename": "django_smoked-0.1_alpha.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc6362ebdefb4737a41c381506f6299a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9359, "upload_time": "2015-01-24T12:17:59", "url": "https://files.pythonhosted.org/packages/b8/22/38ec93e64b3533914f85a6e11f2ae47dee58299212e999235def80b6dfe4/django_smoked-0.1_alpha.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf8f06763a4443b6e9f79ed4a1a887da", "sha256": "3887730411c4e4ba7e24aa6f9d4c06fdb004c4177c6e325cc8b0e3cecbeafbfa" }, "downloads": -1, "filename": "django-smoked-0.1-alpha.1.tar.gz", "has_sig": false, "md5_digest": "cf8f06763a4443b6e9f79ed4a1a887da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5324, "upload_time": "2015-01-24T12:17:56", "url": "https://files.pythonhosted.org/packages/fa/f7/eba6a5e54a68fae2bef42b9b3d2846c78795aa9f5801a4d0d73ffe777dfd/django-smoked-0.1-alpha.1.tar.gz" } ], "0.1a": [ { "comment_text": "", "digests": { "md5": "7fd4ab49a825efaa36ca387f5ed32059", "sha256": "61644e87a499472e0227e94450a74e26e1f81aa890b6032c17ea3f6a0e25a295" }, "downloads": -1, "filename": "django_smoked-0.1a-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fd4ab49a825efaa36ca387f5ed32059", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8812, "upload_time": "2015-01-24T11:32:13", "url": "https://files.pythonhosted.org/packages/b5/54/fb24347e459d51f72e2e2b14ff2de966edd78efd507f559b6d16515a8efe/django_smoked-0.1a-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcd5ba6d4d231abf3f46680e5be44cc0", "sha256": "0e8be31476fc6d098001e3f5646b9306006d7a00de46336710f8433f85abb435" }, "downloads": -1, "filename": "django-smoked-0.1a.tar.gz", "has_sig": false, "md5_digest": "fcd5ba6d4d231abf3f46680e5be44cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5176, "upload_time": "2015-01-24T11:32:08", "url": "https://files.pythonhosted.org/packages/df/b8/354372d9cba8eadf4a75a3d1a840938b713a3e74a177b5f924012d83e119/django-smoked-0.1a.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cc6362ebdefb4737a41c381506f6299a", "sha256": "7a2e2783bffea1e55a757210faa2aa04344b1a32094acbaf667083feae46de1f" }, "downloads": -1, "filename": "django_smoked-0.1_alpha.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc6362ebdefb4737a41c381506f6299a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9359, "upload_time": "2015-01-24T12:17:59", "url": "https://files.pythonhosted.org/packages/b8/22/38ec93e64b3533914f85a6e11f2ae47dee58299212e999235def80b6dfe4/django_smoked-0.1_alpha.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf8f06763a4443b6e9f79ed4a1a887da", "sha256": "3887730411c4e4ba7e24aa6f9d4c06fdb004c4177c6e325cc8b0e3cecbeafbfa" }, "downloads": -1, "filename": "django-smoked-0.1-alpha.1.tar.gz", "has_sig": false, "md5_digest": "cf8f06763a4443b6e9f79ed4a1a887da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5324, "upload_time": "2015-01-24T12:17:56", "url": "https://files.pythonhosted.org/packages/fa/f7/eba6a5e54a68fae2bef42b9b3d2846c78795aa9f5801a4d0d73ffe777dfd/django-smoked-0.1-alpha.1.tar.gz" } ] }