[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