{ "info": { "author": "Ben Emery", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://travis-ci.org/benemery/pyguard.svg?branch=master\n :target: https://travis-ci.org/benemery/pyguard\n\n.. image:: https://coveralls.io/repos/benemery/pyguard/badge.svg?branch=master\n :target: https://coveralls.io/r/benemery/pyguard?branch=master\n\nPyGuard\n=======\n\nA python auto test runner inspired by the `guard `_ project.\n\nA simple example that runs all the tests when a file is modified would look something like this:\n\n.. code-block:: python\n\n from filewatch import file_updated_subject, Watcher\n\n from pyguard import guardian, GuardianObserver, RegexRule, RuleManager\n\n manager = RuleManager(cmd='py.test pyguard')\n manager.register_rules(\n RegexRule(regex=r'.*/pyguard/.*'),\n )\n\n guardian.register_manager(manager)\n\n # Set up our file observer\n file_updated_subject.register_observer(GuardianObserver())\n\n # Get our watcher going\n watcher = Watcher()\n watcher.run()\n\nAny ``RuleManager`` that you create will execute the given command whenever a registered rule matches a supplied file path.\n\nTo make things a little more granular, we can register a different set of rules. i.e.\n\n.. code-block:: python\n\n ...\n\n manager = RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')\n manager.register_rules(\n RegexRule(regex=r'.*/rules.py', cmd_augmentation={'test_name' : 'rules'}),\n RegexRule(regex=r'.*/core.py', cmd_augmentation={'test_name' : 'guardian'}),\n )\n\n guardian.register_manager(manager)\n\n ...\n\n\nTo enforce a particular naming convention we can take things even further using named groups within the regex itself. If we have say a ``views.py`` and we know that the tests for said views exist in ``test_views.py``, then we can simple use:\n\n.. code-block:: python\n\n ...\n\n manager = RuleManager(cmd='py.test pyguard/tests/test_{test_name}.py')\n manager.register_rules(\n RegexRule(regex=r'.*/(?Pviews).py'),\n )\n\n guardian.register_manager(manager)\n\n ...", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/benemery/0.0.4/tarball/pyguard", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benemery/pyguard", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pyguard", "package_url": "https://pypi.org/project/pyguard/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyguard/", "project_urls": { "Download": "https://github.com/benemery/0.0.4/tarball/pyguard", "Homepage": "https://github.com/benemery/pyguard" }, "release_url": "https://pypi.org/project/pyguard/0.0.4/", "requires_dist": null, "requires_python": null, "summary": "Python auto test runner", "version": "0.0.4" }, "last_serial": 1387125, "releases": { "0.0.4": [ { "comment_text": "", "digests": { "md5": "84581672eafd61419e2633f8bcef65d2", "sha256": "79af61547dae5ee8338f2a961349c9fa54bd8be5a4597195da72b344253e680f" }, "downloads": -1, "filename": "pyguard-0.0.4.tar.gz", "has_sig": false, "md5_digest": "84581672eafd61419e2633f8bcef65d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2746, "upload_time": "2015-01-18T20:31:49", "url": "https://files.pythonhosted.org/packages/f1/b5/b130b4447deeb35fe0b53f36fffe4450a2b54ef8f96a36f72a461824155c/pyguard-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84581672eafd61419e2633f8bcef65d2", "sha256": "79af61547dae5ee8338f2a961349c9fa54bd8be5a4597195da72b344253e680f" }, "downloads": -1, "filename": "pyguard-0.0.4.tar.gz", "has_sig": false, "md5_digest": "84581672eafd61419e2633f8bcef65d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2746, "upload_time": "2015-01-18T20:31:49", "url": "https://files.pythonhosted.org/packages/f1/b5/b130b4447deeb35fe0b53f36fffe4450a2b54ef8f96a36f72a461824155c/pyguard-0.0.4.tar.gz" } ] }