{ "info": { "author": "Peter Dyson", "author_email": "pdyson@cannonscientific.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. contents::\n \n .. Note!\n -----\n Update the following URLs to point to your:\n \n - code repository\n - bug tracker\n - questions/comments feedback mail\n (do not set a real mail, to avoid spams)\n \n Or remove it if not used.\n \n - Code repository: http://svn.somewhere.com/...\n - Questions and comments to somemailing_list\n - Report bugs at http://bug.somewhere.com/..\n \n \n Change history\n **************\n \n Changelog\n =========\n \n 1.0 (xxxx-xx-xx)\n ----------------\n \n - Created recipe with ZopeSkel\n [Peter Dyson]\n \n Detailed Documentation\n **********************\n \n Introduction\n ============\n \n This is a full-blown functional test. The emphasis here is on testing what\n the user may input and see, and the system is largely tested as a black box.\n We use PloneTestCase to set up this test as well, so we have a full Plone site\n to play with. We *can* inspect the state of the portal, e.g. using\n self.portal and self.folder, but it is often frowned upon since you are not\n treating the system as a black box. Also, if you, for example, log in or set\n roles using calls like self.setRoles(), these are not reflected in the test\n browser, which runs as a separate session.\n \n Being a doctest, we can tell a story here.\n \n First, we must perform some setup. We use the testbrowser that is shipped\n with Five, as this provides proper Zope 2 integration. Most of the\n documentation, though, is in the underlying zope.testbrower package.\n \n >>> from Products.Five.testbrowser import Browser\n >>> browser = Browser()\n >>> portal_url = self.portal.absolute_url()\n \n The following is useful when writing and debugging testbrowser tests. It lets\n us see all error messages in the error_log.\n \n >>> self.portal.error_log._ignored_exceptions = ()\n \n With that in place, we can go to the portal front page and log in. We will\n do this using the default user from PloneTestCase:\n \n >>> from Products.PloneTestCase.setup import portal_owner, default_password\n \n >>> browser.open(portal_url)\n \n We have the login portlet, so let's use that.\n \n >>> browser.getControl(name='__ac_name').value = portal_owner\n >>> browser.getControl(name='__ac_password').value = default_password\n >>> browser.getControl(name='submit').click()\n \n Here, we set the value of the fields on the login form and then simulate a\n submit click.\n \n We then test that we are still on the portal front page:\n \n >>> browser.url == portal_url\n True\n \n And we ensure that we get the friendly logged-in message:\n \n >>> \"You are now logged in\" in browser.contents\n True\n \n \n -*- extra stuff goes here -*-\n \n \n Contributors\n ************\n \n Peter Dyson, Author\n \n \n Download\n ********", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://svn.plone.org/svn/plone/plone.example", "keywords": "plone", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "csci.feedback", "package_url": "https://pypi.org/project/csci.feedback/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/csci.feedback/", "project_urls": { "Homepage": "http://svn.plone.org/svn/plone/plone.example" }, "release_url": "https://pypi.org/project/csci.feedback/1.0dev/", "requires_dist": null, "requires_python": null, "summary": "Feedback forms and other useful apps", "version": "1.0dev" }, "last_serial": 788563, "releases": { "1.0dev": [ { "comment_text": "", "digests": { "md5": "04879cee33d0d82e4d4b285922438d0a", "sha256": "6f9b03301f99804f473ba44e96717429d51a2d62bcb452cd7663ecc8647da7ef" }, "downloads": -1, "filename": "csci.feedback-1.0dev-py2.4.egg", "has_sig": false, "md5_digest": "04879cee33d0d82e4d4b285922438d0a", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 26051, "upload_time": "2009-10-26T16:44:42", "url": "https://files.pythonhosted.org/packages/23/39/b81fd616e5ee52ff58d5bb66e64295efd1efbcd9656298c963de55b5541a/csci.feedback-1.0dev-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "cde106671d7a4eeab0d2487af1ae5171", "sha256": "b302a32e3a34c2895d84fa672ad87d3660b64a60b700e3bcda6725dbabf73c96" }, "downloads": -1, "filename": "csci.feedback-1.1-py2.4.egg", "has_sig": false, "md5_digest": "cde106671d7a4eeab0d2487af1ae5171", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 25409, "upload_time": "2009-11-02T13:51:27", "url": "https://files.pythonhosted.org/packages/f9/2d/1c777a04c3555d90a29c37704405e3a0eabc8284c0979411dd7ed6990621/csci.feedback-1.1-py2.4.egg" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "04879cee33d0d82e4d4b285922438d0a", "sha256": "6f9b03301f99804f473ba44e96717429d51a2d62bcb452cd7663ecc8647da7ef" }, "downloads": -1, "filename": "csci.feedback-1.0dev-py2.4.egg", "has_sig": false, "md5_digest": "04879cee33d0d82e4d4b285922438d0a", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 26051, "upload_time": "2009-10-26T16:44:42", "url": "https://files.pythonhosted.org/packages/23/39/b81fd616e5ee52ff58d5bb66e64295efd1efbcd9656298c963de55b5541a/csci.feedback-1.0dev-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "cde106671d7a4eeab0d2487af1ae5171", "sha256": "b302a32e3a34c2895d84fa672ad87d3660b64a60b700e3bcda6725dbabf73c96" }, "downloads": -1, "filename": "csci.feedback-1.1-py2.4.egg", "has_sig": false, "md5_digest": "cde106671d7a4eeab0d2487af1ae5171", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 25409, "upload_time": "2009-11-02T13:51:27", "url": "https://files.pythonhosted.org/packages/f9/2d/1c777a04c3555d90a29c37704405e3a0eabc8284c0979411dd7ed6990621/csci.feedback-1.1-py2.4.egg" } ] }