{ "info": { "author": "Matt Patterson", "author_email": "matt@reprocessed.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: Unix", "Topic :: Software Development :: Testing" ], "description": "red / green / refactor\n======================\n\n.. image:: https://secure.travis-ci.org/fidothe/rgf.png \n :alt: Build Status \n :target: http://travis-ci.org/fidothe/rgf\n\n- CI on Travis: http://travis-ci.org/fidothe/rgf\n- Code on Github: https://github.com/fidothe/rgf\n- Package on PyPI: http://pypi.python.org/pypi/rgf\n\nA currently experimental attempt at an RSpec-esque BDD testing framework for Python.\n\nBasically we're aiming for syntax along these lines:\n\n::\n\n from rgf import describe, it\n\n with describe(\"That Thing\"):\n @it(\"test desc\")\n def spec(context):\n # test code here\n assert stuff() \n\n``x_spec.py`` files go in a directory structure under, by convention, ``spec/`` in the\nroot of your project and are run using:\n\n::\n\n rgf spec\n\n\nThe specifics of the syntax are currently wrong, being borrowed directly from RSpec.\nSuggestions warmly received.\n\n(Current front-runners are ``subject`` and ``context`` in place of ``describe``, keeping ``it`` for the spec decorator.)\n\nBecause the spec functions are just functions, not methods, and are hoovered up by the ``@it`` decorator they're\neffectively anonymous and can all have the same name for ease of thinking:\n\n::\n\n with subject('This Class'):\n @it('can calculate X')\n def s(world):\n pass\n\n @it('can account for Y')\n def s(world):\n pass\n\n\nThe aim is for something pythonic, with nested context and good spec names being the primary focus: minimum magic, minimum fuss.\n\nChangelog\n=========\n0.2.0.1 (2012-05-19)\n====================\n\n- bump to update the Changelog, which I had neglected to do for 0.2.0 (sorry)\n\n0.2.0 (2012-05-18)\n==================\n\n- Python 3 support, courtesy of Marc Abramowitz\n- create rgf and rgf-x.y scripts using distribute\n- ExampleGroups can be nested using ``with describe():``\n\n0.0.2 (2012-05-13)\n==================\n\n- Anonymous module collection of specs using randomly-generated module names.\n (fixes problems with imports of specs related to polluting ``sys.modules``)\n\n0.0.1 (2012-05-12)\n==================\n\nThe so-how-does-pypi-work-then? release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/fidothe/rgf", "keywords": "testing bdd tdd", "license": "LICENSE", "maintainer": null, "maintainer_email": null, "name": "rgf", "package_url": "https://pypi.org/project/rgf/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rgf/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/fidothe/rgf" }, "release_url": "https://pypi.org/project/rgf/0.2.0.1/", "requires_dist": null, "requires_python": null, "summary": "rgf: red/green/refactor, a BDD framework for writing and running specs.", "version": "0.2.0.1" }, "last_serial": 798943, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "89252c44277a53dbe331d953510584df", "sha256": "6199155f6c29e41eea76ddc2df6538a28ad3faabefccf1c0c4bd5b8d6c24102c" }, "downloads": -1, "filename": "rgf-0.0.1.tar.gz", "has_sig": false, "md5_digest": "89252c44277a53dbe331d953510584df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5168, "upload_time": "2012-05-13T09:52:56", "url": "https://files.pythonhosted.org/packages/e6/a6/43f3125c30d77b6a18a63a4181d44a7ffe41146e30493cc0542354b6505d/rgf-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c13b2f39a6248d8f5f877d575e294d50", "sha256": "b8abe42a3c2d8c6a5725bbfac0690b05c55b5374c292a7e116e69f389b1a1e8d" }, "downloads": -1, "filename": "rgf-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c13b2f39a6248d8f5f877d575e294d50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5204, "upload_time": "2012-05-13T23:03:43", "url": "https://files.pythonhosted.org/packages/a4/02/445031d50d9ec2c1e9a0e001475e3400c5ea19dda27305e25d4fe77789be/rgf-0.0.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d9d1442ec16f8c744feac8adbe205436", "sha256": "2fa8b1707c4b722f475af72a8eb8a1d45dfc3f8cc9040cf8fa74aceb24db6601" }, "downloads": -1, "filename": "rgf-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d9d1442ec16f8c744feac8adbe205436", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5679, "upload_time": "2012-05-19T00:21:40", "url": "https://files.pythonhosted.org/packages/34/07/c79fcbb9c253b97c2cfaef0c52daadabd1adaf7c2d18c39ded7695e9fce2/rgf-0.2.0.tar.gz" } ], "0.2.0.1": [ { "comment_text": "", "digests": { "md5": "a49a1a153e8b9db59a529488207acbcd", "sha256": "66c4395e441dcb756fe64675579c207d95c1748ac2b0048d601dcec156c954e1" }, "downloads": -1, "filename": "rgf-0.2.0.1.tar.gz", "has_sig": false, "md5_digest": "a49a1a153e8b9db59a529488207acbcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5922, "upload_time": "2012-05-19T20:47:22", "url": "https://files.pythonhosted.org/packages/51/59/da2ef46a1e04a731e9babb7b2aeed1c73cb98e7da44e06f46758f37b8b50/rgf-0.2.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a49a1a153e8b9db59a529488207acbcd", "sha256": "66c4395e441dcb756fe64675579c207d95c1748ac2b0048d601dcec156c954e1" }, "downloads": -1, "filename": "rgf-0.2.0.1.tar.gz", "has_sig": false, "md5_digest": "a49a1a153e8b9db59a529488207acbcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5922, "upload_time": "2012-05-19T20:47:22", "url": "https://files.pythonhosted.org/packages/51/59/da2ef46a1e04a731e9babb7b2aeed1c73cb98e7da44e06f46758f37b8b50/rgf-0.2.0.1.tar.gz" } ] }