{ "info": { "author": "Izhar Firdaus", "author_email": "izhar@inigo-tech.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)" ], "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.plone.org/svn/collective.atspreadsheet\n- Questions and comments to info _at_ inigo-tech.com\n\nChange history\n**************\n\nChangelog\n=========\n\n1.0a2 (2010-03-29)\n------------------\n\n- added image files for the JQueryUI of spreadsheet\n- added new content type : CSVSpreadsheet (displays CSV file as spreadsheet)\n\n1.0a1 (2010-03-29)\n------------------\n\n- Initial product\n\nDetailed Documentation\n**********************\n\nIntroduction\n============\n\nThis is a full-blown functional test. The emphasis here is on testing what\nthe user may input and see, and the system is largely tested as a black box.\nWe use PloneTestCase to set up this test as well, so we have a full Plone site\nto play with. We *can* inspect the state of the portal, e.g. using \nself.portal and self.folder, but it is often frowned upon since you are not\ntreating the system as a black box. Also, if you, for example, log in or set\nroles using calls like self.setRoles(), these are not reflected in the test\nbrowser, which runs as a separate session.\n\nBeing a doctest, we can tell a story here.\n\nFirst, we must perform some setup. We use the testbrowser that is shipped\nwith Five, as this provides proper Zope 2 integration. Most of the \ndocumentation, 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\nThe following is useful when writing and debugging testbrowser tests. It lets\nus see all error messages in the error_log.\n\n >>> self.portal.error_log._ignored_exceptions = ()\n\nWith that in place, we can go to the portal front page and log in. We will\ndo 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\nWe 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\nHere, we set the value of the fields on the login form and then simulate a\nsubmit click.\n\nWe then test that we are still on the portal front page:\n\n >>> browser.url == portal_url\n True\n\nAnd 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 -*-\nThe CSVSpreadsheet content type\n===============================\n\nIn this section we are tesing the CSVSpreadsheet content type by performing\nbasic operations like adding, updadating and deleting CSVSpreadsheet content\nitems.\n\nAdding a new CSVSpreadsheet content item\n--------------------------------\n\nWe use the 'Add new' menu to add a new content item.\n\n >>> browser.getLink('Add new').click()\n\nThen we select the type of item we want to add. In this case we select\n'CSVSpreadsheet' and click the 'Add' button to get to the add form.\n\n >>> browser.getControl('CSVSpreadsheet').click()\n >>> browser.getControl(name='form.button.Add').click()\n >>> 'CSVSpreadsheet' in browser.contents\n True\n\nNow we fill the form and submit it.\n\n >>> browser.getControl(name='title').value = 'CSVSpreadsheet Sample'\n >>> browser.getControl('Save').click()\n >>> 'Changes saved' in browser.contents\n True\n\nAnd we are done! We added a new 'CSVSpreadsheet' content item to the portal.\n\nUpdating an existing CSVSpreadsheet content item\n---------------------------------------\n\nLet's click on the 'edit' tab and update the object attribute values.\n\n >>> browser.getLink('Edit').click()\n >>> browser.getControl(name='title').value = 'New CSVSpreadsheet Sample'\n >>> browser.getControl('Save').click()\n\nWe check that the changes were applied.\n\n >>> 'Changes saved' in browser.contents\n True\n >>> 'New CSVSpreadsheet Sample' in browser.contents\n True\n\nRemoving a/an CSVSpreadsheet content item\n--------------------------------\n\nIf we go to the home page, we can see a tab with the 'New CSVSpreadsheet\nSample' title in the global navigation tabs.\n\n >>> browser.open(portal_url)\n >>> 'New CSVSpreadsheet Sample' in browser.contents\n True\n\nNow we are going to delete the 'New CSVSpreadsheet Sample' object. First we\ngo to the contents tab and select the 'New CSVSpreadsheet Sample' for\ndeletion.\n\n >>> browser.getLink('Contents').click()\n >>> browser.getControl('New CSVSpreadsheet Sample').click()\n\nWe click on the 'Delete' button.\n\n >>> browser.getControl('Delete').click()\n >>> 'Item(s) deleted' in browser.contents\n True\n\nSo, if we go back to the home page, there is no longer a 'New CSVSpreadsheet\nSample' tab.\n\n >>> browser.open(portal_url)\n >>> 'New CSVSpreadsheet Sample' in browser.contents\n False\n\nAdding a new CSVSpreadsheet content item as contributor\n------------------------------------------------\n\nNot only site managers are allowed to add CSVSpreadsheet content items, but\nalso site contributors.\n\nLet's logout and then login as 'contributor', a portal member that has the\ncontributor role assigned.\n\n >>> browser.getLink('Log out').click()\n >>> browser.open(portal_url)\n >>> browser.getControl(name='__ac_name').value = 'contributor'\n >>> browser.getControl(name='__ac_password').value = default_password\n >>> browser.getControl(name='submit').click()\n >>> browser.open(portal_url)\n\nWe use the 'Add new' menu to add a new content item.\n\n >>> browser.getLink('Add new').click()\n\nWe select 'CSVSpreadsheet' and click the 'Add' button to get to the add form.\n\n >>> browser.getControl('CSVSpreadsheet').click()\n >>> browser.getControl(name='form.button.Add').click()\n >>> 'CSVSpreadsheet' in browser.contents\n True\n\nNow we fill the form and submit it.\n\n >>> browser.getControl(name='title').value = 'CSVSpreadsheet Sample'\n >>> browser.getControl('Save').click()\n >>> 'Changes saved' in browser.contents\n True\n\nDone! We added a new CSVSpreadsheet content item logged in as contributor.\n\nFinally, let's login back as manager.\n\n >>> browser.getLink('Log out').click()\n >>> browser.open(portal_url)\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 >>> browser.open(portal_url)\n\n\nThe Spreadsheet content type\n===============================\n\nIn this section we are tesing the Spreadsheet content type by performing\nbasic operations like adding, updadating and deleting Spreadsheet content\nitems.\n\nAdding a new Spreadsheet content item\n--------------------------------------\n\nWe use the 'Add new' menu to add a new content item.\n\n >>> browser.getLink('Add new').click()\n\nThen we select the type of item we want to add. In this case we select\n'Spreadsheet' and click the 'Add' button to get to the add form.\n\n >>> browser.getControl('Spreadsheet').click()\n >>> browser.getControl(name='form.button.Add').click()\n >>> 'Spreadsheet' in browser.contents\n True\n\nNow we fill the form and submit it.\n\n >>> browser.getControl(name='title').value = 'Spreadsheet Sample'\n >>> browser.getControl('Save').click()\n >>> 'Changes saved' in browser.contents\n True\n\nAnd we are done! We added a new 'Spreadsheet' content item to the portal.\n\nUpdating an existing Spreadsheet content item\n----------------------------------------------\n\nLet's click on the 'edit' tab and update the object attribute values.\n\n >>> browser.getLink('Edit').click()\n >>> browser.getControl(name='title').value = 'New Spreadsheet Sample'\n >>> browser.getControl('Save').click()\n\nWe check that the changes were applied.\n\n >>> 'Changes saved' in browser.contents\n True\n >>> 'New Spreadsheet Sample' in browser.contents\n True\n\nRemoving a/an Spreadsheet content item\n---------------------------------------\n\nIf we go to the home page, we can see a tab with the 'New Spreadsheet\nSample' title in the global navigation tabs.\n\n >>> browser.open(portal_url)\n >>> 'New Spreadsheet Sample' in browser.contents\n True\n\nNow we are going to delete the 'New Spreadsheet Sample' object. First we\ngo to the contents tab and select the 'New Spreadsheet Sample' for\ndeletion.\n\n >>> browser.getLink('Contents').click()\n >>> browser.getControl('New Spreadsheet Sample').click()\n\nWe click on the 'Delete' button.\n\n >>> browser.getControl('Delete').click()\n >>> 'Item(s) deleted' in browser.contents\n True\n\nSo, if we go back to the home page, there is no longer a 'New Spreadsheet\nSample' tab.\n\n >>> browser.open(portal_url)\n >>> 'New Spreadsheet Sample' in browser.contents\n False\n\nAdding a new Spreadsheet content item as contributor\n-----------------------------------------------------\n\nNot only site managers are allowed to add Spreadsheet content items, but\nalso site contributors.\n\nLet's logout and then login as 'contributor', a portal member that has the\ncontributor role assigned.\n\n >>> browser.getLink('Log out').click()\n >>> browser.open(portal_url)\n >>> browser.getControl(name='__ac_name').value = 'contributor'\n >>> browser.getControl(name='__ac_password').value = default_password\n >>> browser.getControl(name='submit').click()\n >>> browser.open(portal_url)\n\nWe use the 'Add new' menu to add a new content item.\n\n >>> browser.getLink('Add new').click()\n\nWe select 'Spreadsheet' and click the 'Add' button to get to the add form.\n\n >>> browser.getControl('Spreadsheet').click()\n >>> browser.getControl(name='form.button.Add').click()\n >>> 'Spreadsheet' in browser.contents\n True\n\nNow we fill the form and submit it.\n\n >>> browser.getControl(name='title').value = 'Spreadsheet Sample'\n >>> browser.getControl('Save').click()\n >>> 'Changes saved' in browser.contents\n True\n\nDone! We added a new Spreadsheet content item logged in as contributor.\n\nFinally, let's login back as manager.\n\n >>> browser.getLink('Log out').click()\n >>> browser.open(portal_url)\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 >>> browser.open(portal_url)\n\n\n\n\nContributors\n************\n\n\"Izhar Firdaus \", Author\n\n\nDownload\n********", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://svn.plone.org/svn/collective/", "keywords": "spreadsheet plone content", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.atspreadsheet", "package_url": "https://pypi.org/project/collective.atspreadsheet/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.atspreadsheet/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://svn.plone.org/svn/collective/" }, "release_url": "https://pypi.org/project/collective.atspreadsheet/1.0a2/", "requires_dist": null, "requires_python": null, "summary": "Spreadsheet content type for Plone", "version": "1.0a2" }, "last_serial": 787646, "releases": { "1.0a1": [ { "comment_text": "", "digests": { "md5": "5431ad7f092e993c922071681343639a", "sha256": "41c892ac63bfa5f2066789f5a1fb9b1ac4280846c9a7e6b7c72014c9819e3f1f" }, "downloads": -1, "filename": "collective.atspreadsheet-1.0a1.tar.gz", "has_sig": false, "md5_digest": "5431ad7f092e993c922071681343639a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133953, "upload_time": "2010-03-29T16:23:10", "url": "https://files.pythonhosted.org/packages/d7/66/5de91f53e487df2f0a3d015eca80c4808fddc7ce36cc07dcd1966cfd3390/collective.atspreadsheet-1.0a1.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "620713b1b1ef190d71327c560be1b482", "sha256": "bca7bff1055e7f89a872cf5fc5c3aa8c9339fe77b23043baa7eae46ce6284ece" }, "downloads": -1, "filename": "collective.atspreadsheet-1.0a2.tar.gz", "has_sig": false, "md5_digest": "620713b1b1ef190d71327c560be1b482", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169453, "upload_time": "2010-03-29T18:43:56", "url": "https://files.pythonhosted.org/packages/b0/d0/9f8d450792fea7b3efa941ac56a35a2c719d75414ca2ef5ae346ce2711be/collective.atspreadsheet-1.0a2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "620713b1b1ef190d71327c560be1b482", "sha256": "bca7bff1055e7f89a872cf5fc5c3aa8c9339fe77b23043baa7eae46ce6284ece" }, "downloads": -1, "filename": "collective.atspreadsheet-1.0a2.tar.gz", "has_sig": false, "md5_digest": "620713b1b1ef190d71327c560be1b482", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169453, "upload_time": "2010-03-29T18:43:56", "url": "https://files.pythonhosted.org/packages/b0/d0/9f8d450792fea7b3efa941ac56a35a2c719d75414ca2ef5ae346ce2711be/collective.atspreadsheet-1.0a2.tar.gz" } ] }