{ "info": { "author": "Andreas Zeidler", "author_email": "az@zitc.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Plone", "Intended Audience :: Developers", "Intended Audience :: Other Audience", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Introduction\n------------\n\n`plone.testlayers`_ is supposed to make setting up test layers for Plone\nintegration tests quick and painless. It's main function, `makeTestLayer`\nwill conveniently generate a test layer, which will load your packages ZCML\nand install them, apply a `GenericSetup` profile and help you set up sample\ncontent for speedier testing.\n\n .. _`plone.testlayers`: http://github.com/witsch/plone.testlayers/\n\n\nUsage\n-----\n\nTo make use of `plone.testlayers`_ you'd typically create a base test case for\nyour package, somewhat like::\n\n from Products.PloneTestCase import PloneTestCase as ptc\n from plone.testlayers import makeTestLayer\n\n def create(portal):\n \"\"\" create sample content for test runs \"\"\"\n portal.invokeFactory('File', 'foo', title='foo', file='foo bar')\n\n def destroy(portal):\n \"\"\" clean up sample content for test runs \"\"\"\n portal.manage_delObjects(ids='foo')\n\n ptc.setupPloneSite()\n FooLayer = makeTestLayer(packages=('collective.foo', 'collective.bar'),\n profile='collective.foo:default', create=create, destroy=destroy)\n\n class FooTestCase(ptc.PloneTestCase):\n \"\"\" base class for integration tests \"\"\"\n layer = FooLayer\n\nWith that in place you can now set up your individual test cases like::\n\n from unittest import defaultTestLoader\n from collective.foo.tests.base import FooTestCase\n\n class FooTests(FooTestCase):\n\n def testFoo(self):\n # the 'foo' object set up in the layer should already exist\n self.failUnless(self.portal['foo'])\n\n def test_suite():\n return defaultTestLoader.loadTestsFromName(__name__)\n\nChangelog\n=========\n\n1.0a3 - Released April 24, 2009\n-------------------------------\n\n* Add support for generating multiple test layers.\n [witsch]\n\n\n1.0a2 - Released April 23, 2009\n-------------------------------\n\n* Fix source distribution by using a `MANIFEST.in`.\n [witsch]\n\n\n1.0a1 - Released April 23, 2009\n-------------------------------\n\n* Initial release.\n [witsch]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/plone.testlayers", "keywords": "plone testing layers", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "plone.testlayers", "package_url": "https://pypi.org/project/plone.testlayers/", "platform": "Any", "project_url": "https://pypi.org/project/plone.testlayers/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/plone.testlayers" }, "release_url": "https://pypi.org/project/plone.testlayers/1.0a3/", "requires_dist": null, "requires_python": null, "summary": "Painless setup of Plone integration test layers", "version": "1.0a3" }, "last_serial": 796437, "releases": { "1.0a1": [ { "comment_text": "", "digests": { "md5": "200a87afd9b8fab0c8a2e6d1ec7d4229", "sha256": "ac4d145e77350b162c5b958bec55baf7160332d0711217d73fa1c6dfcd25070f" }, "downloads": -1, "filename": "plone.testlayers-1.0a1.zip", "has_sig": true, "md5_digest": "200a87afd9b8fab0c8a2e6d1ec7d4229", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9043, "upload_time": "2009-04-23T18:45:15", "url": "https://files.pythonhosted.org/packages/fe/99/40f52df33c53792a8a5d85021fce45730531e4b06c4ccff86cee1dd29595/plone.testlayers-1.0a1.zip" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "e3f0691f7a6a20d4f33d3e2c6a4c925d", "sha256": "3f902b9e8a0a44e894285b57ede05ad5e73307a8efb41d32fcf893419459a2e2" }, "downloads": -1, "filename": "plone.testlayers-1.0a2.zip", "has_sig": true, "md5_digest": "e3f0691f7a6a20d4f33d3e2c6a4c925d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16515, "upload_time": "2009-04-23T22:36:37", "url": "https://files.pythonhosted.org/packages/59/20/2c6e1bc2fca10e7c3ac8dc2db129179239ce76b8a36815107b529d4889d8/plone.testlayers-1.0a2.zip" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "c3c868eaaf59dd39116cd4306ab32ad2", "sha256": "27e672085328cc658d7a283508349f9014d70fb2860394a67cf8583fc5e5da12" }, "downloads": -1, "filename": "plone.testlayers-1.0a3.zip", "has_sig": true, "md5_digest": "c3c868eaaf59dd39116cd4306ab32ad2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17095, "upload_time": "2009-04-24T16:43:09", "url": "https://files.pythonhosted.org/packages/d7/cd/33bc40fc5e6b8af14ad3814f6e34b345c3ec04860d3defcb07ba83e53e1d/plone.testlayers-1.0a3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3c868eaaf59dd39116cd4306ab32ad2", "sha256": "27e672085328cc658d7a283508349f9014d70fb2860394a67cf8583fc5e5da12" }, "downloads": -1, "filename": "plone.testlayers-1.0a3.zip", "has_sig": true, "md5_digest": "c3c868eaaf59dd39116cd4306ab32ad2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17095, "upload_time": "2009-04-24T16:43:09", "url": "https://files.pythonhosted.org/packages/d7/cd/33bc40fc5e6b8af14ad3814f6e34b345c3ec04860d3defcb07ba83e53e1d/plone.testlayers-1.0a3.zip" } ] }