Redturtle Portlets Inspector
Project description
redturtle.portlets.inspector
============================
redturtle.portlets.inspector is a report view to check the portlets inside a
Plone site.
The report view
---------------
This product gives you a view called `@@inspect-portlets`.
To visit this view you have to be manager.
You can call it on the root of your Plone site, e.g.:
- http://localhost:8080/Plone-site-id/@@inspect-portlets
or in restrict your analysis in a subsection of your site, e.g.:
- http://localhost:8080/Plone-site-id/sub/section/@@inspect-portlets
For a newly created Plone site it will output:
```
{'/Plone': {u'plone.leftcolumn': [('<Assignment at ++contextportlets++plone.leftcolumn/navigation>',
"<class 'plone.app.portlets.portlets.navigation.Assignment'>")],
u'plone.rightcolumn': [('<Assignment at ++contextportlets++plone.rightcolumn/news>',
"<class 'plone.app.portlets.portlets.news.Assignment'>"),
('<Assignment at ++contextportlets++plone.rightcolumn/events>',
"<class 'plone.app.portlets.portlets.events.Assignment'>")]}}
```
Installation
------------
Just add this egg to your instance eggs.
```
eggs+=
redturtle.portlets.inspector
```
If your are using an older version of Plone (before 3.3), you will also have
to add this egg to the zcml.
```
zcml+=
redturtle.portlets.inspector
```
Why you want it
---------------
You may want to check this view for several reasons:
- you want to remove a product that provides a portlet and want to remove all
the related portlets in your site otherwise it will break
- you want to analyze a Plone site before migrating it
- you are simply curious
Detailed Documentation
**********************
Introduction
============
Counts the portlets in a site
Test suite
==========
This is a full-blown functional test. The emphasis here is on testing what
the user may input and see, and the system is largely tested as a black box.
We use PloneTestCase to set up this test as well, so we have a full Plone site
to play with. We *can* inspect the state of the portal, e.g. using
self.portal and self.folder, but it is often frowned upon since you are not
treating the system as a black box. Also, if you, for example, log in or set
roles using calls like self.setRoles(), these are not reflected in the test
browser, which runs as a separate session.
Being a doctest, we can tell a story here.
First, we must perform some setup. We use the testbrowser that is shipped
with Five, as this provides proper Zope 2 integration. Most of the
documentation, though, is in the underlying zope.testbrower package.
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()
The following is useful when writing and debugging testbrowser tests. It lets
us see all error messages in the error_log.
>>> self.portal.error_log._ignored_exceptions = ()
With that in place, we can go to the portal front page and log in. We will
do this using the default user from PloneTestCase:
>>> from Products.PloneTestCase.setup import portal_owner, default_password
Because add-on themes or products may remove or hide the login portlet, this test will use the login form that comes with plone.
>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()
Here, we set the value of the fields on the login form and then simulate a
submit click. We then ensure that we get the friendly logged-in message:
>>> "You are now logged in" in browser.contents
True
Finally, let's return to the front page of our site before continuing
>>> browser.open(portal_url)
Then we check the inspect-portlets view
>>> browser.open(portal_url+'/@@inspect-portlets')
-*- extra stuff goes here -*-
Contributors
************
"", Author
Download
********
============================
redturtle.portlets.inspector is a report view to check the portlets inside a
Plone site.
The report view
---------------
This product gives you a view called `@@inspect-portlets`.
To visit this view you have to be manager.
You can call it on the root of your Plone site, e.g.:
- http://localhost:8080/Plone-site-id/@@inspect-portlets
or in restrict your analysis in a subsection of your site, e.g.:
- http://localhost:8080/Plone-site-id/sub/section/@@inspect-portlets
For a newly created Plone site it will output:
```
{'/Plone': {u'plone.leftcolumn': [('<Assignment at ++contextportlets++plone.leftcolumn/navigation>',
"<class 'plone.app.portlets.portlets.navigation.Assignment'>")],
u'plone.rightcolumn': [('<Assignment at ++contextportlets++plone.rightcolumn/news>',
"<class 'plone.app.portlets.portlets.news.Assignment'>"),
('<Assignment at ++contextportlets++plone.rightcolumn/events>',
"<class 'plone.app.portlets.portlets.events.Assignment'>")]}}
```
Installation
------------
Just add this egg to your instance eggs.
```
eggs+=
redturtle.portlets.inspector
```
If your are using an older version of Plone (before 3.3), you will also have
to add this egg to the zcml.
```
zcml+=
redturtle.portlets.inspector
```
Why you want it
---------------
You may want to check this view for several reasons:
- you want to remove a product that provides a portlet and want to remove all
the related portlets in your site otherwise it will break
- you want to analyze a Plone site before migrating it
- you are simply curious
Detailed Documentation
**********************
Introduction
============
Counts the portlets in a site
Test suite
==========
This is a full-blown functional test. The emphasis here is on testing what
the user may input and see, and the system is largely tested as a black box.
We use PloneTestCase to set up this test as well, so we have a full Plone site
to play with. We *can* inspect the state of the portal, e.g. using
self.portal and self.folder, but it is often frowned upon since you are not
treating the system as a black box. Also, if you, for example, log in or set
roles using calls like self.setRoles(), these are not reflected in the test
browser, which runs as a separate session.
Being a doctest, we can tell a story here.
First, we must perform some setup. We use the testbrowser that is shipped
with Five, as this provides proper Zope 2 integration. Most of the
documentation, though, is in the underlying zope.testbrower package.
>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()
The following is useful when writing and debugging testbrowser tests. It lets
us see all error messages in the error_log.
>>> self.portal.error_log._ignored_exceptions = ()
With that in place, we can go to the portal front page and log in. We will
do this using the default user from PloneTestCase:
>>> from Products.PloneTestCase.setup import portal_owner, default_password
Because add-on themes or products may remove or hide the login portlet, this test will use the login form that comes with plone.
>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()
Here, we set the value of the fields on the login form and then simulate a
submit click. We then ensure that we get the friendly logged-in message:
>>> "You are now logged in" in browser.contents
True
Finally, let's return to the front page of our site before continuing
>>> browser.open(portal_url)
Then we check the inspect-portlets view
>>> browser.open(portal_url+'/@@inspect-portlets')
-*- extra stuff goes here -*-
Contributors
************
"", Author
Download
********
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for redturtle.portlets.inspector-1.0.0.zip
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63bc27d056d9475b8eec7ecee486fbeb25b663bb9d5ec517e59560a650cfc9ec |
|
MD5 | 053b2d61f79bc8a65f5d26a8f1caf526 |
|
BLAKE2b-256 | ee551d7150f71291032273edca0b94ef712ca563738fb2994a21cbbea4a10d0e |