{ "info": { "author": "Ethan Jucovy", "author_email": "flunc-dev@lists.coactivate.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Testing" ], "description": "\\\nFlunc: a functional test suite runner for web applications.\n\n\nInstallation\n============\n\nWe recommend installing into a Virtualenv_.\n\nYou should be able to install flunc by using ``easy_install flunc``; or \nyou can download the tarball, extract, and run ``python setup.py develop``. \n\nWriting tests\n=============\n\nFlunc tests are Twill_ scripts.\n\nThere is a firefox extension that allows you to record tests directly\nfrom within your browser. To install, visit\n\n * http://sourceforge.net/projects/testgen4web/\n\nThese tests are saved in an xml format. You can convert these tests\ninto a twill script by executing\n\n ``testgentotwill recorded.html > twillscript.twill``\n\nOf course, you can still write tests manually.\n\n\nRunning tests\n=============\n\nRun ``flunc --help`` for details on running the functional tests.\n\nBy default flunc will search ./ftests/ to find tests. You can change\nthis with the ``-p`` (``--path``) option.\n\nSome examples:\n\n ``flunc all``\n\nruns all tests listed in all.tsuite against http://localhost/\n\n ``flunc -t http://localhost:8080/some_portal all``\n\nruns all tests listed in all.tsuite against localhost:8080/some_portal\n\n ``flunc -c all create_user``\n\nruns create_user.twill using all.conf\n\n ``flunc -c all create_user login create_project destroy_project destroy_user``\n\nspecify an ad hoc suite creating and tearing down a user and project\non default host\n\nFinding tests\n=============\n\nIndividual tests are contained in \n\n .twill \n\nA suite of tests are contained in \n\n .tsuite \n\nSuite configurations are contained in\n\n .conf \n\nCleanup suites are run after a suite, and are in\n\n _cleanup.tsuite\n\nMore details are on the `Flunc homepage`_.\n\n.. _Virtualenv: http://pypi.python.org/pypi/virtualenv\n\n.. _Twill: http://pypi.python.org/pypi/twill\n\n.. _`Flunc homepage`: http://www.coactivate.org/projects/flunc\n\n0.8 (2011-04-04)\n================\n\n * Better behavior for the error case where search path (-p option) \n is nonexistent or not a directory (egj)\n\n * Add optional second argument to `url_qs` command in flunc.urlinspector\n which, if present, asserts the value of the given querystring parameter,\n as well as asserting its presence. (egj)\n\n * Add new command `css_len` in flunc.xpath which lets you test that \n a given CSS selector matches exactly N elements in the page (egj)\n\n0.7 (2009-10-05)\n================\n\n * The -D (--define) command-line option now works as documented (egj)\n\n0.6 (2009-07-06)\n================\n\n * Add extension module flunc.urlinspector with a command `url_qs` for\n making simple assertions about the current url's query string (egj)\n\n * Add `notfind_in_css` command to flunc.xpath (egj)\n\n * Display a more meaningful error message for invalid argument-passing\n syntaxes (egj)\n\n * Add a `zope_cleanup.opencore_user_cleanup` method to flush the opencore\n member cleanup queue when deleting users. No hard failure if you have a\n version of opencore that doesn't support this (pw)\n\n0.5 (2009-05-05)\n================\n\n * Add `find_in_css` command to flunc.xpath module. Use it to find a regex\n within a given CSS selector, like find_in_xpath (egj)\n\n * Transfer binary data directly to the twill script for passed-in param\n values instead of escaping it as a string (cabraham)\n\n0.4 (2008-12-18)\n================\n\n * Add two twill extensions to checkbox.py: `not_selected`, `is_enabled` (pw)\n\n * Change is_selected to work correctly with checkboxes, I think (pw)\n\n * Change default host to http://localhost (pw)\n\n0.3 (2008-06-25)\n================\n\n * Add a twill extension (flunc.checkbox.is_selected) for making assertions\n about form defaults (pw)\n\n0.2 (2008-04-14)\n================\n\n * Don't display BadRequest exceptions when calling zope_delobject() -- those\n are normal and just add a lot of noise (pw)\n\n * Added twill extension to support xpath. This introduces a dependency on lxml.\n There is one function added: find_in_xpath (rmarianski)\n\n find_in_xpath runs a find command on the html result of an xpath expression\n For example:\n {{{\n extend_with flunc.xpath\n find_in_xpath \"People\" \"//div[@id='oc-pageNav']\"\n }}}\n\n * Altered the namespace behavior; now there is no leading dot to\n specify the global namespace. (jhammel)\n\n Instead, we use a scope-based model:\n\n 1. items (tests, suites, configuration) is first looked up relavent to\n the current (local) namespace\n\n 2. if they are not found locally, they are looked up in the global namespace\n\n The dot is still used for namespace separation. So looking up foo.bar\n will first look for the namespace foo in the local namespace; if this\n exists, it will try to look up bar in that. If foo is not a namespace\n relavent to the current one, it will try to look up foo.bar in the\n global namespace.\n\n * Added hierarchal namespaces to tests (jhammel)\n\n Formerly, tests lived in a flat namespace. Using --recursive, one\n could put all tests under the root directory into a single namespace.\n Now each directory has a namespace associated with it. Tests or\n suites with single names refer to items in the same namespace (that\n is, the same directory). You may refer to the bar test or suite in\n the foo subdirectory as \n\n foo.bar\n\n If a suite has the same name as the subdirectory name, you may refer\n to it either with the full specification\n\n foo.foo\n\n or with shorthand\n\n foo\n\n To refer to the global namespace, preface the name of the test, suite,\n or path with a dot\n\n .foo.bar\n\n refers to the bar suite or test under the foo directory under the root\n directory. \n\n These changes should be backwards compatible with existing tests and\n were made to facilitate test organization with the hope of providing\n the flexibility to manipulate namespaces when tests live in multiple\n locations on disc.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.coactivate.org/projects/flunc", "keywords": "", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "flunc", "package_url": "https://pypi.org/project/flunc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/flunc/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.coactivate.org/projects/flunc" }, "release_url": "https://pypi.org/project/flunc/0.8/", "requires_dist": null, "requires_python": null, "summary": "Functional test suite runner", "version": "0.8" }, "last_serial": 792082, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "872b2e25e739c4d4e98ab92e4e3e554c", "sha256": "f067046599417f594d491442c4baef4a3eb42501fb929ca2f60f9162b85e20e1" }, "downloads": -1, "filename": "flunc-0.2.tar.gz", "has_sig": false, "md5_digest": "872b2e25e739c4d4e98ab92e4e3e554c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15303, "upload_time": "2008-04-14T17:01:44", "url": "https://files.pythonhosted.org/packages/e1/87/d8ee5e910f9fb6082d78ee0b15c0dc2c94172e943cc5c9dba1c67a3f6d6c/flunc-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "646b01d6fa702b7f7352a8178095cb8b", "sha256": "26a9fa82bea5624974a2874a8aca136f582bde0be66165142a84ec45d900a9f5" }, "downloads": -1, "filename": "flunc-0.3.tar.gz", "has_sig": false, "md5_digest": "646b01d6fa702b7f7352a8178095cb8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15785, "upload_time": "2008-06-25T14:38:31", "url": "https://files.pythonhosted.org/packages/43/42/3627cff824b39ad2fc6e61c891656d22b5e4ef1b3eb4669f3eaa19ab31a8/flunc-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "e60f5b44800d976d08a9caa09e354c0a", "sha256": "e8c8a0b1465ffc87fbec02ff635b24debd478e06f1251d026631a6343fbd2a87" }, "downloads": -1, "filename": "flunc-0.4.tar.gz", "has_sig": false, "md5_digest": "e60f5b44800d976d08a9caa09e354c0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17502, "upload_time": "2008-12-18T19:51:57", "url": "https://files.pythonhosted.org/packages/7f/90/81ecefba3ec68a01d97228bfdaca481f4bf71a81a4435477c44395cbedf4/flunc-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "14a3bc88b08a308637bcff23ab64b664", "sha256": "7d824823a6734e2b8c24445cdde79aaf849d4e018f133a9c44fb2fc6d66907d4" }, "downloads": -1, "filename": "flunc-0.5.tar.gz", "has_sig": false, "md5_digest": "14a3bc88b08a308637bcff23ab64b664", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17060, "upload_time": "2009-05-05T11:27:50", "url": "https://files.pythonhosted.org/packages/b8/70/1974df27150725be214a7c66d76a1da23cb9fc66b4bd6d4f540de94862c7/flunc-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e678f1f0c39d67bcfa3c6495a945d1ce", "sha256": "9d313b053d0355b97a6e2a9d23ed7cb94ae07bcc852def94e13d30b8b4c1d772" }, "downloads": -1, "filename": "flunc-0.6.tar.gz", "has_sig": false, "md5_digest": "e678f1f0c39d67bcfa3c6495a945d1ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17293, "upload_time": "2009-07-06T20:44:47", "url": "https://files.pythonhosted.org/packages/67/c8/47f5b7d929c4266f632f6f38c98dde0c9bc692bc0f6c985c792e26fb92aa/flunc-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "ae65f8059e8fa5d2564cd6bcaf1ad4b7", "sha256": "9430d7e5150afda7312ebe2782071a3bd771c2e743dd42305770e0c3c986e8d3" }, "downloads": -1, "filename": "flunc-0.7.tar.gz", "has_sig": false, "md5_digest": "ae65f8059e8fa5d2564cd6bcaf1ad4b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17655, "upload_time": "2009-10-05T18:05:24", "url": "https://files.pythonhosted.org/packages/94/49/a1be319881aa89d9a13ccd572716333c6375b9342b7e48fbee9854670cd9/flunc-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "82743b704555a6b44b45f24d0531bf69", "sha256": "be97285ca61a8751fadcde53b818132a518fbd0a42b50bc7a2445a3f3f2a169e" }, "downloads": -1, "filename": "flunc-0.8.tar.gz", "has_sig": false, "md5_digest": "82743b704555a6b44b45f24d0531bf69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25435, "upload_time": "2011-04-04T19:59:43", "url": "https://files.pythonhosted.org/packages/41/e1/998a7023a3e830fb63026a20428e48a93c8daea7eb7a3bcb2fcd5244f066/flunc-0.8.tar.gz" } ], "0.8dev": [ { "comment_text": "", "digests": { "md5": "31e70958ec9e94b5bfa7b3713cfef189", "sha256": "fa1f1cc22e1327f34b5bfd610c41f4f1f167124f99d95d66153c3aa38f9d6f0b" }, "downloads": -1, "filename": "flunc-0.8dev.tar.gz", "has_sig": false, "md5_digest": "31e70958ec9e94b5bfa7b3713cfef189", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25441, "upload_time": "2011-04-04T19:55:58", "url": "https://files.pythonhosted.org/packages/2d/b9/371709706fa0f3bd0c58138d06dc3815eacdf39eb013af603cb2dfae6045/flunc-0.8dev.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "82743b704555a6b44b45f24d0531bf69", "sha256": "be97285ca61a8751fadcde53b818132a518fbd0a42b50bc7a2445a3f3f2a169e" }, "downloads": -1, "filename": "flunc-0.8.tar.gz", "has_sig": false, "md5_digest": "82743b704555a6b44b45f24d0531bf69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25435, "upload_time": "2011-04-04T19:59:43", "url": "https://files.pythonhosted.org/packages/41/e1/998a7023a3e830fb63026a20428e48a93c8daea7eb7a3bcb2fcd5244f066/flunc-0.8.tar.gz" } ] }