[Checkins] SVN: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/ Work with a different test_setup

Christian Klinger cklinger at novareto.de
Wed Jun 17 09:54:48 EDT 2009


Log message for revision 101110:
  Work with a different test_setup

Changed:
  U   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/__init__.py
  D   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/form/
  D   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_all.py
  A   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_field.py
  A   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout.py
  A   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_templates/
  A   megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_templates/mylayout.pt

-=-
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/__init__.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/__init__.py	2009-06-17 12:45:32 UTC (rev 101109)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/__init__.py	2009-06-17 13:54:48 UTC (rev 101110)
@@ -0,0 +1,9 @@
+import os.path                                                                  
+import megrok.z3cform
+from zope.app.testing.functional import ZCMLLayer
+
+ftesting_zcml = os.path.join(os.path.dirname(megrok.z3cform.__file__),
+                             'ftesting.zcml')
+FunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'FunctionalLayer',
+                            allow_teardown=True)
+

Deleted: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_all.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_all.py	2009-06-17 12:45:32 UTC (rev 101109)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_all.py	2009-06-17 13:54:48 UTC (rev 101110)
@@ -1,52 +0,0 @@
-import re
-import unittest
-from pkg_resources import resource_listdir
-from zope.testing import doctest, cleanup, renormalizing
-from zope.configuration import xmlconfig
-import zope.component.eventtesting
-import megrok.z3cform
-
-def setUpZope(test):
-    zope.component.eventtesting.setUp(test)
-    xmlconfig.file('testing.zcml', package=megrok.z3cform)
-
-def cleanUpZope(test):
-    cleanup.cleanUp()
-
-checker = renormalizing.RENormalizing([
-    # str(Exception) has changed from Python 2.4 to 2.5 (due to
-    # Exception now being a new-style class).  This changes the way
-    # exceptions appear in traceback printouts.
-    (re.compile(r"ConfigurationExecutionError: <class '([\w.]+)'>:"),
-                r'ConfigurationExecutionError: \1:'),
-    ])
-
-def suiteFromPackage(name):
-    files = resource_listdir(__name__, name)
-    suite = unittest.TestSuite()
-    for filename in files:
-        if not filename.endswith('.py'):
-            continue
-        if filename.endswith('_fixture.py'):
-            continue
-        if filename == '__init__.py':
-            continue
-        dottedname = 'megrok.z3cform.tests.%s.%s' % (name, filename[:-3])
-        test = doctest.DocTestSuite(dottedname,
-                                    setUp=setUpZope,
-                                    tearDown=cleanUpZope,
-                                    checker=checker,
-                                    optionflags=doctest.ELLIPSIS+
-                                    doctest.NORMALIZE_WHITESPACE)
-
-        suite.addTest(test)
-    return suite
-
-def test_suite():
-    suite = unittest.TestSuite()
-    for name in ['form',]:
-        suite.addTest(suiteFromPackage(name))
-    return suite
-
-if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')

Added: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_field.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_field.py	                        (rev 0)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_field.py	2009-06-17 13:54:48 UTC (rev 101110)
@@ -0,0 +1,55 @@
+"""
+  >>> manfred = Mammoth()
+
+  >>> from zope import component
+  >>> from zope.publisher.browser import TestRequest
+  >>> request = TestRequest()
+
+  Check that fields have been created on the edition page:
+
+  >>> view = component.getMultiAdapter((manfred, request), name='edit')
+  >>> len(view.fields)
+  2
+  >>> [field.__name__ for field in view.fields.values()]
+  ['name', 'age']
+  
+
+  And on the display page:
+
+  >>> view = component.getMultiAdapter((manfred, request), name='index')
+  >>> len(view.fields)
+  2
+  >>> [field.__name__ for field in view.fields.values()]
+  ['name', 'age']
+"""
+import grok
+
+from zope import interface, schema
+from zope.schema.fieldproperty import FieldProperty
+from megrok import z3cform
+
+class IMammoth(interface.Interface):
+
+    name = schema.TextLine(title=u"Name")
+    age = schema.Int(title=u"Age")
+
+class Mammoth(grok.Model):
+    
+    interface.implements(IMammoth)
+
+    name = FieldProperty(IMammoth['name'])
+    age = FieldProperty(IMammoth['age'])
+
+class Edit(z3cform.EditForm):
+    pass
+
+class Index(z3cform.DisplayForm):
+    pass
+
+def test_suite():
+    from zope.testing import doctest
+    from megrok.z3cform.tests import FunctionalLayer
+    suite = doctest.DocTestSuite(optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS)
+    suite.layer = FunctionalLayer
+    return suite
+

Added: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout.py	                        (rev 0)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout.py	2009-06-17 13:54:48 UTC (rev 101110)
@@ -0,0 +1,86 @@
+"""
+  >>> from zope.app.testing.functional import getRootFolder
+  >>> manfred = Mammoth()
+  >>> getRootFolder()["manfred"] = manfred 
+
+  >>> from zope import component
+  >>> from zope.interface import alsoProvides
+  >>> from zope.publisher.browser import TestRequest
+  >>> request = TestRequest()
+  >>> alsoProvides(request, FormSkin)
+
+  Check that fields have been created on the edition page:
+
+  >>> view = component.getMultiAdapter((manfred, request), name='edit')
+  >>> view
+  <megrok.z3cform.tests.test_form.Edit object at ...>
+
+  If we call the EditPage we found it in the renderd Layout
+  
+  >>> '<div class="layout">' in view()
+  True
+
+  If we call the render method we get the edit-page without the layout
+
+  >>> view.render().startswith('<form action="http://127.0.0.1"')
+  True 
+
+Does the handy url function works
+
+  >>> view.url()
+  'http://127.0.0.1/manfred/edit'
+
+We set in the update method of our EditForm the property updateMaker
+to true. 
+
+  >>> view.updateMarker
+  True
+
+"""
+
+import grok
+import megrok.layout
+
+from megrok import z3cform
+from zope import interface, schema
+from zope.schema.fieldproperty import FieldProperty
+
+from z3c.form import button, field
+
+class FormSkin(z3cform.FormLayer):
+    grok.skin('formskin')
+
+grok.layer(FormSkin)
+
+
+
+class IMammoth(interface.Interface):
+    name = schema.TextLine(title=u"Name")
+    age = schema.Int(title=u"Age")
+
+class Mammoth(grok.Model):
+    interface.implements(IMammoth)
+
+    name = FieldProperty(IMammoth['name'])
+    age = FieldProperty(IMammoth['age'])
+
+
+class MyLayout(megrok.layout.Layout):
+    grok.context(Mammoth)
+
+class Edit(z3cform.PageEditForm):
+    fields = field.Fields(IMammoth)
+
+    def update(self):
+        self.updateMarker = True
+
+
+def test_suite():
+    from zope.testing import doctest
+    from megrok.z3cform.tests import FunctionalLayer
+    suite = doctest.DocTestSuite(
+          optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS
+          )
+    suite.layer = FunctionalLayer
+    return suite 
+

Added: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_templates/mylayout.pt
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_templates/mylayout.pt	                        (rev 0)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/tests/test_layout_templates/mylayout.pt	2009-06-17 13:54:48 UTC (rev 101110)
@@ -0,0 +1,8 @@
+<html>                                                                           
+ <body>
+   <div class="layout" tal:content="structure view/render">
+         here comes the content
+   </div>
+ </body>
+</html>
+



More information about the Checkins mailing list