{ "info": { "author": "Nathan Wilcox", "author_email": "nejucomo@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "=========\nonslaught\n=========\n\nRun style and static checks against a python codebase, execute automated\ntests with coverage.\n\nSpecific tests are:\n\n* PEP8 style.\n* pyflakes static checks.\n* sdist creation and installation.\n* unittests.\n\nIt also generates branch-coverage reports.\n\n`onslaught`:\n\n- does not require your package's users to install it,\n- has minimal configuration and customization [#]_,\n- leaves your source directory the way it found it,\n- leaves your base python packages unmodified,\n- ensures your project generates a clean `sdist` [#]_,\n- tests the `sdist` install process [#]_,\n- runs unittests against the installed package [#]_,\n- and generates branch coverage reports.\n\n.. [#] No tests can be customized or disabled. All packages which pass\n the `onslaught` meet the same quality standards. The users current\n directory has no effect. Where possible, other configurability\n will be removed.\n\n.. [#] This is strict: any ``warning:`` lines in the `sdist` creation\n command are `onslaught` failures.\n\n.. [#] So your unittests pass. Great! But does your software install?\n\n.. [#] Test the \"production\" form of your code, not dev source.\n\nQuick Start\n===========\n\nInstallation\n------------\n\nFirst, install with pip:\n\n.. code:: bash\n\n $ pip install onslaught\n\nRunning\n-------\n\nNow run it against your projects:\n\n.. code:: bash\n\n $ onslaught /path/to/my/project\n\n-or:\n\n.. code:: bash\n\n $ cd /path/to/my/project ; onslaught\n\nThis runs a series of \"test phases\" and then generates coverage\nreports. The output is concise; details for a test phase are only\ndisplayed if that phase fails.\n\n(Onslaught never modifies the project directory, nor the current\ndirectory.)\n\nDiagnosis\n---------\n\nEach run of onslaught on a project will create a fresh directory at\n``~/.onslaught/results/${PROJECT_NAME}``. If this directory exists when\nstarting a new onslaught run, it is removed, so that the contents of this\ndirectory are always self-consistent and are specific to the last\nrun.\n\nThis results directory has a few important subdirectories:\n\n``logs/``\n This contains a ``main.log`` that describes high level operation,\n including all subcommand arguments, so you can rerun any of these\n commands manually. It also contains a log for each subcommand run\n separately, prefixed with a decimal ordering, so you can always see\n the complete output of each command.\n\n``coverage/``\n The HTML generated coverage report. Open ``index.html`` with your\n browser. Notice you can sort the table by clicking column headers or\n using the keybindings (help found by clicking keyboard icon).\n\n``dist/``\n This contains the result of ``./setup.py sdist``, so you can\n interactively test the same source distribution that is used for\n installation and unit testing by onslaught.\n\n``venv/``\n This is the `virtualenv` used to test the package installation. You\n could interactively experiment with your project here.\n\n\nStatus\n======\n\nThis is \"alpha\" code. There are no unittests, so this project doesn't (yet) follow it's own prescription (see `#8`_). :-(\n\n.. _`#8`: https://github.com/nejucomo/onslaught/issues/8\n\nRoadmap\n=======\n\nOnce it has thorough test coverage and a handful of users have notified\nme that they've used it successfully, or filed bugs, then I will release\n'0.1' after fixing a subset of the bugs.\n\nThe goal for 1.0 is to have the \"right\" inflexible criteria (see\n`Philosophy`_) baked into `onslaught`. For example, maybe it should\ngenerate and test ``wheel`` instead of ``sdist``, or maybe it should\ntest both. It should work with python 2 and 3.\n\nAt that point, my vision is for `onslaught` to be automatically run\nagainst all python packages (eg on PyPI) and the results published\nsomewhere.\n\nPhilosophy\n==========\n\n`onslaught` is a \"badge\". Tested software conforms to the `onslaught`,\nnot vice versa. Therefore, a large fraction of software will not pass\n`onslaught` tests, especially popular and/or slowly evolving\npackages. This is fine.\n\nThere should be no reason you don't run it against your codebase. If it\nfails and your codebase has legacy concerns, c'est la vie. If, on the\nother hand, you want to achieve and preserve the `onslaught` badge of\nawesomeness, then go for it. ;-)\n\n**Note:** Currently `onslaught` is a prototype in flux, so take the\nabove with a grain of salt.\n", "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/nejucomo/onslaught", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "onslaught", "package_url": "https://pypi.org/project/onslaught/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/onslaught/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/nejucomo/onslaught" }, "release_url": "https://pypi.org/project/onslaught/0.1.dev4/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.1.dev4" }, "last_serial": 2104468, "releases": { "0.1.dev0": [ { "comment_text": "", "digests": { "md5": "0e2cb14003a745a8b284291b6f6a8f76", "sha256": "a7e5f85c99bcf6352974ccbaa4966ff3a882c0a6c0561375c6d23ae10c90665a" }, "downloads": -1, "filename": "onslaught-0.1.dev0.tar.gz", "has_sig": true, "md5_digest": "0e2cb14003a745a8b284291b6f6a8f76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5538, "upload_time": "2015-11-30T03:05:28", "url": "https://files.pythonhosted.org/packages/49/ce/604667a39d36227a2ae37a2a3247a527a09d111c3678d58d8c6c81f34395/onslaught-0.1.dev0.tar.gz" } ], "0.1.dev1": [ { "comment_text": "", "digests": { "md5": "a185c4d6e590f73db6fd0b80c59450c6", "sha256": "70cb1a2e707e244fbcb3e0736fa3fd3550952182877b4a3ade48df958c36d72d" }, "downloads": -1, "filename": "onslaught-0.1.dev1.tar.gz", "has_sig": true, "md5_digest": "a185c4d6e590f73db6fd0b80c59450c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6427, "upload_time": "2016-04-24T20:28:37", "url": "https://files.pythonhosted.org/packages/0c/35/489d24e640dff075f21f358ffd0cf445d14fc5e5a5c7ef8903ff1f8bc153/onslaught-0.1.dev1.tar.gz" } ], "0.1.dev2": [ { "comment_text": "", "digests": { "md5": "ae4c0596b2596ad2943322b0973f32ef", "sha256": "5675f001fb3f95a6a2e0cd7cbdb4c8c9960c113919da71d1f30ae71be06379ca" }, "downloads": -1, "filename": "onslaught-0.1.dev2.tar.gz", "has_sig": true, "md5_digest": "ae4c0596b2596ad2943322b0973f32ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7488, "upload_time": "2016-04-26T00:26:36", "url": "https://files.pythonhosted.org/packages/45/5f/e810dfbb440c212d2c49401e22bc9df35cbe7bf3cbdde971ea547b4eb58e/onslaught-0.1.dev2.tar.gz" } ], "0.1.dev3": [ { "comment_text": "", "digests": { "md5": "15ee2e684bdbd5bd0fdc55690bca803a", "sha256": "6a391b8a88a74583afb2988cdebe8a8e832820a20bb043c0dfc5f1944a5d296b" }, "downloads": -1, "filename": "onslaught-0.1.dev3.tar.gz", "has_sig": true, "md5_digest": "15ee2e684bdbd5bd0fdc55690bca803a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9497, "upload_time": "2016-05-05T13:52:57", "url": "https://files.pythonhosted.org/packages/6a/68/0d75df8cebf99f6461b61e34ebe1438a102569ed609c2b27734ef4404ea3/onslaught-0.1.dev3.tar.gz" } ], "0.1.dev4": [ { "comment_text": "", "digests": { "md5": "3b52e0b9453f506cb2097968cdacb24f", "sha256": "b15a1e9a7d10866e9c7034af8c675731939cf9f0f9427f2186d208ecf0a57c52" }, "downloads": -1, "filename": "onslaught-0.1.dev4.tar.gz", "has_sig": false, "md5_digest": "3b52e0b9453f506cb2097968cdacb24f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9621, "upload_time": "2016-05-07T21:18:46", "url": "https://files.pythonhosted.org/packages/75/4b/c7121c2573dc3479ddac8b8bb595bc78208194ef86713417bbc17ab85b48/onslaught-0.1.dev4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3b52e0b9453f506cb2097968cdacb24f", "sha256": "b15a1e9a7d10866e9c7034af8c675731939cf9f0f9427f2186d208ecf0a57c52" }, "downloads": -1, "filename": "onslaught-0.1.dev4.tar.gz", "has_sig": false, "md5_digest": "3b52e0b9453f506cb2097968cdacb24f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9621, "upload_time": "2016-05-07T21:18:46", "url": "https://files.pythonhosted.org/packages/75/4b/c7121c2573dc3479ddac8b8bb595bc78208194ef86713417bbc17ab85b48/onslaught-0.1.dev4.tar.gz" } ] }