[Checkins] SVN: grokui.base/trunk/ Updated testing
Souheil CHELFOUH
souheil at chelfouh.com
Mon Feb 22 17:41:47 EST 2010
Log message for revision 109322:
Updated testing
Changed:
U grokui.base/trunk/buildout.cfg
U grokui.base/trunk/setup.py
U grokui.base/trunk/src/grokui/base/README.txt
U grokui.base/trunk/src/grokui/base/__init__.py
U grokui.base/trunk/src/grokui/base/configure.zcml
D grokui.base/trunk/src/grokui/base/ftesting.zcml
D grokui.base/trunk/src/grokui/base/templates/messages.pt
A grokui.base/trunk/src/grokui/base/templates/statusmessages.pt
U grokui.base/trunk/src/grokui/base/tests/__init__.py
A grokui.base/trunk/src/grokui/base/tests/ftesting.zcml
U grokui.base/trunk/src/grokui/base/tests/layout.py
A grokui.base/trunk/src/grokui/base/tests/test_layout.py
A grokui.base/trunk/src/grokui/base/tests/test_readme.py
U grokui.base/trunk/src/grokui/base/viewlets.py
-=-
Modified: grokui.base/trunk/buildout.cfg
===================================================================
--- grokui.base/trunk/buildout.cfg 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/buildout.cfg 2010-02-22 22:41:47 UTC (rev 109322)
@@ -4,6 +4,9 @@
extends = http://svn.zope.org/repos/main/groktoolkit/trunk/grok.cfg
versions = versions
+[versions]
+zope.component = 3.9.1
+
[data]
recipe = zc.recipe.filestorage
@@ -57,5 +60,4 @@
[test]
recipe = zc.recipe.testrunner
-eggs = grokui.base [test,]
-defaults = ['--tests-pattern', '^test_.*$', '-v']
+eggs = grokui.base [test]
Modified: grokui.base/trunk/setup.py
===================================================================
--- grokui.base/trunk/setup.py 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/setup.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -2,11 +2,13 @@
from setuptools import setup, find_packages
tests_require = [
- 'z3c.testsetup',
- 'zope.app.testing',
'zope.security',
'zope.testbrowser',
- 'zope.securitypolicy'
+ 'zope.securitypolicy',
+ 'zope.app.testing',
+ 'zope.principalregistry',
+ 'zope.testing',
+ 'z3c.testsetup',
]
def read(*rnames):
Modified: grokui.base/trunk/src/grokui/base/README.txt
===================================================================
--- grokui.base/trunk/src/grokui/base/README.txt 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/README.txt 2010-02-22 22:41:47 UTC (rev 109322)
@@ -1,4 +1,3 @@
-
.. contents::
Modified: grokui.base/trunk/src/grokui/base/__init__.py
===================================================================
--- grokui.base/trunk/src/grokui/base/__init__.py 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/__init__.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -1,4 +1,4 @@
from grokui.base.interfaces import IGrokUIRealm, IUIPanel, IMainMenu
-from grokui.base.namespace import GrokUILayer, GrokUISkin
+from grokui.base.namespace import GrokUILayer, GrokUISkin, GrokUINamespace
from grokui.base.contentproviders import Header, Footer, MainMenu, Messages
from grokui.base.layout import GrokUIView
Modified: grokui.base/trunk/src/grokui/base/configure.zcml
===================================================================
--- grokui.base/trunk/src/grokui/base/configure.zcml 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/configure.zcml 2010-02-22 22:41:47 UTC (rev 109322)
@@ -1,8 +1,10 @@
<configure
xmlns:grok="http://namespaces.zope.org/grok"
xmlns="http://namespaces.zope.org/zope">
+
<include package="grok" />
<include package="megrok.menu" file="meta.zcml" />
<include package="megrok.layout" file="meta.zcml" />
<grok:grok package="." />
+
</configure>
Deleted: grokui.base/trunk/src/grokui/base/ftesting.zcml
===================================================================
--- grokui.base/trunk/src/grokui/base/ftesting.zcml 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/ftesting.zcml 2010-02-22 22:41:47 UTC (rev 109322)
@@ -1,35 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:grok="http://namespaces.zope.org/grok"
- i18n_domain="grok"
- package="grokui.base">
-
- <include package="grokui.base" />
- <grok:grok package="grokui.base.tests" />
-
- <securityPolicy
- component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
- />
-
- <unauthenticatedPrincipal
- id="zope.anybody"
- title="Unauthenticated User"
- />
-
- <grant
- permission="zope.View"
- principal="zope.anybody"
- />
-
- <principal
- id="zope.mgr"
- title="Manager"
- login="mgr"
- password="mgrpw"
- />
-
- <role id="zope.Manager" title="Site Manager" />
- <grantAll role="zope.Manager" />
- <grant role="zope.Manager" principal="zope.mgr" />
-
-</configure>
Deleted: grokui.base/trunk/src/grokui/base/templates/messages.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/messages.pt 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/templates/messages.pt 2010-02-22 22:41:47 UTC (rev 109322)
@@ -1,5 +0,0 @@
-<dl class="messages-list">
- <dd tal:repeat="message viewlet/messages"
- tal:attributes="class message/type"
- tal:content="message/message" />
-</dl>
Copied: grokui.base/trunk/src/grokui/base/templates/statusmessages.pt (from rev 108653, grokui.base/trunk/src/grokui/base/templates/messages.pt)
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/statusmessages.pt (rev 0)
+++ grokui.base/trunk/src/grokui/base/templates/statusmessages.pt 2010-02-22 22:41:47 UTC (rev 109322)
@@ -0,0 +1,5 @@
+<dl class="messages-list">
+ <dd tal:repeat="message viewlet/messages"
+ tal:attributes="class message/type"
+ tal:content="message/message" />
+</dl>
Modified: grokui.base/trunk/src/grokui/base/tests/__init__.py
===================================================================
--- grokui.base/trunk/src/grokui/base/tests/__init__.py 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/tests/__init__.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -0,0 +1,8 @@
+import os.path
+from zope.app.testing import functional
+
+ftesting_zcml = os.path.join(
+ os.path.dirname(__file__), 'ftesting.zcml')
+
+FunctionalLayer = functional.ZCMLLayer(
+ ftesting_zcml, __name__, 'GrokUIBaseFunctionalLayer', allow_teardown=True)
Copied: grokui.base/trunk/src/grokui/base/tests/ftesting.zcml (from rev 109319, grokui.base/trunk/src/grokui/base/ftesting.zcml)
===================================================================
--- grokui.base/trunk/src/grokui/base/tests/ftesting.zcml (rev 0)
+++ grokui.base/trunk/src/grokui/base/tests/ftesting.zcml 2010-02-22 22:41:47 UTC (rev 109322)
@@ -0,0 +1,34 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:grok="http://namespaces.zope.org/grok"
+ i18n_domain="grok"
+ package="grokui.base">
+
+ <include package="grokui.base" />
+
+ <securityPolicy
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+ />
+
+ <unauthenticatedPrincipal
+ id="zope.anybody"
+ title="Unauthenticated User"
+ />
+
+ <grant
+ permission="zope.View"
+ principal="zope.anybody"
+ />
+
+ <principal
+ id="zope.mgr"
+ title="Manager"
+ login="mgr"
+ password="mgrpw"
+ />
+
+ <role id="zope.Manager" title="Site Manager" />
+ <grantAll role="zope.Manager" />
+ <grant role="zope.Manager" principal="zope.mgr" />
+
+</configure>
Modified: grokui.base/trunk/src/grokui/base/tests/layout.py
===================================================================
--- grokui.base/trunk/src/grokui/base/tests/layout.py 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/tests/layout.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -63,3 +63,25 @@
"""This will go into a standard Grok UI page.
"""
return u'Hello from CaveAdminView'
+
+
+import z3c.testsetup
+import os.path
+import grokui.base
+import unittest
+from zope.app.testing import functional
+from zope.app.testing.functional import ZCMLLayer
+
+ftesting_zcml = os.path.join(
+ os.path.dirname(__file__), 'ftesting.zcml')
+FunctionalLayer = functional.ZCMLLayer(
+ ftesting_zcml, __name__, 'GrokUIBaseFunctionalLayer', allow_teardown=True)
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ test = functional.functionalDocTestSuite(
+ optionflags=doctest.ELLIPSIS+doctest.NORMALIZE_WHITESPACE)
+ test.layer = FunctionalLayer
+ suite.addTest(test)
+ return suite
Added: grokui.base/trunk/src/grokui/base/tests/test_layout.py
===================================================================
--- grokui.base/trunk/src/grokui/base/tests/test_layout.py (rev 0)
+++ grokui.base/trunk/src/grokui/base/tests/test_layout.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -0,0 +1,82 @@
+"""
+Building panels using `GrokUIView`
+===================================
+
+:doctest:
+:layer: grokui.base.tests.FunctionalLayer
+
+ >>> from grokcore.component import testing
+ >>> testing.grok(__file__)
+
+We create a browser to watch our views:
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.addHeader('Authorization', 'Basic mgr:mgrpw')
+ >>> browser.handleErrors = False
+
+To create a view that automatically comes with the GrokUI layout, we
+can derive from `grokui.base.AdminView`.
+
+Instances of `AdminView` are in fact `megrok.layout.Page` instances
+that render the content provided by a template or `render` method
+into a given layout.
+
+When we render PlainAdminView, we will get a complete Grok UI page
+with the contents delivered by the `render()` method inserted:
+
+ >>> browser.open('http://localhost/++grokui++/caveview')
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ <title>Grok User Interface</title>
+ ...
+ <BLANKLINE>
+ <div id="grokui-content">Hello from CaveAdminView</div>
+ <BLANKLINE>
+ ...
+ </html>
+
+We also provided a ``title`` with our page. Therefore we will get an
+entry in the navigation bar:
+
+ >>> print browser.contents
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ ...
+ <ul id="grokui-menu-entries">
+ <li>
+ <a href="http://localhost/++grokui++/caveview"
+ title="cave management">cave management</a>
+ </li>
+ </ul>
+ ...
+ </html>
+
+"""
+import grok
+import unittest
+from grokui.base import GrokUIView
+from grokui.base.tests import FunctionalLayer
+from zope.testing import doctest
+from zope.app.testing import functional
+
+
+class CaveAdminView(GrokUIView):
+ """An admin page to administer caves.
+ """
+ grok.name('caveview')
+ # This title will appear in the navigation bar:
+ grok.title('cave management')
+ def render(self):
+ """This will go into a standard Grok UI page.
+ """
+ return u'Hello from CaveAdminView'
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ test = functional.FunctionalDocFileSuite(
+ optionflags=doctest.ELLIPSIS+doctest.NORMALIZE_WHITESPACE)
+ test.layer = FunctionalLayer
+ suite.addTest(test)
+ return suite
Added: grokui.base/trunk/src/grokui/base/tests/test_readme.py
===================================================================
--- grokui.base/trunk/src/grokui/base/tests/test_readme.py (rev 0)
+++ grokui.base/trunk/src/grokui/base/tests/test_readme.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+
+import unittest
+from grokui.base import tests
+from zope.testing import doctest
+from zope.app.testing import functional
+from grokui.base.tests import FunctionalLayer
+
+
+def test_suite():
+ suite = unittest.TestSuite()
+ readme = functional.FunctionalDocFileSuite('../README.txt')
+ readme.layer = FunctionalLayer
+ suite.addTest(readme)
+ return suite
+
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
Modified: grokui.base/trunk/src/grokui/base/viewlets.py
===================================================================
--- grokui.base/trunk/src/grokui/base/viewlets.py 2010-02-22 22:15:34 UTC (rev 109321)
+++ grokui.base/trunk/src/grokui/base/viewlets.py 2010-02-22 22:41:47 UTC (rev 109322)
@@ -41,7 +41,7 @@
self.actions = menu.getMenuItems(self.context, self.request)
-class Messages(grok.Viewlet):
+class StatusMessages(grok.Viewlet):
grok.order(40)
grok.name('grokui.messages')
grok.viewletmanager(Messages)
More information about the checkins
mailing list