[Testbot] Plone 5.0 - Python 2.7 - Build # 3117 - Regression! - 0 failure(s)

jenkins at plone.org jenkins at plone.org
Tue Aug 26 01:54:42 UTC 2014


-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 3117 - Failure!
-------------------------------------------------------------------------------

http://jenkins.plone.org/job/plone-5.0-python-2.7/3117/


-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------

Repository: plone.supermodel
Branch: refs/heads/master
Date: 2014-08-26T00:39:43+02:00
Author: Gil Forcada (gforcada) <gforcada at gnome.org>
Commit: https://github.com/plone/plone.supermodel/commit/701eff2ade7ea344f1e5c5c0c1dc59d5da2ac641

Whitespaces cleanup

Files changed:
M README.rst
M docs/INSTALL.txt
M plone/supermodel/directives.txt
M plone/supermodel/interfaces.py
M plone/supermodel/parser.py
M plone/supermodel/schema.txt
M plone/supermodel/schemaclass.txt
M plone/supermodel/serializer.py
M plone/supermodel/tests.py

diff --git a/README.rst b/README.rst
index 359cb28..017b9d2 100644
--- a/README.rst
+++ b/README.rst
@@ -6,13 +6,13 @@ zope.schema fields. The principal use cases are:
 
  1. Define a schema interface in code based on an XML file. This can be done
  with syntax like::
- 
+
   >>> from plone.supermodel import xmlSchema
   >>> IMySchema = xmlSchema("myschema.xml")
-      
+
  2. Save and load interface definitions via an XML format. To turn a schema
  interface into XML, you can do::
- 
+
   >>> from plone.supermodel import serializeSchema
   >>> xml_string = serializeSchema(IMySchema)
 
@@ -20,8 +20,8 @@ To get a schema from an XML file, you can use the xmlSchema() function above,
 or you can use the more powerful spec() function, which turns a dict of all
 schemata and widget hints in a given XML file.
 
-See schema.txt and interfaces.py in the source code for more information, 
-including details on how to give widget hints for forms and how to keep 
+See schema.txt and interfaces.py in the source code for more information,
+including details on how to give widget hints for forms and how to keep
 multiple schemata in the same XML file.
 
 Supermodel vs. Userschema
@@ -40,27 +40,27 @@ for plone.app.portlets and plone.app.contentrules' GenericSetup handlers.
 
 Some of the key differences between the two packages are:
 
- - userschema can create schema interfaces from HTML forms and CSV 
+ - userschema can create schema interfaces from HTML forms and CSV
    spreadsheets. plone.supermodel does not support such configuration.
-   
+
  - Schemata created with userschema are typically loaded at startup, with
    a ZCML directive. plone.supermodel supports a "pseudo-base class" syntax,
    as seen above, to define interfaces in Python code. Beyond that, its API
    is more geared towards runtime configuration.
-   
+
  - plone.supermodel supports serialisation of schemata to XML.
- 
+
  - The plone.supermodel XML syntax is more directly tied to zope.schema
    fields, and infers most parameters from the schema interface declared by
    each zope.schema field. This has two advantages:
-   
-    - API documentation for zope.schema can be easily applied to <schema /> 
+
+    - API documentation for zope.schema can be easily applied to <schema />
       blocks
     - New fields and obscure attributes are easier to support
-    
+
  - plone.supermodel's XML schema is intended to support more schema metadata,
    including widget hints.
-    
+
 In the future, it may be possible to make userschema re-use part of
 plone.supermodel or vice-a-versa, with more refactoring.
 
diff --git a/docs/INSTALL.txt b/docs/INSTALL.txt
index 45729de..3dac689 100644
--- a/docs/INSTALL.txt
+++ b/docs/INSTALL.txt
@@ -4,7 +4,7 @@ plone.supermodel Installation
 To install plone.supermodel into the global Python environment (or a workingenv),
 using a traditional Zope 2 instance, you can do this:
 
- * When you're reading this you have probably already run 
+ * When you're reading this you have probably already run
    ``easy_install plone.supermodel``. Find out how to install setuptools
    (and EasyInstall) here:
    http://peak.telecommunity.com/DevCenter/EasyInstall
@@ -20,24 +20,24 @@ Alternatively, if you are using zc.buildout and the plone.recipe.zope2instance
 recipe to manage your project, you can do this:
 
  * Add ``plone.supermodel`` to the list of eggs to install, e.g.:
- 
+
     [buildout]
     ...
     eggs =
         ...
         plone.supermodel
-        
+
   * Tell the plone.recipe.zope2instance recipe to install a ZCML slug:
-  
+
     [instance]
     recipe = plone.recipe.zope2instance
     ...
     zcml =
         plone.supermodel
-        
+
   * Re-run buildout, e.g. with:
-  
+
     $ ./bin/buildout
-        
+
 You can skip the ZCML slug if you are going to explicitly include the package
 from another package's configure.zcml file.
diff --git a/plone/supermodel/directives.txt b/plone/supermodel/directives.txt
index 3d5221a..babfc81 100644
--- a/plone/supermodel/directives.txt
+++ b/plone/supermodel/directives.txt
@@ -17,11 +17,11 @@ First, load this package's configuration:
     ... <configure
     ...      xmlns="http://namespaces.zope.org/zope"
     ...      i18n_domain="plone.supermodel.tests">
-    ...      
+    ...
     ...     <include package="zope.component" file="meta.zcml" />
-    ...     
+    ...
     ...     <include package="plone.supermodel" />
-    ...     
+    ...
     ... </configure>
     ... """
 
@@ -54,7 +54,7 @@ on how this is structured.
     ...             <max_length>10000</max_length>
     ...         </field>
     ...     </schema>
-    ...     
+    ...
     ...     <schema name="metadata">
     ...         <field type="zope.schema.Datetime" name="created">
     ...             <title>Created date</title>
@@ -66,7 +66,7 @@ on how this is structured.
     ...             <required>True</required>
     ...         </field>
     ...     </schema>
-    ...     
+    ...
     ... </model>
     ... """
 
@@ -84,8 +84,8 @@ We can now define a schema, using the directives defined in this package:
     >>> from plone.supermodel import model
     >>> class ITestContent(model.Schema):
     ...     model.load(schema_filename)
-    
-Note: If the schema filename is not an absolute path, it will be found 
+
+Note: If the schema filename is not an absolute path, it will be found
 relative to the module where the interface is defined.
 
 The interface should have the fields of the default (unnamed) schema:
@@ -94,7 +94,7 @@ The interface should have the fields of the default (unnamed) schema:
     >>> getFieldNamesInOrder(ITestContent)
     ['title', 'body']
 
-It also contains the filename that the schema was loaded from and the schema 
+It also contains the filename that the schema was loaded from and the schema
 name as a tagged values in the base interface.
 
     >>> from plone.supermodel.interfaces import FILENAME_KEY, SCHEMA_NAME_KEY
@@ -130,13 +130,13 @@ former will override the latter.
     >>> import zope.schema
     >>> class ITestContentWithNewFields(model.Schema):
     ...     model.load(schema_filename)
-    ...     
+    ...
     ...     title = zope.schema.TextLine(title=u"Title", default=u"Default title")
     ...     postscript = zope.schema.Text(title=u"Postscript")
 
     >>> getFieldNamesInOrder(ITestContentWithNewFields)
     ['body', 'title', 'postscript']
-    
+
     >>> ITestContentWithNewFields[u'title'].default
     u'Default title'
 
@@ -150,16 +150,16 @@ fieldsets. The same tagged value can be populated using a directive:
     ...
     ...     model.fieldset(u"default", label="Default", fields=['title', 'description'])
     ...     model.fieldset(u"metadata", label="Metadata", fields=['publication_date'], layout='concise')
-    ...     
+    ...
     ...     title = zope.schema.TextLine(title=u"Title")
     ...     description = zope.schema.TextLine(title=u"Description")
-    ...     
+    ...
     ...     publication_date = zope.schema.Date(title=u"Publication date")
-    
+
     >>> from plone.supermodel.interfaces import FIELDSETS_KEY
     >>> IGrouped.getTaggedValue(FIELDSETS_KEY)
     [<Fieldset 'default' of title, description>, <Fieldset 'metadata' of publication_date>]
-    
+
 Extra parameters, such as the layout parameter for the metadata fieldset, are
 accessible as attributes on the fieldset:
 
@@ -176,14 +176,14 @@ In combination with plone.rfc822, primary fields may be marked:
     >>> class IFields(model.Schema):
     ...     title = zope.schema.TextLine(title=u"Title")
     ...     description = zope.schema.TextLine(title=u"Description")
-    ...     
+    ...
     ...     model.primary('body')
     ...     body = zope.schema.Text(title=u"Body")
-    
+
     >>> from plone.rfc822.interfaces import IPrimaryField
     >>> IPrimaryField.providedBy(IFields['body'])
     True
-    
+
 Cleanup
 -------
 
diff --git a/plone/supermodel/interfaces.py b/plone/supermodel/interfaces.py
index f9fd541..f14cafc 100644
--- a/plone/supermodel/interfaces.py
+++ b/plone/supermodel/interfaces.py
@@ -226,7 +226,7 @@ def __call__():
 class IInvariant(Interface):
     """Marker interface for a callable used as a form invariant.
     """
-    
+
     def __call__(data):
         """Returns None or raises zope.interface.Invalid
         """
diff --git a/plone/supermodel/parser.py b/plone/supermodel/parser.py
index c3f6e7e..d9d145a 100644
--- a/plone/supermodel/parser.py
+++ b/plone/supermodel/parser.py
@@ -191,15 +191,15 @@ def readField(fieldElement, schemaAttributes, fieldElements, baseFields):
                                 bases=bases + policy_util.bases(schemaName, tree) + (Schema,),
                                 __module__=policy_util.module(schemaName, tree),
                                 attrs=schemaAttributes)
-        
+
         # add invariants to schema as tagged values
         if invariants:
             schema_invariants = schema.queryTaggedValue('invariants', [])
-            schema.setTaggedValue('invariants', schema_invariants + invariants)            
+            schema.setTaggedValue('invariants', schema_invariants + invariants)
 
         # Save fieldsets
         schema.setTaggedValue(FIELDSETS_KEY, fieldsets)
-        
+
         # Let metadata handlers write metadata
         for handler_name, metadata_handler in field_metadata_handlers:
             for fieldName in schema:
diff --git a/plone/supermodel/schema.txt b/plone/supermodel/schema.txt
index d34a2dc..ce35f8c 100644
--- a/plone/supermodel/schema.txt
+++ b/plone/supermodel/schema.txt
@@ -2,7 +2,7 @@
 plone.supermodel: content schemata loaded from XML
 ==================================================
 
-This package allows content schemata to be read and written as XML. It has a 
+This package allows content schemata to be read and written as XML. It has a
 standard importer and serialiser for interfaces that contain zope.schema
 fields. The format is general enough to be able to handle future fields
 easily, so long as they are properly specified through interfaces.
@@ -18,11 +18,11 @@ and can be loaded from the configure.zcml file of plone.supermodel.
     ... <configure
     ...      xmlns="http://namespaces.zope.org/zope"
     ...      i18n_domain="plone.supermodel.tests">
-    ...      
+    ...
     ...     <include package="zope.component" file="meta.zcml" />
-    ...     
+    ...
     ...     <include package="plone.supermodel" />
-    ...     
+    ...
     ... </configure>
     ... """
 
@@ -60,7 +60,7 @@ This will load one schema, with the default name u"":
 
     >>> model.schemata.keys()
     [u'']
-    
+
 We can inspect this schema and see that it contains zope.schema fields with
 attributes corresponding to the values set in XML.
 
@@ -69,12 +69,12 @@ attributes corresponding to the values set in XML.
     >>> from zope.schema import getFieldNamesInOrder
     >>> getFieldNamesInOrder(schema)
     ['title', 'description']
-    
+
     >>> schema['title'].title
     u'Title'
     >>> schema['title'].required
     True
-    
+
     >>> schema['description'].title
     u'Description'
     >>> schema['description'].description
@@ -124,7 +124,7 @@ In addition to parsing, we can serialize a model to an XML representation:
 Building interfaces from schemata
 ---------------------------------
 
-Above, we saw how to parse a schema from a file directly. Next, let's see how 
+Above, we saw how to parse a schema from a file directly. Next, let's see how
 this can be used more practically to define a custom interface. Here, we will
 use two schemata in one file.
 
@@ -142,7 +142,7 @@ use two schemata in one file.
     ...             <max_length>10000</max_length>
     ...         </field>
     ...     </schema>
-    ...     
+    ...
     ...     <schema name="metadata">
     ...         <field type="zope.schema.Datetime" name="created">
     ...             <title>Created date</title>
@@ -154,7 +154,7 @@ use two schemata in one file.
     ...             <required>True</required>
     ...         </field>
     ...     </schema>
-    ...     
+    ...
     ... </model>
     ... """
 
@@ -173,8 +173,8 @@ We can define interfaces from this using a helper function:
 
     >>> from plone.supermodel import xmlSchema
     >>> ITestContent = xmlSchema(schema_filename)
-    
-Note: If the schema filename is not an absolute path, it will be found 
+
+Note: If the schema filename is not an absolute path, it will be found
 relative to the module where the interface is defined.
 
 After being loaded, the interface should have the fields of the default
@@ -206,7 +206,7 @@ of just a single schema using serializeSchema():
         </field>
       </schema>
     </model>
-    
+
     >>> print serializeSchema(ITestMetadata, name=u"metadata") # doctest: +NORMALIZE_WHITESPACE
     <model xmlns="http://namespaces.plone.org/supermodel/schema">
       <schema name="metadata">
@@ -220,7 +220,7 @@ of just a single schema using serializeSchema():
         </field>
       </schema>
     </model>
-    
+
 Finally, let's clean up the temporary directory.
 
     >>> shutil.rmtree(tmpdir)
@@ -232,7 +232,7 @@ When building a schema interface from XML, it is possible to specify a base
 interface. This is analogous to "subclassing" an existing interface. The XML
 schema representation can override and/or extend fields from the base.
 
-For the purposes of this test, we have defined a dummy interface in 
+For the purposes of this test, we have defined a dummy interface in
 plone.supermodel.tests. We can't define it in the doctest, because the import
 resolver needs to have a proper module path. The interface looks like this
 though:
@@ -246,7 +246,7 @@ In real life, you'd more likely have a dotted name like
 my.package.interfaces.IBase, of course.
 
 Then, let's define a schema that is based on this interface.
-    
+
     >>> schema = """\
     ... <?xml version="1.0" encoding="UTF-8"?>
     ... <model xmlns="http://namespaces.plone.org/supermodel/schema">
@@ -274,12 +274,12 @@ generated interface contains the base schema.
     >>> model = loadString(schema)
     >>> model.schema.__bases__
     (<InterfaceClass plone.supermodel.tests.IBase>, <SchemaClass plone.supermodel.model.Schema>)
-    
+
 The fields of the base interface will also be replicated in the new schema.
 
     >>> getFieldNamesInOrder(model.schema)
     ['title', 'description', 'name', 'age']
-    
+
 Notice how the order of the 'description' field is dictated by where it
 appeared in the base interface, not where it appears in the XML schema.
 
@@ -287,7 +287,7 @@ We should also verify that the description field was indeed overridden:
 
     >>> model.schema['description'] # doctest: +ELLIPSIS
     <zope.schema._bootstrapfields.Text object at ...>
-    
+
 Finally, let's verify that bases are preserved upon serialisation:
 
     >>> print serializeSchema(model.schema) # doctest: +NORMALIZE_WHITESPACE
@@ -319,7 +319,7 @@ tag to wrap a sequence of fields.
     ... <?xml version="1.0" encoding="UTF-8"?>
     ... <model xmlns="http://namespaces.plone.org/supermodel/schema">
     ...     <schema>
-    ...     
+    ...
     ...         <field type="zope.schema.TextLine" name="title">
     ...             <title>Title</title>
     ...             <required>True</required>
@@ -329,17 +329,17 @@ tag to wrap a sequence of fields.
     ...             <required>True</required>
     ...             <max_length>10000</max_length>
     ...         </field>
-    ...         
+    ...
     ...         <fieldset name="dates" label="Dates" description="Standard dates">
     ...             <field type="zope.schema.Date" name="publication_date">
     ...                 <title>Publication date</title>
     ...             </field>
     ...         </fieldset>
-    ...         
+    ...
     ...         <field type="zope.schema.TextLine" name="author">
     ...             <title>Author</title>
     ...         </field>
-    ...         
+    ...
     ...         <fieldset name="dates" label="Ignored" description="Ignored">
     ...             <field type="zope.schema.Date" name="expiry_date">
     ...                 <title>Expiry date</title>
@@ -349,20 +349,20 @@ tag to wrap a sequence of fields.
     ...             </field>
     ...         </fieldset>
     ...     </schema>
-    ...     
+    ...
     ...     <schema name="metadata">
-    ...     
+    ...
     ...         <fieldset name="standard" label="Standard" />
     ...         <fieldset name="dates" label="Metadata dates" />
     ...         <fieldset name="author" label="Author info" />
-    ...         
+    ...
     ...         <fieldset name="dates">
     ...             <field type="zope.schema.Datetime" name="created">
     ...                 <title>Created date</title>
     ...                 <required>False</required>
     ...             </field>
     ...         </fieldset>
-    ...         
+    ...
     ...         <fieldset name="standard">
     ...             <field type="zope.schema.TextLine" name="creator">
     ...                 <title>Creator</title>
@@ -371,7 +371,7 @@ tag to wrap a sequence of fields.
     ...             </field>
     ...         </fieldset>
     ...     </schema>
-    ...     
+    ...
     ... </model>
     ... """
 
@@ -392,7 +392,7 @@ default schema above is unrelated to the one in the metadata schema.
 
     >>> getFieldNamesInOrder(model.schemata['metadata'])
     ['created', 'creator']
-    
+
     >>> from plone.supermodel.interfaces import FIELDSETS_KEY
     >>> model.schema.getTaggedValue(FIELDSETS_KEY)
     [<Fieldset 'dates' of publication_date, expiry_date, notification_date>]
@@ -474,7 +474,7 @@ a dotted name for the invariant function.
 
 When invariants are checked for our model.schema, we'll see our invariant
 in action.
-    
+
     >>> model.schema.validateInvariants(object())
     Traceback (most recent call last):
     ...
@@ -536,11 +536,11 @@ as a zope.i18nmessageid message id rather than a basic Unicode string::
     ...        xmlns:i18n="http://xml.zope.org/namespaces/i18n"
     ...        i18n:domain="plone.supermodel">
     ...     <schema>
-    ...     
+    ...
     ...         <field type="zope.schema.TextLine" name="title">
     ...             <title i18n:translate="supermodel_test_title">Title</title>
     ...         </field>
-    ...     
+    ...
     ...     </schema>
     ... </model>
     ... """
@@ -595,15 +595,15 @@ Metadata handlers should be able to reciprocally read and write metadata.
 
     >>> class FormLayoutMetadata(object):
     ...     implements(ISchemaMetadataHandler)
-    ...     
+    ...
     ...     namespace = "http://namespaces.acme.com/ui"
     ...     prefix = "ui"
-    ...     
+    ...
     ...     def read(self, schemaNode, schema):
     ...         layout = schemaNode.get(ns('layout', self.namespace))
     ...         if layout:
     ...             schema.setTaggedValue(u'acme.layout', layout)
-    ...             
+    ...
     ...     def write(self, schemaNode, schema):
     ...         layout = schema.queryTaggedValue(u'acme.layout', None)
     ...         if layout:
@@ -614,10 +614,10 @@ Metadata handlers should be able to reciprocally read and write metadata.
     >>> from plone.supermodel.interfaces import IFieldMetadataHandler
     >>> class FieldWidgetMetadata(object):
     ...     implements(IFieldMetadataHandler)
-    ...     
+    ...
     ...     namespace = "http://namespaces.acme.com/ui"
     ...     prefix = "ui"
-    ...         
+    ...
     ...     def read(self, fieldNode, schema, field):
     ...         name = field.__name__
     ...         widget = fieldNode.get(ns('widget', self.namespace))
diff --git a/plone/supermodel/schemaclass.txt b/plone/supermodel/schemaclass.txt
index 8f74fc8..a909c7e 100644
--- a/plone/supermodel/schemaclass.txt
+++ b/plone/supermodel/schemaclass.txt
@@ -18,7 +18,7 @@ an order attribute, which defaults to 0.
     ...         self.schema = schema
     ...     def __call__(self):
     ...         print("%s: %r" % (self.__class__.__name__, self.schema))
-    ... 
+    ...
     >>> provideAdapter(TestPlugin, name=u"plone.supermodel.tests.TestPlugin")
 
 Schema plugins are executed at schema declaration.
diff --git a/plone/supermodel/serializer.py b/plone/supermodel/serializer.py
index 2e56561..b7017b1 100644
--- a/plone/supermodel/serializer.py
+++ b/plone/supermodel/serializer.py
@@ -93,7 +93,7 @@ def writeField(field, parentElement):
         bases = [b.__identifier__ for b in schema.__bases__ if b is not Schema]
         if bases:
             schema_element.set('based-on', ' '.join(bases))
-        
+
         for invariant in schema.queryTaggedValue('invariants', []):
             invariant_element = etree.Element('invariant')
             invariant_element.text = "%s.%s" % (invariant.__module__, invariant.__name__)
diff --git a/plone/supermodel/tests.py b/plone/supermodel/tests.py
index ebf4d89..4e9a7ed 100644
--- a/plone/supermodel/tests.py
+++ b/plone/supermodel/tests.py
@@ -90,12 +90,12 @@ def dummy_defaultBadFactory():
 @provider(IInvariant)
 def dummy_invariant(data):
     raise Invalid(u"Yikes! Invalid")
-    
+
 
 @provider(IInvariant)
 def dummy_invariant_prime(data):
     return None
-    
+
 
 def dummy_unmarkedInvariant(data):
     """ lacks IInvariant marker """
@@ -408,7 +408,7 @@ def test_nested_dicts(self):
 
 
 class TestChoiceHandling(unittest.TestCase):
-   
+
     def setUp(self):
         configure()
         self.handler = ChoiceHandler(schema.Choice)
@@ -449,7 +449,7 @@ def _choice_with_term_titles(self):
             '</values>'\
             '</field>'
         return (schema.Choice(vocabulary=vocab), expected)
- 
+
     def test_choice_serialized(self):
         field, expected = self._choice()
         el = self.handler.write(field, 'myfield', 'zope.schema.Choice')




-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 22412 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140826/7bae028d/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 119319 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140826/7bae028d/attachment-0003.obj>


More information about the Testbot mailing list