{ "info": { "author": "Yanzheng Li", "author_email": "yanzheng819@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: Freely Distributable", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development" ], "description": "nifty\n=====\n\n.. figure:: https://raw.github.com/yanzhengli/nifty/master/icons/icon_256x256.png\n :alt: \n\n|Build Status|\n\nA nifty and interactive command-line tool for efficient management and\nexecution of commands grouped in hierarchical structures.\n\nInstall\n-------\n\n``pip install nifty --upgrade``\n\n`PyPI link `__ here.\n\nExample\n-------\n\nSuppose you are working on a large project that spans multiple\ncomponents and touches many files in the codebase. During the\ndevelopment process you constantly have to make changes in different\nfiles and components, and each change can impact the entire project.\n\nIn order to make sure that your changes do not break the existing\nbehavior of the system, regardless of how big or small they are, you\nhave to run your unit tests and integration tests continuously.\n\nHowever, it's not always trivial to manage and run all the tests you\nneed in a complex project. Sometimes you just want to run a subset of a\ngroup of tests, but occasionally you want to run a multitude of tests\nacross different parts of the project. Moreover, there might not be any\ntest scripts provided to you that are sufficiently flexible to allow you\nto run any individual tests or combinations of them efficiently.\n\nWell, despair no more, *nifty* was designed to address this problem. All\nyou have do is to specify all the tests in a ``.yaml`` config file in a\nhierarchical structure that makes sense to you.\n\nBelow is a hypothetical example:\n\n.. code:: yaml\n\n unittests:\n backend:\n - 'base/utils/tests/utils_test.test'\n - 'components/models/tests/models_test.test'\n - 'servlet/v1/handlers/tests/handlers_test.test'\n logic:\n - 'logic/core/encapsulation/tests/encapsulation_test.test'\n - 'logic/core/request_delegation/tests/request_delegation.test'\n frontend:\n - 'www/servlet/tests/servlet_test.test'\n - 'rendering/tests/rendering_test.test'\n - 'js/tests/js_test.test'\n integrations:\n - 'v1/integrations/integration_test_1.test'\n - 'v1/integrations/integration_test_2.test'\n - 'v1/integrations/integration_test_3.test'\n\nSay you put this file under ``test_configs/project.yaml``, all you have\nto do is to run this with *nifty*:\n``nifty test_configs/project.yaml -c testrunner -r '--verbose'``\n\nIn a nutshell, you pass in the path of the config file, in this case\nit's ``test_configs/project.yaml``, then followed by the command that's\nused to run the tests, in this case it's a hypothetical command called\n``testrunner``, following right after either ``-c`` or ``--command``.\n\nAdditionally, you can also specify extra arguments that get passed to\nthe command followed by either ``-r`` or ``--arguments`` (in this case\nit's ``--verbose``).\n\n**Note**: for the current version, only the most bottom level items can\nbe arranged into lists. This is by design for the time being, and will\nprobably be changed later on for greater flexibility.\n\nLast, if you still feel lost, just do ``nifty --help``.\n\nItem Selection\n--------------\n\n*Nifty* allows you to select one or more items simultaneously. For the\nsample config file above, the following is shown:\n\n::\n\n From config file: test_configs/project.yaml\n\n [1] unittests\n [1] logic\n [1] logic/core/encapsulation/tests/encapsulation_test.test\n [2] logic/core/request_delegation/tests/request_delegation.test\n [2] frontend\n [1] www/servlet/tests/servlet_test.test\n [2] rendering/tests/rendering_test.test\n [3] js/tests/js_test.test\n [3] backend\n [1] base/utils/tests/utils_test.test\n [2] components/models/tests/models_test.test\n [3] servlet/v1/handlers/tests/handlers_test.test\n [2] integrations\n [1] v1/integrations/integration_test_1.test\n [2] v1/integrations/integration_test_2.test\n [3] v1/integrations/integration_test_3.test\n\n Please enter: a) One or more paths (e.g. '1.2, 3.4.5') b) \"all\" c) \"exit\"\n >>\n\nIf you just want to select a single item, just enter an integer that's\nlabeled for the desired item, and the interactive prompt will step into\nthat item. For example, if you want to select all integration tests,\njust enter ``2``, the result will look like this:\n\n::\n\n From config file: test_configs/project.yaml\n\n [1] v1/integrations/integration_test_1.test\n [2] v1/integrations/integration_test_2.test\n [3] v1/integrations/integration_test_3.test\n\n Please enter: a) One or more paths (e.g. '1.2, 3.4.5') b) \"all\" c) \"exit\"\n >>\n\nYou can also select one or more items that may not be in the same\nlogical group, using dot-separated paths, with each path separated by a\ncomma. For example, if you want to select ``js/tests/js_test.test``,\n``base/utils/tests/utils_test.test`` and\n``v1/integrations/integration_test_1.test`` together, you can enter\n``1.2.3, 1.3.1, 2.1``.\n\nThe result will look like this:\n\n::\n\n Please enter: a) One or more paths (e.g. '1.2, 3.4.5') b) \"all\" c) \"exit\"\n >> 1.2.3, 1.3.1, 2.1\n\n\n Going to execute the following 3 item(s) with the command testrunner:\n\n [1] js/tests/js_test.test\n [2] base/utils/tests/utils_test.test\n [3] v1/integrations/integration_test_1.test\n\nLast, there are two more options that can be convenient from time to\ntime. ``-l`` or ``--list`` lists all the targets without running them\nand ``-a`` or ``--all`` runs all targets.\n\nLatest version\n--------------\n\n1.6.3\n\nLicense\n-------\n\nDO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004\n\nCopyright (C) 2014 Yanzheng Li\n\nEveryone is permitted to copy and distribute verbatim or modified copies\nof this license document, and changing it is allowed as long as the name\nis changed.\n\nDO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR\nCOPYING, DISTRIBUTION AND MODIFICATION\n\n0. You just DO WHAT THE FUCK YOU WANT TO.\n\n.. |Build Status| image:: https://travis-ci.org/yanzhengli/nifty.png?branch=dev\n :target: https://travis-ci.org/yanzhengli/nifty", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://yanzhengli.github.io/nifty/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "nifty", "package_url": "https://pypi.org/project/nifty/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/nifty/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://yanzhengli.github.io/nifty/" }, "release_url": "https://pypi.org/project/nifty/1.6.3/", "requires_dist": null, "requires_python": null, "summary": "Interactive command-line helper", "version": "1.6.3" }, "last_serial": 1109561, "releases": { "1.5.0": [ { "comment_text": "", "digests": { "md5": "2fb81127716373cde3f3596705bef951", "sha256": "dc0fbf3501834cf6071b21aad25ba211cdd20828ca1394c7eeda96ab733b1632" }, "downloads": -1, "filename": "nifty-1.5.0.tar.gz", "has_sig": false, "md5_digest": "2fb81127716373cde3f3596705bef951", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6222, "upload_time": "2014-05-10T07:08:42", "url": "https://files.pythonhosted.org/packages/7f/5f/251c1f25378c017f921fb214899d2b6955c2ec933311f634f79270428f12/nifty-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "5fa27a9eacd0c888dbda9b306e899cc9", "sha256": "5b374aff1e55998fb5288808e2d9f3a031c50489ef875377fddf6dc1d0f965fe" }, "downloads": -1, "filename": "nifty-1.6.0.tar.gz", "has_sig": false, "md5_digest": "5fa27a9eacd0c888dbda9b306e899cc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6212, "upload_time": "2014-05-10T08:07:48", "url": "https://files.pythonhosted.org/packages/6d/0c/9a40d65b6a9f46076b22bd71c73b6a324b65e2532235f258d0ed86246ae4/nifty-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "d0bf0a6cafac9c11763b8177f4a8167b", "sha256": "c3ef9f19173ce3cd0c39e15b542c0438206ba656cd10d603f8c9d4688bbad23c" }, "downloads": -1, "filename": "nifty-1.6.1.tar.gz", "has_sig": false, "md5_digest": "d0bf0a6cafac9c11763b8177f4a8167b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8609, "upload_time": "2014-05-31T04:55:59", "url": "https://files.pythonhosted.org/packages/5a/27/b6d2295104773b592d9b5911fe2102876ddde8c6c5f82c68faf0b859a109/nifty-1.6.1.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "36a6b92dc05348cc06fa7c411a9ada5d", "sha256": "d05e13ee6db6b76ae4544b133a43c0b9c598a194f55361b9e7cd221b5e8f7f40" }, "downloads": -1, "filename": "nifty-1.6.2.tar.gz", "has_sig": false, "md5_digest": "36a6b92dc05348cc06fa7c411a9ada5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8620, "upload_time": "2014-05-31T05:03:06", "url": "https://files.pythonhosted.org/packages/35/c5/cc60d6e3ae9f238cb19e556c57e679fe4f2d5203d1d75b83a6e5b01bed9c/nifty-1.6.2.tar.gz" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "97b08f3eef35a332e442d092ee1f0432", "sha256": "9ee4ecf3c747572a39ecc47cf8982cdaba8c0ef2fcefa5d2bcc180f61ffb2113" }, "downloads": -1, "filename": "nifty-1.6.3.tar.gz", "has_sig": false, "md5_digest": "97b08f3eef35a332e442d092ee1f0432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8592, "upload_time": "2014-05-31T05:26:56", "url": "https://files.pythonhosted.org/packages/10/d7/094803936bad38d03d263979dc99713a7e18838cac112182a9288f68a8c1/nifty-1.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "97b08f3eef35a332e442d092ee1f0432", "sha256": "9ee4ecf3c747572a39ecc47cf8982cdaba8c0ef2fcefa5d2bcc180f61ffb2113" }, "downloads": -1, "filename": "nifty-1.6.3.tar.gz", "has_sig": false, "md5_digest": "97b08f3eef35a332e442d092ee1f0432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8592, "upload_time": "2014-05-31T05:26:56", "url": "https://files.pythonhosted.org/packages/10/d7/094803936bad38d03d263979dc99713a7e18838cac112182a9288f68a8c1/nifty-1.6.3.tar.gz" } ] }