[Checkins] SVN: megrok.z3cform/trunk/ - Fix testing buildout,

Sylvain Viollon sylvain at infrae.com
Mon Aug 25 12:20:51 EDT 2008


Log message for revision 90227:
  
  - Fix testing buildout,
  
  - Use development of Grok and grokcore.view so we can use new way
    of building layers,
  
  - Add simple test to ensure that the grokker does its work.
  
  

Changed:
  U   megrok.z3cform/trunk/buildout.cfg
  _U  megrok.z3cform/trunk/devel/
  U   megrok.z3cform/trunk/devel/EXTERNALS.txt
  U   megrok.z3cform/trunk/setup.py
  U   megrok.z3cform/trunk/src/megrok/z3cform/configure.zcml
  U   megrok.z3cform/trunk/src/megrok/z3cform/meta.py
  U   megrok.z3cform/trunk/src/megrok/z3cform/meta.zcml
  A   megrok.z3cform/trunk/src/megrok/z3cform/tests/form/
  A   megrok.z3cform/trunk/src/megrok/z3cform/tests/form/__init__.py
  A   megrok.z3cform/trunk/src/megrok/z3cform/tests/form/field.py
  A   megrok.z3cform/trunk/src/megrok/z3cform/tests/form/render.py
  A   megrok.z3cform/trunk/src/megrok/z3cform/tests/test_all.py
  A   megrok.z3cform/trunk/versions.cfg

-=-
Modified: megrok.z3cform/trunk/buildout.cfg
===================================================================
--- megrok.z3cform/trunk/buildout.cfg	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/buildout.cfg	2008-08-25 16:20:50 UTC (rev 90227)
@@ -1,15 +1,15 @@
 [buildout]
 develop = .
    devel/grokcore.formlib
+   devel/grokcore.component
+   devel/grokcore.view
+   devel/grok
 parts = test
-extends = http://grok.zope.org/releaseinfo/grok-0.13.cfg
+extends = versions.cfg
 versions = versions
 
-[versions]
-zc.recipe.testrunner = 1.0.0
 
 [test]
 recipe = zc.recipe.testrunner
-eggs = megrok.z3cform
+eggs = megrok.z3cform [test]
 defaults = ['--tests-pattern', '^f?tests$', '-v']
-


Property changes on: megrok.z3cform/trunk/devel
___________________________________________________________________
Name: svn:externals
   - # svn propset svn:externals -F EXTERNALS.txt .
grokcore.formlib svn://svn.zope.org/repos/main/grokcore.formlib/trunk

   + # svn propset svn:externals -F EXTERNALS.txt .
grokcore.formlib svn://svn.zope.org/repos/main/grokcore.formlib/trunk
grokcore.component svn://svn.zope.org/repos/main/grokcore.component/trunk
grokcore.view svn://svn.zope.org/repos/main/grokcore.view/trunk
grok svn://svn.zope.org/repos/main/grok/trunk



Modified: megrok.z3cform/trunk/devel/EXTERNALS.txt
===================================================================
--- megrok.z3cform/trunk/devel/EXTERNALS.txt	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/devel/EXTERNALS.txt	2008-08-25 16:20:50 UTC (rev 90227)
@@ -1,3 +1,6 @@
 # svn propset svn:externals -F EXTERNALS.txt .
 grokcore.formlib svn://svn.zope.org/repos/main/grokcore.formlib/trunk
+grokcore.component svn://svn.zope.org/repos/main/grokcore.component/trunk
+grokcore.view svn://svn.zope.org/repos/main/grokcore.view/trunk
+grok svn://svn.zope.org/repos/main/grok/trunk
 

Modified: megrok.z3cform/trunk/setup.py
===================================================================
--- megrok.z3cform/trunk/setup.py	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/setup.py	2008-08-25 16:20:50 UTC (rev 90227)
@@ -3,6 +3,19 @@
 
 version = '0.1'
 
+install_requires = [
+    'setuptools',
+    'grokcore.component',
+    'grokcore.view',
+    'grokcore.formlib',
+    'z3c.form',
+    ]
+
+# The grok dependency is not added explicitly, so we can factor out a
+# version of this package for Zope 2 which is not going to install
+# grok. But we want the dependency to run tests.
+test_requires = install_requires + ['grok',]
+
 setup(name='megrok.z3cform',
       version=version,
       description="Z3C Forms support for Grok",
@@ -28,13 +41,8 @@
       include_package_data=True,
       zip_safe=False,
       # We need to factor out the dependency on grokcore.formlib
-      install_requires=[
-          'setuptools',
-          'grokcore.component',
-          'grokcore.view',
-          'grokcore.formlib',
-          'z3c.form'
-      ],
+      install_requires=install_requires,
+      extras_require={'test': test_requires,},
       entry_points="""
       # -*- Entry points: -*-
       """,

Modified: megrok.z3cform/trunk/src/megrok/z3cform/configure.zcml
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/configure.zcml	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/src/megrok/z3cform/configure.zcml	2008-08-25 16:20:50 UTC (rev 90227)
@@ -1,6 +1,7 @@
 <configure
-    xmlns="http://namespaces.zope.org/zope">
+   xmlns="http://namespaces.zope.org/zope">
 
-  <include package="z3c.form" file="meta.zcml" />
+  <include package="z3c.form" />
+  <include package="grokcore.view" />
 
 </configure>

Modified: megrok.z3cform/trunk/src/megrok/z3cform/meta.py
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/meta.py	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/src/megrok/z3cform/meta.py	2008-08-25 16:20:50 UTC (rev 90227)
@@ -25,7 +25,7 @@
     # from any schemas defined by the context
     fields = field.Fields(*most_specialized_interfaces(context))
     # we pull in this field by default, but we don't want it in our form
-    fields = field.omit('__name__')
+    fields = fields.omit('__name__')
     return fields
 
 
@@ -41,14 +41,14 @@
         # Set fields by default.
         if isinstance(form.fields, components.DefaultFields):
             form.fields = get_auto_fields(context)
-
+ 
         # Don't override render method.
         if not getattr(form.render, 'base_method', False):
             raise GrokError(
                 "It is not allowed to specify a custom 'render' "
                 "method for form %r. Forms either use the default "
-                "template or a custom-supplied one." % factory,
-                factory)
+                "template or a custom-supplied one." % form,
+                form)
 
         return True
 

Modified: megrok.z3cform/trunk/src/megrok/z3cform/meta.zcml
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/meta.zcml	2008-08-25 16:20:39 UTC (rev 90226)
+++ megrok.z3cform/trunk/src/megrok/z3cform/meta.zcml	2008-08-25 16:20:50 UTC (rev 90227)
@@ -4,7 +4,9 @@
 
   <include package="z3c.form" file="meta.zcml" />
   <include package="grokcore.component" file="meta.zcml" />
+  <include package="grokcore.view" file="meta.zcml" />
 
   <grok:grok package=".meta" />
 
 </configure>
+

Added: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/__init__.py
===================================================================


Property changes on: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision

Added: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/field.py
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/tests/form/field.py	                        (rev 0)
+++ megrok.z3cform/trunk/src/megrok/z3cform/tests/form/field.py	2008-08-25 16:20:50 UTC (rev 90227)
@@ -0,0 +1,54 @@
+"""
+
+  >>> grok.testing.grok(__name__)
+  >>> 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
+
+


Property changes on: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/field.py
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision

Added: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/render.py
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/tests/form/render.py	                        (rev 0)
+++ megrok.z3cform/trunk/src/megrok/z3cform/tests/form/render.py	2008-08-25 16:20:50 UTC (rev 90227)
@@ -0,0 +1,36 @@
+"""
+
+  >>> grok.testing.grok(__name__)
+  Traceback (most recent call last):
+      ...
+  GrokError: It is not allowed to specify a custom 'render' method for
+  form <class 'megrok.z3cform.tests.form.render.Edit'>. Forms either
+  use the default template or a custom-supplied one.
+
+"""
+
+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):
+
+
+    def render(self):
+        return u"I want a carrot."
+
+


Property changes on: megrok.z3cform/trunk/src/megrok/z3cform/tests/form/render.py
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision

Added: megrok.z3cform/trunk/src/megrok/z3cform/tests/test_all.py
===================================================================
--- megrok.z3cform/trunk/src/megrok/z3cform/tests/test_all.py	                        (rev 0)
+++ megrok.z3cform/trunk/src/megrok/z3cform/tests/test_all.py	2008-08-25 16:20:50 UTC (rev 90227)
@@ -0,0 +1,52 @@
+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.tests
+
+def setUpZope(test):
+    zope.component.eventtesting.setUp(test)
+    xmlconfig.file('configure.zcml', package=megrok.z3cform.tests)
+
+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')


Property changes on: megrok.z3cform/trunk/src/megrok/z3cform/tests/test_all.py
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision

Added: megrok.z3cform/trunk/versions.cfg
===================================================================
--- megrok.z3cform/trunk/versions.cfg	                        (rev 0)
+++ megrok.z3cform/trunk/versions.cfg	2008-08-25 16:20:50 UTC (rev 90227)
@@ -0,0 +1,105 @@
+[versions]
+ClientForm = 0.2.7
+Pygments = 0.8.1
+RestrictedPython = 3.4.2
+ZConfig = 2.5.1
+ZODB3 = 3.8
+docutils = 0.4
+martian = 0.10
+mechanize = 0.1.7b
+pytz = 2007k
+simplejson = 1.7.1
+z3c.autoinclude = 0.2.2
+z3c.flashmessage = 1.0
+z3c.testsetup = 0.2.1
+zc.catalog = 1.2
+zdaemon = 2.0.1
+zodbcode = 3.4
+zope.annotation = 3.4
+zope.app.apidoc = 3.4.3
+zope.app.applicationcontrol = 3.4.1
+zope.app.appsetup = 3.4.1
+zope.app.authentication = 3.4.1
+zope.app.basicskin = 3.4
+zope.app.broken = 3.4
+zope.app.catalog = 3.5.1
+zope.app.component = 3.4.1
+zope.app.container = 3.5.3
+zope.app.content = 3.4
+zope.app.debug = 3.4
+zope.app.dependable = 3.4
+zope.app.error = 3.5.1
+zope.app.exception = 3.4.1
+zope.app.file = 3.4.2
+zope.app.folder = 3.4
+zope.app.form = 3.4.1
+zope.app.generations = 3.4.1
+zope.app.http = 3.4.1
+zope.app.i18n = 3.4.4
+zope.app.interface = 3.4
+zope.app.intid = 3.4.1
+zope.app.keyreference = 3.4.1
+zope.app.locales = 3.4.1
+zope.app.onlinehelp = 3.4.1
+zope.app.pagetemplate = 3.4
+zope.app.preference = 3.4.1
+zope.app.principalannotation = 3.4
+zope.app.publication = 3.4.3
+zope.app.publisher = 3.4.1
+zope.app.renderer = 3.4
+zope.app.rotterdam = 3.4.1
+zope.app.schema = 3.4
+zope.app.security = 3.4
+zope.app.securitypolicy = 3.4.6
+zope.app.server = 3.4
+zope.app.session = 3.5.1
+zope.app.skins = 3.4
+zope.app.testing = 3.4.1
+zope.app.tree = 3.4
+zope.app.twisted = 3.4
+zope.app.wsgi = 3.4
+zope.app.zapi = 3.4
+zope.app.zcmlfiles = 3.4.3
+zope.app.zopeappgenerations = 3.4
+zope.cachedescriptors = 3.4
+zope.component = 3.4
+zope.configuration = 3.4
+zope.contentprovider = 3.4
+zope.contenttype = 3.4
+zope.copypastemove = 3.4
+zope.datetime = 3.4
+zope.deferredimport = 3.4
+zope.deprecation = 3.4
+zope.dottedname = 3.4.2
+zope.dublincore = 3.4
+zope.error = 3.5.1
+zope.event = 3.4
+zope.exceptions = 3.4
+zope.filerepresentation = 3.4
+zope.formlib = 3.4
+zope.hookable = 3.4
+zope.i18n = 3.4
+zope.i18nmessageid = 3.4.3
+zope.index = 3.4.1
+zope.interface = 3.4.1
+zope.lifecycleevent = 3.4
+zope.location = 3.4
+zope.minmax = 1.1
+zope.modulealias = 3.4
+zope.pagetemplate = 3.4
+zope.proxy = 3.4
+zope.publisher = 3.4.2
+zope.schema = 3.4
+zope.security = 3.4
+zope.securitypolicy = 3.4
+zope.server = 3.4.1
+zope.session = 3.4.1
+zope.size = 3.4
+zope.structuredtext = 3.4
+zope.tal = 3.4.1
+zope.tales = 3.4
+zope.testbrowser = 3.4.2
+zope.testing = 3.6.0
+zope.thread = 3.4
+zope.traversing = 3.4.0
+zope.viewlet = 3.4.2



More information about the Checkins mailing list