[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