Giter Club home page Giter Club logo

z3c.form's Introduction

z3c.form

Latest release

Supported Python versions

image

image

Documentation Status

z3c.form provides an implementation for both HTML and JSON forms and according widgets. Its goal is to provide a simple API but with the ability to easily customize any data or steps.

There are currently two maintained branches:

  • master with the latest changes
  • 3.x without the object widget overhaul and still including the ObjectSubForm and the SubformAdapter.

Documentation on this implementation and its API can be found at https://z3cform.readthedocs.io/

z3c.form's People

Contributors

agroszer avatar alga avatar ccomb avatar ch4ni avatar davisagli avatar djay avatar ericof avatar erral avatar esteele avatar faassen avatar gotcha avatar hannosch avatar icemac avatar jfroche avatar jribouxquadra avatar malthe avatar mauritsvanrees avatar mgedmin avatar mkerrin avatar nadako avatar optilude avatar pcardune avatar projekt01 avatar strichter avatar tdesvenain avatar thet avatar tisto avatar tomgross avatar vincentfretin avatar wichert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

z3c.form's Issues

faulty NumberDataConverter for Decimal?

Plone 5.2 on Py 3.7

I have a behavior with a decimal field

    item_net = schema.Decimal(
        title=_(u"label_item_net", default=u"Item net price"),
        required=False,
        defaultFactory=default_item_net,
        min=Decimal(0),
    )

Enter 1.7641597028783658
View 19000000000000000.00
Reedit 17.641.597.028.783.658

Stepping into NumberDataConverter

[18] > /Users/peter/workspace/project/buildout/eggs/z3c.form-3.7.0-py3.7.egg/z3c/form/converter.py(123)toFieldValue()
-> if value == u'':
(Pdb++) value
'1.7641597028783658'
(Pdb++) ll
 120         def toFieldValue(self, value):                                                                                                                                                                                                 
 121             import pdb; pdb.set_trace()                                                                                                                                                                                                
 122             """See interfaces.IDataConverter"""                                                                                                                                                                                        
 123  ->         if value == u'':                                                                                                                                                                                                           
 124                 return self.field.missing_value                                                                                                                                                                                        
 125             try:                                                                                                                                                                                                                       
 126                 return self.formatter.parse(value)                                                                                                                                                                                     
 127             except zope.i18n.format.NumberParseError:                                                                                                                                                                                  
 128                 raise FormatterValidationError(self.errorMessage, value)                                                                                                                                                               
(Pdb++) n
[18] > /Users/peter/workspace/project/buildout/eggs/z3c.form-3.7.0-py3.7.egg/z3c/form/converter.py(125)toFieldValue()
-> try:
(Pdb++) self.formatter.parse(value)
Decimal('17641597028783658')

Can someone give me a hint why this is happening?
Or any pointer on how to fix?

Wrong version numbers.

I really would love to see the maintainers of this package to stick to semantic versioning. For consumers of this package this would make live and management of their packages much easier.

This change

* ``ObjectSubForm`` and ``SubformAdapter`` is removed,
    it was causing more problems than good

Would need a new major version number.

For more information about semantic versioning please read carefully http://semver.org/

Ordered Select Widget content disappear - bad <script> end tag

It seems that the syntax

<script type="text/javascript" src="++resource++orderedselect_input.js" /> used in orderedselect_input.pt is not correctly interpreted by the browser if the content header of the page is set to text/html. You should use <script type="text/javascript" src="++resource++orderedselect_input.js" ></script>

Otherwise the content of the widget disappears.
changes made in version 3.2.3

Add support for Python 3.6 and maybe PyPy

Currently this package officially supports Python 3.3 up to 3.5.

Support for 3.3 could be dropped.
Support for 3.6 should be added.

I'm not sure about PyPy: If it works out of the box supporting it would be nice, too.

items as property or method

When I update the z3c.form version in Plone 5.1 (development) from 3.2.9 to 3.2.10, I get errors like this:

.../Products/CMFPlone/controlpanel/browser/syndication.py", line 43, in forceCheckboxValue
    for item in widget.items:
TypeError: 'instancemethod' object is not iterable

and this:

.../plone/app/contenttypes/migration/browser.py", line 402, in updateWidgets
    if not len(widget.items):
TypeError: object of type 'instancemethod' has no len()

This is caused by dd40f6f.

Before this change, the select browser view was the only one with items as method.
After this change, the orderedselect browser view is the only one with items as property.

It would be nicer if all were the same, but it's not clear which one it should be...
Can we compromise and update the changed radio and checkbox browser view to use their new methods but add an @property?

Latest IE11 11.0.16 update break OrderedSelectWidget

The recently pushed out IE11 security update from february 10th 2015 causes a javascript error in the edit template of the OrderedSelectWidget. Users might not notice the error and upon save already selected items in the widget are lost: and empty widget is saved back tot the content item.

Specifically these lines cause the problem in IE11 in orderedselect_input.pt:

// create virtual node with suitable attributes
var newNode = document.createElement("input");

.......

newAttr = document.createAttribute("type");
newAttr.nodeValue = "hidden";
newNode.setAttributeNode(newAttr);

It will throw a "member not found" error. See attached screenshot.

Setting other attributes using setAttributeNode are fine, but setting type="hidden" gives problems. My temporary fix in a customer project where I have a controlled environment on the browser versions used (latest IE11, recent Firefox), is using "setAttribute":

var newNode = document.createElement("input");
newNode.setAttribute("name", name.replace(/-/g, '.')+':list');
newNode.setAttribute("type", "hidden");
newNode.setAttribute("value",toSel.options[i].value );

But I haven't been able to verify this for other/older browsers and check for compatibility of the .setAttribute method.

setattributenode

Can't delete items from a 2-deep level subform

Originated from https://community.plone.org/t/z3c-form-deleting-subitems-in-a-very-complex-form/906


I'm working on a complex z3c.form-base Plone controlpanel and I'm finding an issue deleting 2nd level subitems

In two words: I've a main interface IConfiguration1, one of its fields (let say field1 is a tuple of a value_type IConfiguration2.
This is a know situations that already worked in a lot of other cases: z3c.form display a subform where you can add/edit/remove submitems.

This time in the IConfiguration2 I've another tuple field (field2) composed by items of type IConfiguration3.

I never done a so complex form before (and probably is not a good idea)... however: it works normally, I can add 2nd level subitems, edit them, but I can't delete.

When I try to delete one item from the field2 set, the UI will reloads the same page with the item still there; the only difference is the selection checkbox I checked before is now disabled.

The only way that works is to delete the super-item (one of the field1 values) and re-add all.

Apart of that: all works normally.

Add test run with z3c.pt dependency

There is test infrastructure to run the tests against z3c.pt aka Chameleon but it is only used if the extra named extra is installed. (buildout.cfg has the (now disabled) test-with-z3cpt section)

Failures with changed repeat syntax newer Zope/chameleon

In Zope/templates/chameleon the repeat syntax has changed slightly. Apparently previously you had to call repeat['widget'].index() to get the index number, but now you directly get the integer without needing to call it.
See plone/plone.app.z3cform#116 for such a failure in plone.app.z3cform in a template that overrides a base template in z3c.form. And see plone/plone.app.z3cform#117 for the fix.

The base template in z3c.form has the same problem, as do several other templates:

$ ack repeat | ack index
browser/multi_hidden.pt:6:        define="key_widget python:view.key_widgets[repeat['widget'].index()];">
browser/multi_display.pt:25:         tal:define="key_widget python:view.key_widgets[repeat['widget'].index()];"
browser/multi_input.pt:12:         tal:define="key_widget python:view.key_widgets[repeat['widget'].index()];">

This is in z3c.form 3.7.0.
I have no time right now to fix it, only to create an issue.

defaultFactory are not handled via applyChanges in zc3.form.form.py

https://github.com/zopefoundation/z3c.form/blob/master/src/z3c/form/form.py#L46
tries to apply Changes on data if the have Changed, If you use a defaultFactory on a zope.schema field the value did not change, but also did not get written. This results in a side effect that if you try to resolve field value in a browser view the defaultFactory is executed again, and could provide a different result to different users.

easy solution always write defaultFactory Fields:
change

if util.changedField(field.field, newValue, context=content):

to

if util.changedField(field.field, newValue, context=content) or field.field.defaultFactory:

Tests fail on Python 3.3

$ tox -e py33
...
======================================================================
FAIL: /home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/objectmulti.txt
Doctest: objectmulti.txt
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.3/doctest.py", line 2154, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for objectmulti.txt
  File "/home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/objectmulti.txt", line 0

----------------------------------------------------------------------
File "/home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/objectmulti.txt", line 716, in objectmulti.txt
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <div class="multi-widget required">
        <div class="row" id="foo-0-row">
          <div class="label">
            <label for="foo-0">
              <span>my object widget</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="foo-0-remove" name="foo.0.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <div class="object-widget required">
                <div class="label">
                  <label for="foo-0-widgets-foofield">
                    <span>My foo field</span>
                    <span class="required">*</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget required int-field" id="foo-0-widgets-foofield" name="foo.0.widgets.foofield" type="text" value="42">
                </div>
                <div class="label">
                  <label for="foo-0-widgets-barfield">
                    <span>My dear bar</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget int-field" id="foo-0-widgets-barfield" name="foo.0.widgets.barfield" type="text" value="666">
                </div>
                <input name="foo.0-empty-marker" type="hidden" value="1">
              </div>
            </div>
          </div>
        </div>
        <div class="row" id="foo-1-row">
          <div class="label">
            <label for="foo-1">
              <span>my object widget</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="foo-1-remove" name="foo.1.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <div class="object-widget required">
                <div class="label">
                  <label for="foo-1-widgets-foofield">
                    <span>My foo field</span>
                    <span class="required">*</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget required int-field" id="foo-1-widgets-foofield" name="foo.1.widgets.foofield" type="text" value="46">
                </div>
                <div class="label">
                  <label for="foo-1-widgets-barfield">
                    <span>My dear bar</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget int-field" id="foo-1-widgets-barfield" name="foo.1.widgets.barfield" type="text" value="98">
                </div>
                <input name="foo.1-empty-marker" type="hidden" value="1">
              </div>
            </div>
          </div>
        </div>
        <div class="buttons">
          <input class="submit-widget button-field" id="foo-buttons-add" name="foo.buttons.add" type="submit" value="Add">
          <input class="submit-widget button-field" id="foo-buttons-remove" name="foo.buttons.remove" type="submit" value="Remove selected">
        </div>
      </div>
      <input name="foo.count" type="hidden" value="2">
    </body>
  </html>

Got:
  <html>
    <body>
      <div class="multi-widget required">
        <div class="buttons">
          <input class="submit-widget button-field" id="foo-buttons-add" name="foo.buttons.add" type="submit" value="Add">
        </div>
      </div>
      <input name="foo.count" type="hidden" value="0">
    </body>
  </html>

Diff:
  <html>
    <body>
      <div class="multi-widget required">
        <div class="buttons (got: row)" +id="foo-0-row">
          <div (got: input) class="submit-widget button-field (got: label)" -id="foo-buttons-add" -name="foo.buttons.add" -type="submit" -value="Add">
            +<label for="foo-0">
              <span>my object widget</span>
              <span class="required">*</span>
            </label>
          </div (got: input)>
          +<div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="foo-0-remove" name="foo.0.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <div class="object-widget required">
                <div class="label">
                  <label for="foo-0-widgets-foofield">
                    <span>My foo field</span>
                    <span class="required">*</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget required int-field" id="foo-0-widgets-foofield" name="foo.0.widgets.foofield" type="text" value="42">
                </div>
                <div class="label">
                  <label for="foo-0-widgets-barfield">
                    <span>My dear bar</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget int-field" id="foo-0-widgets-barfield" name="foo.0.widgets.barfield" type="text" value="666">
                </div>
                <input name="foo.0-empty-marker" type="hidden" value="1">
              </div>
            </div>
          </div>
        </div>
        +<div class="row" id="foo-1-row">
          <div class="label">
            <label for="foo-1">
              <span>my object widget</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="foo-1-remove" name="foo.1.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <div class="object-widget required">
                <div class="label">
                  <label for="foo-1-widgets-foofield">
                    <span>My foo field</span>
                    <span class="required">*</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget required int-field" id="foo-1-widgets-foofield" name="foo.1.widgets.foofield" type="text" value="46">
                </div>
                <div class="label">
                  <label for="foo-1-widgets-barfield">
                    <span>My dear bar</span>
                  </label>
                </div>
                <div class="widget">
                  <input class="text-widget int-field" id="foo-1-widgets-barfield" name="foo.1.widgets.barfield" type="text" value="98">
                </div>
                <input name="foo.1-empty-marker" type="hidden" value="1">
              </div>
            </div>
          </div>
        </div>
        +<div class="buttons">
          <input class="submit-widget button-field" id="foo-buttons-add" name="foo.buttons.add" type="submit" value="Add">
          <input class="submit-widget button-field" id="foo-buttons-remove" name="foo.buttons.remove" type="submit" value="Remove selected">
        </div>
      </div>
      <input name="foo.count" type="hidden" value="0 (got: 2)">
    </body>
  </html>


======================================================================
FAIL: /home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/multi.txt
Doctest: multi.txt
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.3/doctest.py", line 2154, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for multi.txt
  File "/home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/multi.txt", line 0

----------------------------------------------------------------------
File "/home/mg/src/new-zope-order/z3c.form/.tox/py33/lib/python3.3/site-packages/z3c/form/browser/multi.txt", line 372, in multi.txt
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <div class="multi-widget">
        <div class="row" id="widget-id-0-row">
          <div class="label">
            <label for="widget-id-0">
              <span>Number</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="widget-id-0-remove" name="widget.name.0.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <input class="text-widget required int-field" id="widget-id-0" name="widget.name.0" type="text" value="42">
            </div>
          </div>
        </div>
        <div class="row" id="widget-id-1-row">
          <div class="label">
            <label for="widget-id-1">
              <span>Number</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="widget-id-1-remove" name="widget.name.1.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <input class="text-widget required int-field" id="widget-id-1" name="widget.name.1" type="text" value="44">
            </div>
          </div>
        </div>
        <div class="buttons">
          <input class="submit-widget button-field" id="widget-name-buttons-add" name="widget.name.buttons.add" type="submit" value="Add">
          <input class="submit-widget button-field" id="widget-name-buttons-remove" name="widget.name.buttons.remove" type="submit" value="Remove selected">
        </div>
      </div>
      <input name="widget.name.count" type="hidden" value="2">
    </body>
  </html>

Got:
  <html>
    <body>
      <div class="multi-widget">
        <div class="buttons">
          <input class="submit-widget button-field" id="widget-name-buttons-add" name="widget.name.buttons.add" type="submit" value="Add">
        </div>
      </div>
      <input name="widget.name.count" type="hidden" value="0">
    </body>
  </html>

Diff:
  <html>
    <body>
      <div class="multi-widget">
        <div class="buttons (got: row)" +id="widget-id-0-row">
          <div (got: input) class="submit-widget button-field (got: label)" -id="widget-name-buttons-add" -name="widget.name.buttons.add" -type="submit" -value="Add">
            +<label for="widget-id-0">
              <span>Number</span>
              <span class="required">*</span>
            </label>
          </div (got: input)>
          +<div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="widget-id-0-remove" name="widget.name.0.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <input class="text-widget required int-field" id="widget-id-0" name="widget.name.0" type="text" value="42">
            </div>
          </div>
        </div>
        +<div class="row" id="widget-id-1-row">
          <div class="label">
            <label for="widget-id-1">
              <span>Number</span>
              <span class="required">*</span>
            </label>
          </div>
          <div class="widget">
            <div class="multi-widget-checkbox">
              <input class="multi-widget-checkbox checkbox-widget" id="widget-id-1-remove" name="widget.name.1.remove" type="checkbox" value="1">
            </div>
            <div class="multi-widget-input">
              <input class="text-widget required int-field" id="widget-id-1" name="widget.name.1" type="text" value="44">
            </div>
          </div>
        </div>
        +<div class="buttons">
          <input class="submit-widget button-field" id="widget-name-buttons-add" name="widget.name.buttons.add" type="submit" value="Add">
          <input class="submit-widget button-field" id="widget-name-buttons-remove" name="widget.name.buttons.remove" type="submit" value="Remove selected">
        </div>
      </div>
      <input name="widget.name.count" type="hidden" value="0 (got: 2)">
    </body>
  </html>


----------------------------------------------------------------------
Ran 37 tests in 3.635s

FAILED (failures=2)

The tests also fail on Travis

wrong context for vocabulary in widget

Hi there,

I have a usecase where I need a relation field that only presents a narrowly subset of elements as possible related items to the user. The selection of possible elements is determined by the current element (the one that we are currently editing).

Please consider this stub version of a vocabulary:

from plone.app.vocabularies.catalog import CatalogVocabulary
from plone.memoize.instance import memoize

class SiblingVocabulary(CatalogVocabulary):

    def __init__(self, context):
        self.context = context


    def __contains__(self, value):
        print "contains"
        return True # this is ok ;)

    @property
    @memoize
    def brains(self):
        # this overrides the property in CatalogVocabulary
        print "brains", self.context
        return [] # this is where I will compute the valid elements, using the context

it is used by this factory:

from zope.interface import implementer
from zope.schema.interfaces import IVocabularyFactory

@implementer(IVocabularyFactory)
class SiblingVocabularyFactory(object):
    def __call__(self, context, query=None):
        print "Factory", context
        return SiblingVocabulary(context)

which is configured like this in the config.zcml

<utility
    factory=".languagesibling.SiblingVocabularyFactory"
    name="poi.dwa.sibling_vocabulary"
/>

The widget/field is configured like this:

@provider(IFormFieldProvider)
class ILanguageSibling(Schema):
    explicit_siblings = List(
        title=_(u'languagesibling.explicit_siblings.title', default=u"Select explicit siblings"),
        required=False,
        value_type=RelationChoice(
            vocabulary='poi.dwa.sibling_vocabulary'
        )
    )

    widget(
        EXPLICIT_SIBLINGS_FIELD,
        RelatedItemsFieldWidget,
        orderable=True,
        pattern_options={
            'scanSelection': True,
            'mode': 'search',
            #'currentPath': current_path,
            #'basePath': base_path,
        }
    )

Now. If I open the edit mode I get this printout:
Factory <Folder expected-element>

But when I click the widget in order to display all valid elements I get this:

Factory <Folder at expected-element>
Factory <PloneSite at Plone>
brains <PloneSite at Plone>

This corresponds to these two requests I see in my browser:

http://localhost:8080/Plone/at/campaigns/expected-element/@@edit/@@z3cform_validate_field
http://localhost:8080/Plone/@@getVocabulary?name=poi.dwa.sibling_vocabulary&field=explicit_siblings&query=...

Note: the target of the getVocabulary request is my site-root (thus I do not get the expected context in my vocabulary factory) and not the expected-element.

Am I right to assume that this is a bug?

SingleCheckboxWidget checked state not saved without ``value=selected``

What I did:

I had a field which uses a z3c.form SingleCheckboxWidget. Field definition:

    some_bool = zope.schema.Bool(
        title="some title",
        required=False,
        default=False,
    )

And this was the manually set HTML code for the checkbox:

    <input name="some_bool" type="checkbox" />

What I expect to happen:

Saving the form with a checked checkbox should have resulted in a set boolean for the object.

What actually happened:

The boolean was not set because:

    <input name="some_bool" type="checkbox" value="selected" />

I'd have expected that a <input name="some_bool" type="checkbox"/> as a prototypical representation of booleans in html forms to just work out of the box.

I suggest to also add the term on to

vocabulary.SimpleTerm('selected', 'selected',

Not sure, but I guess that would solve the issue...

What version of Python and Zope/Addons I am using:

  • Ubuntu 20.04.1
  • Python 3.8.5
  • z3c.form-3.7.1-py3.8.egg
  • Zope-4.5.5-py3.8.egg
  • Products.CMFPlone-5.2.4-py3.8.egg

field type: floating-point number should accept computerees for large and small numbers...

Python and most calculators accept numbers in the format X.XXXeYY for representing scientific notation in a compact manner. I believe the input checking on floating-point numbers should accept that format as well.

The problem appears to be with the javascript checking of the input field. Try entering something like "1.1e10" into any dexterity float field in the edit view. You will get the red box around it with this error: "The entered value is not a valid decimal literal."

The validation appears to only accept digits and 1 decimal point. This is Plone 5.04.
No errors are logged as the js checking does not allow submission. I do not think that standard X.XeYY notation will cause a problem if submitted. Display of computed fields that yield large numbers do default to scientific notation.

setup.py: NameError: global name 'bytes' is not defined

Getting distribution for 'z3c.form==3.0.3'.
Traceback (most recent call last):
File "", line 1, in
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 1712, in main
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 1700, in with_ei_usage
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 1716, in
File "/usr/lib/python2.5/distutils/core.py", line 151, in setup
dist.run_commands()
File "/usr/lib/python2.5/distutils/dist.py", line 974, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.5/distutils/dist.py", line 994, in run_command
cmd_obj.run()
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 211, in run
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 427, in easy_install
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 476, in install_item
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 655, in install_eggs
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 930, in build_and_install
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/command/easy_install.py", line 919, in run_setup
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/sandbox.py", line 62, in run_setup
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/sandbox.py", line 105, in run
File "/var/lib/plone/buildout-cache/eggs/setuptools-0.6c11-py2.5.egg/setuptools/sandbox.py", line 64, in
File "setup.py", line 58, in
File "setup.py", line 22, in read
NameError: global name 'bytes' is not defined

tests are broken

I do not use this package - I just ran tox on all Zope projects:
https://jugmac00.github.io/blog/testing-the-tox-4-pre-release-at-scale/

โฏ tox -e py36 -rvv
using tox.ini: /home/jugmac00/All/output_zope/zopefoundation/z3c.form/tox.ini (pid 9156)
using tox-3.23.0 from /home/jugmac00/opt/tox/lib/python3.8/site-packages/tox/__init__.py (pid 9156)
GLOB start: packaging 
GLOB sdist-make: /home/jugmac00/All/output_zope/zopefoundation/z3c.form/setup.py
[9165] /home/jugmac00/All/output_zope/zopefoundation/z3c.form$ /home/jugmac00/opt/tox/bin/python setup.py sdist --formats=zip --dist-dir /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/dist >.tox/log/GLOB-0.log
running sdist
running egg_info
writing src/z3c.form.egg-info/PKG-INFO
writing dependency_links to src/z3c.form.egg-info/dependency_links.txt
writing namespace_packages to src/z3c.form.egg-info/namespace_packages.txt
writing requirements to src/z3c.form.egg-info/requires.txt
writing top-level names to src/z3c.form.egg-info/top_level.txt
reading manifest file 'src/z3c.form.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.mo' anywhere in distribution
writing manifest file 'src/z3c.form.egg-info/SOURCES.txt'
running check
creating z3c.form-4.2.dev0
creating z3c.form-4.2.dev0/benchmark
creating z3c.form-4.2.dev0/benchmark/benchmark
creating z3c.form-4.2.dev0/docs
creating z3c.form-4.2.dev0/docs/advanced
creating z3c.form-4.2.dev0/docs/informative
creating z3c.form-4.2.dev0/docs/mustread
creating z3c.form-4.2.dev0/docs/widgets
creating z3c.form-4.2.dev0/src
creating z3c.form-4.2.dev0/src/z3c
creating z3c.form-4.2.dev0/src/z3c.form.egg-info
creating z3c.form-4.2.dev0/src/z3c/form
creating z3c.form-4.2.dev0/src/z3c/form/browser
creating z3c.form-4.2.dev0/src/z3c/form/locales
creating z3c.form-4.2.dev0/src/z3c/form/locales/cs
creating z3c.form-4.2.dev0/src/z3c/form/locales/cs/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/da
creating z3c.form-4.2.dev0/src/z3c/form/locales/da/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/de
creating z3c.form-4.2.dev0/src/z3c/form/locales/de/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/en
creating z3c.form-4.2.dev0/src/z3c/form/locales/en/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/es
creating z3c.form-4.2.dev0/src/z3c/form/locales/es/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/fi
creating z3c.form-4.2.dev0/src/z3c/form/locales/fi/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/fr
creating z3c.form-4.2.dev0/src/z3c/form/locales/fr/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/hu
creating z3c.form-4.2.dev0/src/z3c/form/locales/hu/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/it
creating z3c.form-4.2.dev0/src/z3c/form/locales/it/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/ja
creating z3c.form-4.2.dev0/src/z3c/form/locales/ja/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/nl
creating z3c.form-4.2.dev0/src/z3c/form/locales/nl/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/no
creating z3c.form-4.2.dev0/src/z3c/form/locales/no/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR
creating z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/ru
creating z3c.form-4.2.dev0/src/z3c/form/locales/ru/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN
creating z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW
creating z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW/LC_MESSAGES
creating z3c.form-4.2.dev0/src/z3c/form/tests
copying files to z3c.form-4.2.dev0...
copying .coveragerc -> z3c.form-4.2.dev0
copying .travis.yml -> z3c.form-4.2.dev0
copying AUTHOR.rst -> z3c.form-4.2.dev0
copying CHANGES.rst -> z3c.form-4.2.dev0
copying COPYRIGHT.txt -> z3c.form-4.2.dev0
copying LICENSE.txt -> z3c.form-4.2.dev0
copying MANIFEST.in -> z3c.form-4.2.dev0
copying README.rst -> z3c.form-4.2.dev0
copying TODOS.rst -> z3c.form-4.2.dev0
copying buildout.cfg -> z3c.form-4.2.dev0
copying dev.cfg -> z3c.form-4.2.dev0
copying doc-requirements.txt -> z3c.form-4.2.dev0
copying setup.cfg -> z3c.form-4.2.dev0
copying setup.py -> z3c.form-4.2.dev0
copying tox.ini -> z3c.form-4.2.dev0
copying benchmark/setup.py -> z3c.form-4.2.dev0/benchmark
copying benchmark/benchmark/__init__.py -> z3c.form-4.2.dev0/benchmark/benchmark
copying benchmark/benchmark/tests.py -> z3c.form-4.2.dev0/benchmark/benchmark
copying docs/authors.rst -> z3c.form-4.2.dev0/docs
copying docs/changelog.rst -> z3c.form-4.2.dev0/docs
copying docs/conf.py -> z3c.form-4.2.dev0/docs
copying docs/index.rst -> z3c.form-4.2.dev0/docs
copying docs/interfaces.rst -> z3c.form-4.2.dev0/docs
copying docs/todos.rst -> z3c.form-4.2.dev0/docs
copying docs/advanced/action.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/advanced/browser-readme.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/advanced/contentprovider.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/advanced/index.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/advanced/validator.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/advanced/widget.rst -> z3c.form-4.2.dev0/docs/advanced
copying docs/informative/adding.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/converter.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/datamanager.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/index.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/object-caveat.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/term.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/testing.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/util.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/informative/value.rst -> z3c.form-4.2.dev0/docs/informative
copying docs/mustread/button.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/field.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/form.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/group.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/index.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/subform.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/mustread/zcml.rst -> z3c.form-4.2.dev0/docs/mustread
copying docs/widgets/button.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/checkbox.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/file-testing.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/file.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/image.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/index.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/multi-index.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/multi.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/multi_dict_integration.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/multi_list_integration.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/object-index.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/object.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/object_multi_dict_integration.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/object_multi_list_integration.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/object_single_integration.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/objectmulti.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/orderedselect.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/password.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/radio.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/select-index.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/select-missing-terms.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/select-source.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/select.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/submit.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/text.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/textarea.rst -> z3c.form-4.2.dev0/docs/widgets
copying docs/widgets/textlines.rst -> z3c.form-4.2.dev0/docs/widgets
copying src/z3c/__init__.py -> z3c.form-4.2.dev0/src/z3c
copying src/z3c.form.egg-info/PKG-INFO -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/SOURCES.txt -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/dependency_links.txt -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/namespace_packages.txt -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/not-zip-safe -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/requires.txt -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c.form.egg-info/top_level.txt -> z3c.form-4.2.dev0/src/z3c.form.egg-info
copying src/z3c/form/README.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/__init__.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/action.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/action.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/adding.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/adding.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/apidoc.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/button.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/button.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/button.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/configure.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/contentprovider.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/contentprovider.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/converter.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/converter.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/converter.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/datamanager.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/datamanager.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/datamanager.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/error.pt -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/error.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/error.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/error.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/events.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/field.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/field.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/file.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/file_testing.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form-chameleon-issue-repeat-addons.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form-graph.dot -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form-graph.png -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form-graph.ps -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/form.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/group.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/group.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/hint.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/hint.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/i18n.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/index.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/interfaces.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/meta.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/object-caveat.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/object.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/object.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/outputchecker.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/subform.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/subform.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/term.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/term.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/term.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/testing.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/testing.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/translation.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/util.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/util.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/validator.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/validator.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/validator.zcml -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/value.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/value.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/widget-graph.dot -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/widget-graph.png -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/widget-graph.ps -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/widget.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/widget.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/zcml.py -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/zcml.rst -> z3c.form-4.2.dev0/src/z3c/form
copying src/z3c/form/browser/README.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/__init__.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/button.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/button.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/button.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/button_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/button_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/checkbox_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/configure.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file-testing.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file_testing.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/file_testing_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/image.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/image.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/image.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/image_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/image_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/index.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/interfaces.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi_dict_integration.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/multi_list_integration.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_multi_dict_integration.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_multi_list_integration.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/object_single_integration.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/objectmulti.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect_input.js -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/orderedselect_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/password.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/password.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/password.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/password_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/password_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_display_single.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_hidden_single.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/radio_input_single.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select-missing-terms.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select-source.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/select_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/submit.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/submit.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/submit.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/submit_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/submit_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/tests.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/text_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textarea_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines.rst -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines_display.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/textlines_input.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/widget.py -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/widget.zcml -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/widget_layout.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/browser/widget_layout_hidden.pt -> z3c.form-4.2.dev0/src/z3c/form/browser
copying src/z3c/form/locales/z3c.form.pot -> z3c.form-4.2.dev0/src/z3c/form/locales
copying src/z3c/form/locales/cs/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/cs/LC_MESSAGES
copying src/z3c/form/locales/da/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/da/LC_MESSAGES
copying src/z3c/form/locales/de/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/de/LC_MESSAGES
copying src/z3c/form/locales/en/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/en/LC_MESSAGES
copying src/z3c/form/locales/es/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/es/LC_MESSAGES
copying src/z3c/form/locales/fi/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/fi/LC_MESSAGES
copying src/z3c/form/locales/fr/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/fr/LC_MESSAGES
copying src/z3c/form/locales/hu/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/hu/LC_MESSAGES
copying src/z3c/form/locales/it/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/it/LC_MESSAGES
copying src/z3c/form/locales/ja/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/ja/LC_MESSAGES
copying src/z3c/form/locales/nl/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/nl/LC_MESSAGES
copying src/z3c/form/locales/no/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/no/LC_MESSAGES
copying src/z3c/form/locales/pt_BR/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR/LC_MESSAGES
copying src/z3c/form/locales/ru/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/ru/LC_MESSAGES
copying src/z3c/form/locales/zh_CN/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN/LC_MESSAGES
copying src/z3c/form/locales/zh_TW/LC_MESSAGES/z3c.form.po -> z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW/LC_MESSAGES
copying src/z3c/form/tests/__init__.py -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/custom_error.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/integration.css -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/integration_edit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_caredit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_display.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_edit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_edit_with_providers.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_groupedit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_nested_groupedit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_owneredit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/simple_subedit.pt -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/test_bugfix.py -> z3c.form-4.2.dev0/src/z3c/form/tests
copying src/z3c/form/tests/test_doc.py -> z3c.form-4.2.dev0/src/z3c/form/tests
Writing z3c.form-4.2.dev0/setup.cfg
creating /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/dist
creating '/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/dist/z3c.form-4.2.dev0.zip' and adding 'z3c.form-4.2.dev0' to it
adding 'z3c.form-4.2.dev0'
adding 'z3c.form-4.2.dev0/src'
adding 'z3c.form-4.2.dev0/docs'
adding 'z3c.form-4.2.dev0/benchmark'
adding 'z3c.form-4.2.dev0/CHANGES.rst'
adding 'z3c.form-4.2.dev0/COPYRIGHT.txt'
adding 'z3c.form-4.2.dev0/PKG-INFO'
adding 'z3c.form-4.2.dev0/dev.cfg'
adding 'z3c.form-4.2.dev0/.coveragerc'
adding 'z3c.form-4.2.dev0/tox.ini'
adding 'z3c.form-4.2.dev0/.travis.yml'
adding 'z3c.form-4.2.dev0/AUTHOR.rst'
adding 'z3c.form-4.2.dev0/TODOS.rst'
adding 'z3c.form-4.2.dev0/doc-requirements.txt'
adding 'z3c.form-4.2.dev0/LICENSE.txt'
adding 'z3c.form-4.2.dev0/MANIFEST.in'
adding 'z3c.form-4.2.dev0/setup.py'
adding 'z3c.form-4.2.dev0/setup.cfg'
adding 'z3c.form-4.2.dev0/README.rst'
adding 'z3c.form-4.2.dev0/buildout.cfg'
adding 'z3c.form-4.2.dev0/src/z3c'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info'
adding 'z3c.form-4.2.dev0/src/z3c/form'
adding 'z3c.form-4.2.dev0/src/z3c/__init__.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales'
adding 'z3c.form-4.2.dev0/src/z3c/form/validator.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/contentprovider.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/testing.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/widget-graph.dot'
adding 'z3c.form-4.2.dev0/src/z3c/form/validator.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/group.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/converter.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/form.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/converter.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/testing.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/datamanager.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/widget-graph.ps'
adding 'z3c.form-4.2.dev0/src/z3c/form/meta.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/converter.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/zcml.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/button.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/term.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/field.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/field.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/error.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/hint.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/button.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/form-graph.png'
adding 'z3c.form-4.2.dev0/src/z3c/form/translation.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/term.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/hint.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/util.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/interfaces.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/object-caveat.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/form-graph.ps'
adding 'z3c.form-4.2.dev0/src/z3c/form/i18n.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/error.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/object.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/adding.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/action.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/configure.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/value.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/contentprovider.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/util.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/file.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/apidoc.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/adding.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/form-graph.dot'
adding 'z3c.form-4.2.dev0/src/z3c/form/term.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/widget.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/datamanager.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/validator.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/form.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/error.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/subform.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/subform.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/__init__.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/object.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/outputchecker.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/datamanager.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/group.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/action.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/widget.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/file_testing.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/button.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/zcml.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/widget-graph.png'
adding 'z3c.form-4.2.dev0/src/z3c/form/events.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/error.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/README.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/index.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/form-chameleon-issue-repeat-addons.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/value.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/tests.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/button_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/objectmulti.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file-testing.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi_list_integration.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/widget.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/image_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/submit.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/password.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_hidden_single.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select-missing-terms.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/password_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/button.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/submit_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_display_single.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/button.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_multi_list_integration.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/widget_layout_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/widget_layout.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/interfaces.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/submit.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_multi_dict_integration.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/configure.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/image.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/image_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/password_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_single_integration.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_input_single.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textarea.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/submit_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/image.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect_input.js'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file_testing_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select-source.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/__init__.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/object.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/radio_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/checkbox_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/text_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/submit.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/widget.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/file_testing.zcml'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/image.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/button.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select_hidden.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/password.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/orderedselect.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/README.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/select_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/index.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/button_input.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/password.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/textlines.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/browser/multi_dict_integration.rst'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/test_bugfix.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_edit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/integration_edit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_subedit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_groupedit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_nested_groupedit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_display.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/test_doc.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_edit_with_providers.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_caredit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/__init__.py'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/integration.css'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/custom_error.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/tests/simple_owneredit.pt'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/hu'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fr'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/de'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/es'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ja'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ru'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/no'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/nl'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fi'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/en'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/cs'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/da'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/it'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/z3c.form.pot'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/hu/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/hu/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fr/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fr/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/de/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/de/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/es/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/es/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ja/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ja/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/pt_BR/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ru/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/ru/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_CN/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/no/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/no/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/nl/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/nl/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/zh_TW/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fi/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/fi/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/en/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/en/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/cs/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/cs/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/da/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/da/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/it/LC_MESSAGES'
adding 'z3c.form-4.2.dev0/src/z3c/form/locales/it/LC_MESSAGES/z3c.form.po'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/namespace_packages.txt'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/SOURCES.txt'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/PKG-INFO'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/dependency_links.txt'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/requires.txt'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/not-zip-safe'
adding 'z3c.form-4.2.dev0/src/z3c.form.egg-info/top_level.txt'
adding 'z3c.form-4.2.dev0/docs/advanced'
adding 'z3c.form-4.2.dev0/docs/informative'
adding 'z3c.form-4.2.dev0/docs/mustread'
adding 'z3c.form-4.2.dev0/docs/widgets'
adding 'z3c.form-4.2.dev0/docs/changelog.rst'
adding 'z3c.form-4.2.dev0/docs/authors.rst'
adding 'z3c.form-4.2.dev0/docs/interfaces.rst'
adding 'z3c.form-4.2.dev0/docs/todos.rst'
adding 'z3c.form-4.2.dev0/docs/conf.py'
adding 'z3c.form-4.2.dev0/docs/index.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/contentprovider.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/validator.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/browser-readme.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/action.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/widget.rst'
adding 'z3c.form-4.2.dev0/docs/advanced/index.rst'
adding 'z3c.form-4.2.dev0/docs/informative/testing.rst'
adding 'z3c.form-4.2.dev0/docs/informative/converter.rst'
adding 'z3c.form-4.2.dev0/docs/informative/object-caveat.rst'
adding 'z3c.form-4.2.dev0/docs/informative/util.rst'
adding 'z3c.form-4.2.dev0/docs/informative/adding.rst'
adding 'z3c.form-4.2.dev0/docs/informative/term.rst'
adding 'z3c.form-4.2.dev0/docs/informative/datamanager.rst'
adding 'z3c.form-4.2.dev0/docs/informative/index.rst'
adding 'z3c.form-4.2.dev0/docs/informative/value.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/field.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/button.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/form.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/subform.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/group.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/zcml.rst'
adding 'z3c.form-4.2.dev0/docs/mustread/index.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/objectmulti.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/file-testing.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/select-index.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/multi_list_integration.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/object.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/select-missing-terms.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/object-index.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/text.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/radio.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/textlines.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/multi-index.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/button.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/object_multi_list_integration.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/checkbox.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/multi.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/object_multi_dict_integration.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/object_single_integration.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/textarea.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/select-source.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/select.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/file.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/submit.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/image.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/orderedselect.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/index.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/password.rst'
adding 'z3c.form-4.2.dev0/docs/widgets/multi_dict_integration.rst'
adding 'z3c.form-4.2.dev0/benchmark/benchmark'
adding 'z3c.form-4.2.dev0/benchmark/setup.py'
adding 'z3c.form-4.2.dev0/benchmark/benchmark/tests.py'
adding 'z3c.form-4.2.dev0/benchmark/benchmark/__init__.py'
removing 'z3c.form-4.2.dev0' (and everything under it)

GLOB finish: packaging  after 0.41 seconds
copying new sdistfile to '/home/jugmac00/.tox/distshare/z3c.form-4.2.dev0.zip'
package .tmp/package/1/z3c.form-4.2.dev0.zip links to dist/z3c.form-4.2.dev0.zip (/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox)
python3.6 (/usr/bin/python3.6) is {'executable': '/usr/bin/python3.6', 'implementation': 'CPython', 'version_info': [3, 6, 9, 'final', 0], 'version': '3.6.9 (default, Jan 26 2021, 15:33:00) \n[GCC 8.4.0]', 'is_64': True, 'sysplatform': 'linux', 'extra_version_info': None}
py36 uses /usr/bin/python3.6
py36 start: getenv /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36
py36 cannot reuse: -r flag
py36 create: /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36
setting PATH=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin:/home/jugmac00/.cargo/bin:/home/jugmac00/.local/bin:/home/jugmac00/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[9168] /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox$ /home/jugmac00/opt/tox/bin/python -m virtualenv --no-download --python /usr/bin/python3.6 py36
created virtual environment CPython3.6.9.final.0-64 in 103ms
  creator CPython3Posix(dest=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/jugmac00/.local/share/virtualenv)
    added seed packages: pip==21.0.1, setuptools==54.2.0, wheel==0.36.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
py36 installdeps: .[test], zope.testrunner
setting PATH=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin:/home/jugmac00/.cargo/bin:/home/jugmac00/.local/bin:/home/jugmac00/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[9175] /home/jugmac00/All/output_zope/zopefoundation/z3c.form$ /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin/python -m pip install '.[test]' zope.testrunner
Processing /home/jugmac00/All/output_zope/zopefoundation/z3c.form
Collecting zope.testrunner
  Using cached zope.testrunner-5.3.0-py2.py3-none-any.whl (215 kB)
Requirement already satisfied: setuptools in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (54.2.0)
Collecting six
  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting zope.browser
  Using cached zope.browser-2.3-py2.py3-none-any.whl (8.3 kB)
Collecting zope.browserpage
  Using cached zope.browserpage-4.4.0-py2.py3-none-any.whl (33 kB)
Collecting zope.browserresource
  Using cached zope.browserresource-4.4-py2.py3-none-any.whl (40 kB)
Collecting zope.component
  Using cached zope.component-5.0.0-py2.py3-none-any.whl (68 kB)
Collecting zope.configuration>=4.3
  Using cached zope.configuration-4.4.0-py2.py3-none-any.whl (79 kB)
Collecting zope.contentprovider
  Using cached zope.contentprovider-4.2.1-py2.py3-none-any.whl (12 kB)
Collecting zope.event
  Using cached zope.event-4.5.0-py2.py3-none-any.whl (6.8 kB)
Collecting zope.i18n
  Using cached zope.i18n-4.7.0-py2.py3-none-any.whl
Collecting zope.i18nmessageid
  Using cached zope.i18nmessageid-5.0.1-cp36-cp36m-manylinux2010_x86_64.whl (29 kB)
Collecting zope.interface
  Using cached zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl (251 kB)
Collecting zope.lifecycleevent
  Using cached zope.lifecycleevent-4.3-py2.py3-none-any.whl (19 kB)
Collecting zope.location
  Using cached zope.location-4.2-py2.py3-none-any.whl (21 kB)
Collecting zope.pagetemplate
  Using cached zope.pagetemplate-4.5.0-py2.py3-none-any.whl (44 kB)
Collecting zope.publisher
  Using cached zope.publisher-6.0.1-py2.py3-none-any.whl (121 kB)
Collecting zope.schema>=4.7
  Using cached zope.schema-6.1.0-py2.py3-none-any.whl (85 kB)
Collecting zope.security
  Using cached zope.security-5.1.1-cp36-cp36m-manylinux2010_x86_64.whl (181 kB)
Collecting zope.site
  Using cached zope.site-4.5.0-py2.py3-none-any.whl (30 kB)
Collecting zope.traversing
  Using cached zope.traversing-4.4.1-py2.py3-none-any.whl (48 kB)
Collecting lxml>=4.2
  Using cached lxml-4.6.3-cp36-cp36m-manylinux1_x86_64.whl (5.5 MB)
Collecting persistent
  Using cached persistent-4.7.0-cp36-cp36m-manylinux2010_x86_64.whl (249 kB)
Collecting z3c.template>=1.3
  Using cached z3c.template-3.1.0-py2.py3-none-any.whl (29 kB)
Collecting zc.sourcefactory
  Using cached zc.sourcefactory-1.1-py3-none-any.whl
Collecting zope.container
  Using cached zope.container-4.4.0-cp36-cp36m-manylinux2010_x86_64.whl (110 kB)
Collecting zope.password
  Using cached zope.password-4.3.1-py2.py3-none-any.whl (28 kB)
Collecting zope.testing
  Using cached zope.testing-4.9-py2.py3-none-any.whl (50 kB)
Collecting zope.exceptions
  Using cached zope.exceptions-4.4-py2.py3-none-any.whl (18 kB)
Collecting cffi
  Using cached cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl (401 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Collecting ZODB
  Using cached ZODB-5.6.0-py2.py3-none-any.whl (413 kB)
Collecting zope.dublincore
  Using cached zope.dublincore-4.3.0-py2.py3-none-any.whl (40 kB)
Collecting zope.proxy
  Using cached zope.proxy-4.3.5-cp36-cp36m-manylinux2010_x86_64.whl (69 kB)
Collecting zope.intid
  Using cached zope.intid-4.4.0-py2.py3-none-any.whl (12 kB)
Collecting ZConfig
  Using cached ZConfig-3.5.0-py2.py3-none-any.whl (134 kB)
Collecting zc.lockfile
  Using cached zc.lockfile-2.0-py2.py3-none-any.whl (9.7 kB)
Collecting BTrees>=4.2.0
  Using cached BTrees-4.8.0-cp36-cp36m-manylinux2010_x86_64.whl (3.5 MB)
Collecting zodbpickle>=1.0.1
  Using cached zodbpickle-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl (331 kB)
Collecting transaction>=2.4
  Using cached transaction-3.0.1-py2.py3-none-any.whl (47 kB)
Collecting zope.tal>=4.2.0
  Using cached zope.tal-4.4-py2.py3-none-any.whl (139 kB)
Collecting zope.hookable>=4.2.0
  Using cached zope.hookable-5.0.1-cp36-cp36m-manylinux2010_x86_64.whl (26 kB)
Collecting zope.contenttype>=4.0.0
  Using cached zope.contenttype-4.5.0-py2.py3-none-any.whl (14 kB)
Collecting multipart
  Using cached multipart-0.2.4-py3-none-any.whl (7.4 kB)
Collecting pytz
  Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB)
Collecting python-gettext
  Using cached python_gettext-4.0-py3-none-any.whl
Collecting zope.deprecation
  Using cached zope.deprecation-4.4.0-py2.py3-none-any.whl (10 kB)
Collecting zope.dottedname
  Using cached zope.dottedname-4.3-py2.py3-none-any.whl (6.8 kB)
Collecting zope.cachedescriptors
  Using cached zope.cachedescriptors-4.3.1-py2.py3-none-any.whl (16 kB)
Collecting zope.size
  Using cached zope.size-4.3-py2.py3-none-any.whl (8.7 kB)
Collecting zope.filerepresentation
  Using cached zope.filerepresentation-5.0.0-py2.py3-none-any.whl (8.3 kB)
Collecting zope.tales
  Using cached zope.tales-5.1-py2.py3-none-any.whl (32 kB)
Collecting zope.datetime
  Using cached zope.datetime-4.3.0-py2.py3-none-any.whl (43 kB)
Collecting zope.annotation
  Using cached zope.annotation-4.7.0-py2.py3-none-any.whl (13 kB)
Collecting zope.keyreference
  Using cached zope.keyreference-4.2.0-py3-none-any.whl (13 kB)
Building wheels for collected packages: z3c.form
  Building wheel for z3c.form (setup.py) ... done
  Created wheel for z3c.form: filename=z3c.form-4.2.dev0-py2.py3-none-any.whl size=440508 sha256=504770753ddedf35879acd7977b159ca0ba0fb86b1a6144bee0276077703845d
  Stored in directory: /tmp/pip-ephem-wheel-cache-6vgbl58x/wheels/b7/35/94/f59599fc9204db7f5e70d2b28dadcb9f9562bea411c2194d5d
Successfully built z3c.form
Installing collected packages: zope.interface, zope.event, zope.schema, zope.proxy, zope.hookable, six, pycparser, zope.location, zope.i18nmessageid, zope.deprecation, zope.component, pytz, python-gettext, cffi, zope.security, zope.i18n, zope.exceptions, zope.contenttype, zope.configuration, zope.browser, persistent, multipart, zope.publisher, zodbpickle, ZConfig, zc.lockfile, transaction, BTrees, zope.traversing, zope.tales, zope.tal, zope.size, zope.lifecycleevent, zope.filerepresentation, zope.dottedname, zope.cachedescriptors, ZODB, zope.pagetemplate, zope.keyreference, zope.datetime, zope.container, zope.annotation, zope.site, zope.intid, zope.dublincore, zope.contentprovider, zope.browserresource, zope.browserpage, zope.testing, zope.password, zc.sourcefactory, z3c.template, z3c.form, lxml, zope.testrunner
Successfully installed BTrees-4.8.0 ZConfig-3.5.0 ZODB-5.6.0 cffi-1.14.5 lxml-4.6.3 multipart-0.2.4 persistent-4.7.0 pycparser-2.20 python-gettext-4.0 pytz-2021.1 six-1.15.0 transaction-3.0.1 z3c.form-4.2.dev0 z3c.template-3.1.0 zc.lockfile-2.0 zc.sourcefactory-1.1 zodbpickle-2.0.0 zope.annotation-4.7.0 zope.browser-2.3 zope.browserpage-4.4.0 zope.browserresource-4.4 zope.cachedescriptors-4.3.1 zope.component-5.0.0 zope.configuration-4.4.0 zope.container-4.4.0 zope.contentprovider-4.2.1 zope.contenttype-4.5.0 zope.datetime-4.3.0 zope.deprecation-4.4.0 zope.dottedname-4.3 zope.dublincore-4.3.0 zope.event-4.5.0 zope.exceptions-4.4 zope.filerepresentation-5.0.0 zope.hookable-5.0.1 zope.i18n-4.7.0 zope.i18nmessageid-5.0.1 zope.interface-5.4.0 zope.intid-4.4.0 zope.keyreference-4.2.0 zope.lifecycleevent-4.3 zope.location-4.2 zope.pagetemplate-4.5.0 zope.password-4.3.1 zope.proxy-4.3.5 zope.publisher-6.0.1 zope.schema-6.1.0 zope.security-5.1.1 zope.site-4.5.0 zope.size-4.3 zope.tal-4.4 zope.tales-5.1 zope.testing-4.9 zope.testrunner-5.3.0 zope.traversing-4.4.1
py36 finish: getenv /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36 after 9.87 seconds
py36 start: installpkg /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/.tmp/package/1/z3c.form-4.2.dev0.zip
py36 inst: /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/.tmp/package/1/z3c.form-4.2.dev0.zip
write config to /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/.tox-config1 as '9b56b084b98cbe6dc10d740ad48815b9146a252cbfc3d78e9ffd42a36d965d1f /usr/bin/python3.6\n3.23.0 0 0 0\n00000000000000000000000000000000 .[test]\n00000000000000000000000000000000 zope.testrunner'
setting PATH=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin:/home/jugmac00/.cargo/bin:/home/jugmac00/.local/bin:/home/jugmac00/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[9190] /home/jugmac00/All/output_zope/zopefoundation/z3c.form$ /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin/python -m pip install --exists-action w .tox/.tmp/package/1/z3c.form-4.2.dev0.zip
Processing ./.tox/.tmp/package/1/z3c.form-4.2.dev0.zip
Requirement already satisfied: setuptools in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (54.2.0)
Requirement already satisfied: six in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (1.15.0)
Requirement already satisfied: zope.browser in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (2.3)
Requirement already satisfied: zope.browserpage in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.4.0)
Requirement already satisfied: zope.browserresource in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.4)
Requirement already satisfied: zope.component in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (5.0.0)
Requirement already satisfied: zope.configuration>=4.3 in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.4.0)
Requirement already satisfied: zope.contentprovider in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.2.1)
Requirement already satisfied: zope.event in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.5.0)
Requirement already satisfied: zope.i18n in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.7.0)
Requirement already satisfied: zope.i18nmessageid in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (5.0.1)
Requirement already satisfied: zope.interface in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (5.4.0)
Requirement already satisfied: zope.lifecycleevent in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.3)
Requirement already satisfied: zope.location in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.2)
Requirement already satisfied: zope.pagetemplate in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.5.0)
Requirement already satisfied: zope.publisher in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (6.0.1)
Requirement already satisfied: zope.schema>=4.7 in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (6.1.0)
Requirement already satisfied: zope.security in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (5.1.1)
Requirement already satisfied: zope.site in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.5.0)
Requirement already satisfied: zope.traversing in ./.tox/py36/lib/python3.6/site-packages (from z3c.form==4.2.dev0) (4.4.1)
Requirement already satisfied: zope.tal>=4.2.0 in ./.tox/py36/lib/python3.6/site-packages (from zope.browserpage->z3c.form==4.2.dev0) (4.4)
Requirement already satisfied: zope.hookable>=4.2.0 in ./.tox/py36/lib/python3.6/site-packages (from zope.component->z3c.form==4.2.dev0) (5.0.1)
Requirement already satisfied: zope.contenttype>=4.0.0 in ./.tox/py36/lib/python3.6/site-packages (from zope.publisher->z3c.form==4.2.dev0) (4.5.0)
Requirement already satisfied: zope.exceptions in ./.tox/py36/lib/python3.6/site-packages (from zope.publisher->z3c.form==4.2.dev0) (4.4)
Requirement already satisfied: multipart in ./.tox/py36/lib/python3.6/site-packages (from zope.publisher->z3c.form==4.2.dev0) (0.2.4)
Requirement already satisfied: zope.proxy in ./.tox/py36/lib/python3.6/site-packages (from zope.publisher->z3c.form==4.2.dev0) (4.3.5)
Requirement already satisfied: pytz in ./.tox/py36/lib/python3.6/site-packages (from zope.i18n->z3c.form==4.2.dev0) (2021.1)
Requirement already satisfied: python-gettext in ./.tox/py36/lib/python3.6/site-packages (from zope.i18n->z3c.form==4.2.dev0) (4.0)
Requirement already satisfied: zope.deprecation in ./.tox/py36/lib/python3.6/site-packages (from zope.i18n->z3c.form==4.2.dev0) (4.4.0)
Requirement already satisfied: transaction in ./.tox/py36/lib/python3.6/site-packages (from zope.traversing->z3c.form==4.2.dev0) (3.0.1)
Requirement already satisfied: zope.tales in ./.tox/py36/lib/python3.6/site-packages (from zope.contentprovider->z3c.form==4.2.dev0) (5.1)
Requirement already satisfied: zope.annotation in ./.tox/py36/lib/python3.6/site-packages (from zope.site->z3c.form==4.2.dev0) (4.7.0)
Requirement already satisfied: zope.container in ./.tox/py36/lib/python3.6/site-packages (from zope.site->z3c.form==4.2.dev0) (4.4.0)
Requirement already satisfied: zope.dottedname in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (4.3)
Requirement already satisfied: zope.cachedescriptors in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (4.3.1)
Requirement already satisfied: BTrees in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (4.8.0)
Requirement already satisfied: zope.size in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (4.3)
Requirement already satisfied: persistent>=4.1.0 in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (4.7.0)
Requirement already satisfied: zope.filerepresentation in ./.tox/py36/lib/python3.6/site-packages (from zope.container->zope.site->z3c.form==4.2.dev0) (5.0.0)
Requirement already satisfied: cffi in ./.tox/py36/lib/python3.6/site-packages (from persistent>=4.1.0->zope.container->zope.site->z3c.form==4.2.dev0) (1.14.5)
Requirement already satisfied: pycparser in ./.tox/py36/lib/python3.6/site-packages (from cffi->persistent>=4.1.0->zope.container->zope.site->z3c.form==4.2.dev0) (2.20)
Building wheels for collected packages: z3c.form
  Building wheel for z3c.form (setup.py) ... done
  Created wheel for z3c.form: filename=z3c.form-4.2.dev0-py2.py3-none-any.whl size=440508 sha256=fe05691a2537c1fe0bf8ee44a1a4e34579ac337dca8321d908f711f446ea06b6
  Stored in directory: /home/jugmac00/.cache/pip/wheels/48/b1/73/c5a6cd92a31f68da49b903fdd4a39e4cfb7bf5eb0627bb33d5
Successfully built z3c.form
Installing collected packages: z3c.form
  Attempting uninstall: z3c.form
    Found existing installation: z3c.form 4.2.dev0
    Uninstalling z3c.form-4.2.dev0:
      Successfully uninstalled z3c.form-4.2.dev0
Successfully installed z3c.form-4.2.dev0
py36 finish: installpkg /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/.tmp/package/1/z3c.form-4.2.dev0.zip after 1.95 seconds
py36 start: envreport 
setting PATH=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin:/home/jugmac00/.cargo/bin:/home/jugmac00/.local/bin:/home/jugmac00/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[9205] /home/jugmac00/All/output_zope/zopefoundation/z3c.form$ /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin/python -m pip freeze >.tox/py36/log/py36-0.log
py36 finish: envreport  after 0.30 seconds
py36 installed: BTrees==4.8.0,cffi==1.14.5,lxml==4.6.3,multipart==0.2.4,persistent==4.7.0,pycparser==2.20,python-gettext==4.0,pytz==2021.1,six==1.15.0,transaction==3.0.1,z3c.form @ file:///home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/.tmp/package/1/z3c.form-4.2.dev0.zip,z3c.template==3.1.0,zc.lockfile==2.0,zc.sourcefactory==1.1,ZConfig==3.5.0,ZODB==5.6.0,zodbpickle==2.0.0,zope.annotation==4.7.0,zope.browser==2.3,zope.browserpage==4.4.0,zope.browserresource==4.4,zope.cachedescriptors==4.3.1,zope.component==5.0.0,zope.configuration==4.4.0,zope.container==4.4.0,zope.contentprovider==4.2.1,zope.contenttype==4.5.0,zope.datetime==4.3.0,zope.deprecation==4.4.0,zope.dottedname==4.3,zope.dublincore==4.3.0,zope.event==4.5.0,zope.exceptions==4.4,zope.filerepresentation==5.0.0,zope.hookable==5.0.1,zope.i18n==4.7.0,zope.i18nmessageid==5.0.1,zope.interface==5.4.0,zope.intid==4.4.0,zope.keyreference==4.2.0,zope.lifecycleevent==4.3,zope.location==4.2,zope.pagetemplate==4.5.0,zope.password==4.3.1,zope.proxy==4.3.5,zope.publisher==6.0.1,zope.schema==6.1.0,zope.security==5.1.1,zope.site==4.5.0,zope.size==4.3,zope.tal==4.4,zope.tales==5.1,zope.testing==4.9,zope.testrunner==5.3.0,zope.traversing==4.4.1
py36 start: run-test-pre 
py36 run-test-pre: PYTHONHASHSEED='397757734'
py36 finish: run-test-pre  after 0.00 seconds
py36 start: run-test 
py36 run-test: commands[0] | zope-testrunner --test-path=src -pvc
setting PATH=/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin:/home/jugmac00/.cargo/bin:/home/jugmac00/.local/bin:/home/jugmac00/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[9207] /home/jugmac00/All/output_zope/zopefoundation/z3c.form$ /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin/zope-testrunner --test-path=src -pvc
Running tests at level 1
Running zope.testrunner.layer.UnitTests tests:
  Set up zope.testrunner.layer.UnitTests in 0.000 seconds.
  Running:
    1/44 (2.3%) ... y36/lib/python3.6/site-packages/z3c/form/browser/README.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst
Failed doctest test for README.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 161, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span class="option">
        <label for="foo-0">
          <input checked="checked" class="radio-widget required bool-field" id="foo-0" name="bar" type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="foo-1">
          <input class="radio-widget required bool-field" id="foo-1" name="bar" type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="option">
        <label for="foo-0">
          <input checked="checked" class="radio-widget bool-field" id="foo-0" name="bar" type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="foo-1">
          <input class="radio-widget bool-field" id="foo-1" name="bar" type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="option">
        <label for="foo-0">
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo-0" name="bar" type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="foo-1">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo-1" name="bar" type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Lines with differences:
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo-0" name="bar" type="radio" value="true">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo-1" name="bar" type="radio" value="false">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 179, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span class="radio-widget required bool-field" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="radio-widget bool-field" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Lines with differences:
      <span class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 185, in README.rst
Failed example:
    print(widget())
Expected:
  <html>
    <body>
      <div class="row-required row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
            <span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="radio-widget required bool-field" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Got:
  <html>
    <body>
      <div class="row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
          </label>
        </div>
        <div class="widget">
          <span class="radio-widget bool-field" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Diff:
  <html>
    <body>
      <div class="row-required row (got: row)" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
            -<span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Lines with differences:
      <div class="row-required row (got: row)" id="foo-row">
          <span class="radio-widget required bool-field (got: radio-widget bool-field)" id="foo">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 206, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span id="foo">
        <span class="option">
          <input checked="checked" class="checkbox-widget required bool-field" id="foo-0" name="bar:list" type="checkbox" value="true">
          <label for="foo-0">
            <span class="label">yes</span>
          </label>
        </span>
        <span class="option">
          <input class="checkbox-widget required bool-field" id="foo-1" name="bar:list" type="checkbox" value="false">
          <label for="foo-1">
            <span class="label">no</span>
          </label>
        </span>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Got:
  <html>
    <body>
      <span id="foo">
        <span class="option">
          <input checked="checked" class="checkbox-widget bool-field" id="foo-0" name="bar:list" type="checkbox" value="true">
          <label for="foo-0">
            <span class="label">yes</span>
          </label>
        </span>
        <span class="option">
          <input class="checkbox-widget bool-field" id="foo-1" name="bar:list" type="checkbox" value="false">
          <label for="foo-1">
            <span class="label">no</span>
          </label>
        </span>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Diff:
  <html>
    <body>
      <span id="foo">
        <span class="option">
          <input checked="checked" class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo-0" name="bar:list" type="checkbox" value="true">
          <label for="foo-0">
            <span class="label">yes</span>
          </label>
        </span>
        <span class="option">
          <input class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo-1" name="bar:list" type="checkbox" value="false">
          <label for="foo-1">
            <span class="label">no</span>
          </label>
        </span>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Lines with differences:
          <input checked="checked" class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo-0" name="bar:list" type="checkbox" value="true">
          <input class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo-1" name="bar:list" type="checkbox" value="false">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 226, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span class="checkbox-widget required bool-field" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="checkbox-widget bool-field" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo">
        <span class="selected-option">yes</span>
      </span>
    </body>
  </html>

Lines with differences:
      <span class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 232, in README.rst
Failed example:
    print(widget())
Expected:
  <html>
    <body>
      <div class="row-required row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
            <span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="checkbox-widget required bool-field" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Got:
  <html>
    <body>
      <div class="row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
          </label>
        </div>
        <div class="widget">
          <span class="checkbox-widget bool-field" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Diff:
  <html>
    <body>
      <div class="row-required row (got: row)" id="foo-row">
        <div class="label">
          <label for="foo">
            <span>Check me</span>
            -<span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo">
            <span class="selected-option">yes</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Lines with differences:
      <div class="row-required row (got: row)" id="foo-row">
          <span class="checkbox-widget required bool-field (got: checkbox-widget bool-field)" id="foo">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 252, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span class="option" id="foo">
        <input checked="checked" class="single-checkbox-widget required bool-field" id="foo-0" name="bar:list" type="checkbox" value="selected">
        <label for="foo-0">
          <span class="label">Check me</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="option" id="foo">
        <input checked="checked" class="single-checkbox-widget bool-field" id="foo-0" name="bar:list" type="checkbox" value="selected">
        <label for="foo-0">
          <span class="label">Check me</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="option" id="foo">
        <input checked="checked" class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo-0" name="bar:list" type="checkbox" value="selected">
        <label for="foo-0">
          <span class="label">Check me</span>
        </label>
      </span>
      <input name="bar-empty-marker" type="hidden" value="1">
    </body>
  </html>

Lines with differences:
        <input checked="checked" class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo-0" name="bar:list" type="checkbox" value="selected">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 264, in README.rst
Failed example:
    print(widget.render())
Expected:
  <html>
    <body>
      <span class="single-checkbox-widget required bool-field" id="foo">
        <span class="selected-option">Check me</span>
      </span>
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="single-checkbox-widget bool-field" id="foo">
        <span class="selected-option">Check me</span>
      </span>
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo">
        <span class="selected-option">Check me</span>
      </span>
    </body>
  </html>

Lines with differences:
      <span class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst", line 276, in README.rst
Failed example:
    print(widget())
Expected:
  <html>
    <body>
      <div class="row-required row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span></span>
            <span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="single-checkbox-widget required bool-field" id="foo">
            <span class="selected-option">Check me</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Got:
  <html>
    <body>
      <div class="row" id="foo-row">
        <div class="label">
          <label for="foo">
            <span></span>
          </label>
        </div>
        <div class="widget">
          <span class="single-checkbox-widget bool-field" id="foo">
            <span class="selected-option">Check me</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Diff:
  <html>
    <body>
      <div class="row-required row (got: row)" id="foo-row">
        <div class="label">
          <label for="foo">
            <span></span>
            -<span class="required">*</span>
          </label>
        </div>
        <div class="widget">
          <span class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo">
            <span class="selected-option">Check me</span>
          </span>
        </div>
      </div>
    </body>
  </html>

Lines with differences:
      <div class="row-required row (got: row)" id="foo-row">
          <span class="single-checkbox-widget required bool-field (got: single-checkbox-widget bool-field)" id="foo">

    17/44 (38.6%) ... 6/lib/python3.6/site-packages/z3c/form/browser/object.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst
Failed doctest test for object.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst", line 558, in object.rst
Failed example:
    printEvents()
Expected:
    <zope...ObjectCreatedEvent object at ...>
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObject>
    ['barfield', 'foofield']
    <zope...ObjectCreatedEvent object at ...>
    <zope...contained.ContainerModifiedEvent object at ...>
Got:
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf796c278>
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf796c4e0>
    z3c.form.testing.IMySubObject
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf796c748>
    <zope.container.contained.ContainerModifiedEvent object at 0x7f7cf796c828>
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst", line 658, in object.rst
Failed example:
    printEvents()
Expected:
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObject>
    ['barfield', 'foofield']
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMyObject>
    ['subobject']
Got:
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf786c0f0>
    z3c.form.testing.IMySubObject
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf786c240>
    z3c.form.testing.IMyObject
    ['subobject']
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst", line 1114, in object.rst
Failed example:
    printEvents()
Expected:
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObject>
    ['barfield', 'foofield']
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMyObject>
    ['name', 'subobject']
Got:
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf7a11320>
    z3c.form.testing.IMySubObject
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf7a119b0>
    z3c.form.testing.IMyObject
    ['name', 'subobject']

    18/44 (40.9%) ... /python3.6/site-packages/z3c/form/browser/objectmulti.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/objectmulti.rst
Failed doctest test for objectmulti.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/objectmulti.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/objectmulti.rst", line 1281, in objectmulti.rst
Failed example:
    printEvents()
Expected:
    <zope...ObjectCreatedEvent object at ...>
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObjectMulti>
    ['barfield', 'foofield']
    <zope...ObjectCreatedEvent object at ...>
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObjectMulti>
    ['barfield', 'foofield']
    <zope...ObjectCreatedEvent object at ...>
    <zope...contained.ContainerModifiedEvent object at ...>
Got:
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf7db4ac8>
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf7db4cc0>
    z3c.form.testing.IMySubObjectMulti
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf7db2cf8>
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf7db2f28>
    z3c.form.testing.IMySubObjectMulti
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf7a74470>
    <zope.container.contained.ContainerModifiedEvent object at 0x7f7cf7a744e0>
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/objectmulti.rst", line 1420, in objectmulti.rst
Failed example:
    printEvents()
Expected:
    <zope...ObjectCreatedEvent object at ...>
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObjectMulti>
    ['barfield', 'foofield']
    <zope...ObjectCreatedEvent object at ...>
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMySubObjectMulti>
    ['barfield', 'foofield']
    <zope...ObjectModifiedEvent object at ...>
    <InterfaceClass z3c.form.testing.IMyMultiObject>
    ['listOfObject']
Got:
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf7810438>
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf7810630>
    z3c.form.testing.IMySubObjectMulti
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectCreatedEvent object at 0x7f7cf781e588>
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf781e7b8>
    z3c.form.testing.IMySubObjectMulti
    ['barfield', 'foofield']
    <zope.lifecycleevent.ObjectModifiedEvent object at 0x7f7cf781ec88>
    z3c.form.testing.IMyMultiObject
    ['listOfObject']

    20/44 (45.5%) ... e-packages/z3c/form/browser/object_single_integration.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst
Failed doctest test for object_single_integration.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst", line 49, in object_single_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    Object label
    Int label *
    []
    Bool label *
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    ReadOnly label *
    []
    [Apply]
Got:
    Object label Int label *
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    ReadOnly label *
    []
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst", line 81, in object_single_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    Object label
    Int label *
    [-100]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    ReadOnly label *
    some R/O text
    [Apply]
Got:
    Object label Int label *
    [-100]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    ReadOnly label *
    some R/O text
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst", line 129, in object_single_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="row-form-widgets-subobj"]'))
Expected:
    The entered value is not a valid integer literal.
    Constraint not satisfied
    The datetime string did not match the pattern 'yy/MM/dd'. Object label
    Int label *
    <BLANKLINE>
    The entered value is not a valid integer literal.
    [foobar]
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    ( ) yes (O) no
    <BLANKLINE>
    Choice label *
    <BLANKLINE>
    [two]
    <BLANKLINE>
    ChoiceOpt label
    <BLANKLINE>
    [six]
    <BLANKLINE>
    TextLine label *
    <BLANKLINE>
    Constraint not satisfied
    [foo
    bar]
    <BLANKLINE>
    Date label *
    <BLANKLINE>
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    <BLANKLINE>
    ReadOnly label *
    <BLANKLINE>
    some R/O text
Got:
    The entered value is not a valid integer literal.
    Constraint not satisfied
    The datetime string did not match the pattern 'yy/MM/dd'. Object label Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    ReadOnly label *
    some R/O text
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst", line 182, in object_single_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    Data successfully updated.
    <BLANKLINE>
    Object label
    Int label *
    [1,042]
    Bool label *
    (O) yes ( ) no
    Choice label *
    [three]
    ChoiceOpt label
    [four]
    TextLine label *
    [foobar]
    Date label *
    [14/06/21]
    ReadOnly label *
    some R/O text
    [Apply]
Got:
    Data successfully updated. Object label Int label *
    [1,042]
    Bool label
    (O) yes ( ) no
    Choice label *
    [three]
    ChoiceOpt label
    [four]
    TextLine label *
    [foobar]
    Date label *
    [14/06/21]
    ReadOnly label *
    some R/O text
    [Apply]

    21/44 (47.7%) ... ckages/z3c/form/browser/object_multi_dict_integration.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst
Failed doctest test for object_multi_dict_integration.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 89, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [-100]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    Object key *
    [subob2]
    Object label *
    [ ]
    Int label *
    [42]
    Bool label *
    (O) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [four]
    TextLine label *
    [second txt]
    Date label *
    [11/03/15]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [-100]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    Object key *
    [subob2]
    Object label *
    [ ]
    Int label *
    [42]
    Bool label
    (O) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [four]
    TextLine label *
    [second txt]
    Date label *
    [11/03/15]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 144, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-dictOfObject-0-row"]'))
Expected:
    Object key *
    <BLANKLINE>
    [subob1]
    <BLANKLINE>
    Object label *
    <BLANKLINE>
    The entered value is not a valid integer literal.
    <BLANKLINE>
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
Got:
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 174, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-dictOfObject-0-row"]//div[@class="error"]'))
Expected:
    Required input is missing.
    An object failed schema or invariant validation.
    Required input is missing.
    Required input is missing.
    Required input is missing.
    Required input is missing.
Got:
    Required input is missing.
    <BLANKLINE>
    An object failed schema or invariant validation.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 188, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-dictOfObject-0-row"]'))
Expected:
    Object key *
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    []
    <BLANKLINE>
    Object label *
    <BLANKLINE>
    An object failed schema or invariant validation.
    <BLANKLINE>
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
Got:
    Object key *
    Required input is missing.
    []
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 226, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 286, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-dictOfObject-0-row"]'))
Expected:
    Object key *
    <BLANKLINE>
    [subob1]
    <BLANKLINE>
    Object label *
    <BLANKLINE>
    The entered value is not a valid integer literal.
    <BLANKLINE>
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
Got:
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 319, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-dictOfObject-0-row"]//div[@class="error"]'))
Expected:
    Required input is missing.
    An object failed schema or invariant validation.
    Required input is missing.
    Required input is missing.
    Required input is missing.
    Required input is missing.
Got:
    Required input is missing.
    <BLANKLINE>
    An object failed schema or invariant validation.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 341, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 403, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object key *
    []
    Object label *
    [ ]
    Int label *
    []
    Bool label *
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object key *
    []
    Object label *
    [ ]
    Int label *
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 465, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label Object key *
    Required input is missing.
    []
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    [14/06/21]
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    [Add] [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    Required input is missing.
    []
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    [14/06/21]
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 518, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 574, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfObject label Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst", line 622, in object_multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    Data successfully updated.
    <BLANKLINE>
    DictOfObject label
    <BLANKLINE>
    Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add]
    [Remove selected]
    [Apply]
Got:
    Data successfully updated. DictOfObject label Object key *
    [subob1]
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add] [Remove selected]
    [Apply]

    22/44 (50.0%) ... ckages/z3c/form/browser/object_multi_list_integration.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst
Failed doctest test for object_multi_list_integration.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 89, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    [ ]
    Int label *
    [-100]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    Object label *
    [ ]
    Int label *
    [42]
    Bool label *
    (O) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [four]
    TextLine label *
    [second txt]
    Date label *
    [11/03/15]
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    [ ]
    Int label *
    [-100]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    Object label *
    [ ]
    Int label *
    [42]
    Bool label
    (O) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [four]
    TextLine label *
    [second txt]
    Date label *
    [11/03/15]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 140, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-listOfObject-0-row"]'))
Expected:
    Object label *
    <BLANKLINE>
    The entered value is not a valid integer literal.
    <BLANKLINE>
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
Got:
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 174, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-listOfObject-2-row"]'))
Expected:
    Object label *
    <BLANKLINE>
    An object failed schema or invariant validation.
    <BLANKLINE>
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
Got:
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 206, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [some text one]
    Date label *
    [14/06/20]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 264, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-listOfObject-0-row"]'))
Expected:
    Object label *
    <BLANKLINE>
    The entered value is not a valid integer literal.
    <BLANKLINE>
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
Got:
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 298, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="form-widgets-listOfObject-1-row"]//div[@class="error"]'))
Expected:
    An object failed schema or invariant validation.
    Required input is missing.
    Required input is missing.
    Required input is missing.
    Required input is missing.
Got:
    An object failed schema or invariant validation.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
    <BLANKLINE>
    Required input is missing.
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 313, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    [14/06/20]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 373, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    [ ]
    Int label *
    []
    Bool label *
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    [ ]
    Int label *
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [[    ]]
    ChoiceOpt label
    [No value]
    TextLine label *
    []
    Date label *
    []
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 438, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    [14/06/21]
    [Add] [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    [14/06/21]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 505, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label *
    Required input is missing.
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
    [Add] [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    The entered value is not a valid integer literal.
    [ ]
    Int label *
    The entered value is not a valid integer literal.
    [foobar]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    Constraint not satisfied
    [foo
    bar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Object label *
    An object failed schema or invariant validation.
    [ ]
    Int label *
    Required input is missing.
    []
    Bool label
    ( ) yes ( ) no
    Choice label *
    [one]
    ChoiceOpt label
    [No value]
    TextLine label *
    Required input is missing.
    []
    Date label *
    Required input is missing.
    []
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 580, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfObject label
    <BLANKLINE>
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfObject label Object label *
    [ ]
    Int label *
    [1,042]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst", line 626, in object_multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    Data successfully updated.
    <BLANKLINE>
    ListOfObject label
    <BLANKLINE>
    Object label *
    [ ]
    Int label *
    [1,042]
    Bool label *
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add]
    [Remove selected]
    [Apply]
Got:
    Data successfully updated. ListOfObject label Object label *
    [ ]
    Int label *
    [1,042]
    Bool label
    ( ) yes (O) no
    Choice label *
    [two]
    ChoiceOpt label
    [six]
    TextLine label *
    [moo900]
    Date label *
    [14/06/23]
    [Add] [Remove selected]
    [Apply]

    23/44 (52.3%) ... site-packages/z3c/form/browser/multi_dict_integration.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst
Failed doctest test for multi_dict_integration.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 82, in multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    DictOfInt label
    <BLANKLINE>
    Int key *
    [-1]
    Int label *
    [ ]
    [1]
    Int key *
    [-101]
    Int label *
    [ ]
    [-100]
    Int key *
    [101]
    Int label *
    [ ]
    [100]
    [Add]
    [Remove selected]
    DictOfBool label
    <BLANKLINE>
    Bool key *
    ( ) yes (O) no
    Bool label *
    [ ]
    (O) yes ( ) no
    Bool key *
    (O) yes ( ) no
    Bool label *
    [ ]
    ( ) yes (O) no
    [Add]
    [Remove selected]
    DictOfChoice label
    <BLANKLINE>
    Choice key *
    [key1]
    Choice label *
    [ ]
    [three]
    Choice key *
    [key3]
    Choice label *
    [ ]
    [two]
    [Add]
    [Remove selected]
    DictOfTextLine label
    <BLANKLINE>
    TextLine key *
    [textkey1]
    TextLine label *
    [ ]
    [some text one]
    TextLine key *
    [textkey2]
    TextLine label *
    [ ]
    [some txt two]
    [Add]
    [Remove selected]
    DictOfDate label
    <BLANKLINE>
    Date key *
    [11/01/15]
    Date label *
    [ ]
    [14/06/20]
    Date key *
    [12/02/20]
    Date label *
    [ ]
    [13/05/19]
    [Add]
    [Remove selected]
    [Apply]
Got:
    DictOfInt label Int key *
    [-1]
    Int label *
    [ ]
    [1]
    Int key *
    [-101]
    Int label *
    [ ]
    [-100]
    Int key *
    [101]
    Int label *
    [ ]
    [100]
    [Add] [Remove selected]
    DictOfBool label Bool key
    ( ) yes (O) no
    Bool label
    [ ]
    (O) yes ( ) no
    Bool key
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes (O) no
    [Add] [Remove selected]
    DictOfChoice label Choice key *
    [key1]
    Choice label *
    [ ]
    [three]
    Choice key *
    [key3]
    Choice label *
    [ ]
    [two]
    [Add] [Remove selected]
    DictOfTextLine label TextLine key *
    [textkey1]
    TextLine label *
    [ ]
    [some text one]
    TextLine key *
    [textkey2]
    TextLine label *
    [ ]
    [some txt two]
    [Add] [Remove selected]
    DictOfDate label Date key *
    [11/01/15]
    Date label *
    [ ]
    [14/06/20]
    Date key *
    [12/02/20]
    Date label *
    [ ]
    [13/05/19]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 285, in multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/form/div[@id="row-form-widgets-dictOfBool"]'))
Expected:
    DictOfBool label
    <BLANKLINE>
    Bool key *
    <BLANKLINE>
    ( ) yes (O) no
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    [ ]
    (O) yes ( ) no
    Bool key *
    <BLANKLINE>
    (O) yes ( ) no
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    [ ]
    ( ) yes (O) no
    Bool key *
    <BLANKLINE>
    ( ) yes ( ) no
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    [ ]
    ( ) yes ( ) no
    [Add]
    [Remove selected]
Got:
    DictOfBool label Bool key
    ( ) yes (O) no
    Bool label
    [ ]
    (O) yes ( ) no
    Bool key
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes (O) no
    Bool key
    ( ) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 321, in multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/form/div[@id="row-form-widgets-dictOfBool"]//div[@class="error"]'))
Expected:
    Required input is missing.
    Required input is missing.
Got:
    <BLANKLINE>
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 334, in multi_dict_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="row-form-widgets-dictOfBool"]'))
Expected:
    DictOfBool label
    <BLANKLINE>
    Bool key *
    <BLANKLINE>
    Required input is missing.
    ( ) yes ( ) no
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    Required input is missing.
    [ ]
    ( ) yes ( ) no
    [Add]
    [Remove selected]
Got:
    DictOfBool label Bool key
    ( ) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst", line 706, in multi_dict_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    There were some errors.
    * DictOfInt label: Wrong contained type
    * DictOfBool label: Wrong contained type
    * DictOfTextLine label: Constraint not satisfied
    * DictOfDate label: The datetime string did not match the pattern 'yy/MM/dd'.
    ...
Got:
    There were some errors. * DictOfInt label: Wrong contained type
    * DictOfTextLine label: Constraint not satisfied
    * DictOfDate label: The datetime string did not match the pattern 'yy/MM/dd'. Wrong contained type DictOfInt label Int key *
    Required input is missing.
    []
    Int label *
    Required input is missing.
    [ ]
    []
    Int key *
    [-101]
    Int label *
    [ ]
    [-100]
    [Add] [Remove selected]
    DictOfBool label Bool key
    ( ) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
    DictOfChoice label Choice key *
    [key3]
    Choice label *
    [ ]
    [two]
    [Add] [Remove selected]
    Constraint not satisfied DictOfTextLine label TextLine key *
    Required input is missing.
    []
    TextLine label *
    Required input is missing.
    [ ]
    []
    TextLine key *
    Constraint not satisfied
    [foo
    bar]
    TextLine label *
    Constraint not satisfied
    [ ]
    [foo
    bar]
    [Add] [Remove selected]
    The datetime string did not match the pattern 'yy/MM/dd'. DictOfDate label Date key *
    [12/02/20]
    Date label *
    [ ]
    [13/05/19]
    Date key *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [foobar]
    Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [ ]
    [foobar]
    [Add] [Remove selected]
    [Apply]

    24/44 (54.5%) ... site-packages/z3c/form/browser/multi_list_integration.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst
Failed doctest test for multi_list_integration.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 76, in multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    ListOfInt label
    <BLANKLINE>
    Int label *
    [ ]
    [-100]
    Int label *
    [ ]
    [1]
    Int label *
    [ ]
    [100]
    [Add]
    [Remove selected]
    ListOfBool label
    <BLANKLINE>
    Bool label *
    [ ]
    (O) yes ( ) no
    Bool label *
    [ ]
    ( ) yes (O) no
    Bool label *
    [ ]
    (O) yes ( ) no
    [Add]
    [Remove selected]
    ListOfTextLine label
    <BLANKLINE>
    TextLine label *
    [ ]
    [some text one]
    TextLine label *
    [ ]
    [some txt two]
    [Add]
    [Remove selected]
    ListOfDate label
    <BLANKLINE>
    Date label *
    [ ]
    [14/06/20]
    [Add]
    [Remove selected]
    [Apply]
Got:
    ListOfInt label Int label *
    [ ]
    [-100]
    Int label *
    [ ]
    [1]
    Int label *
    [ ]
    [100]
    [Add] [Remove selected]
    ListOfBool label Bool label
    [ ]
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes (O) no
    Bool label
    [ ]
    (O) yes ( ) no
    [Add] [Remove selected]
    ListOfTextLine label TextLine label *
    [ ]
    [some text one]
    TextLine label *
    [ ]
    [some txt two]
    [Add] [Remove selected]
    ListOfDate label Date label *
    [ ]
    [14/06/20]
    [Add] [Remove selected]
    [Apply]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 221, in multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/form/div[@id="row-form-widgets-listOfBool"]'))
Expected:
    ListOfBool label
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    [ ]
    (O) yes ( ) no
    Bool label *
    <BLANKLINE>
    [ ]
    ( ) yes (O) no
    Bool label *
    <BLANKLINE>
    [ ]
    (O) yes ( ) no
    Bool label *
    <BLANKLINE>
    [ ]
    ( ) yes ( ) no
    [Add]
    [Remove selected]
Got:
    ListOfBool label Bool label
    [ ]
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes (O) no
    Bool label
    [ ]
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 249, in multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/form/div[@id="row-form-widgets-listOfBool"]//div[@class="error"]'))
Expected:
    Required input is missing.
Got:
    <BLANKLINE>
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 261, in multi_list_integration.rst
Failed example:
    print(testing.plainText(content,
        './/div[@id="row-form-widgets-listOfBool"]'))
Expected:
    ListOfBool label
    <BLANKLINE>
    Bool label *
    <BLANKLINE>
    [ ]
    (O) yes ( ) no
    Bool label *
    <BLANKLINE>
    Required input is missing.
    [ ]
    ( ) yes ( ) no
    [Add]
    [Remove selected]
Got:
    ListOfBool label Bool label
    [ ]
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst", line 483, in multi_list_integration.rst
Failed example:
    print(testing.plainText(content))
Expected:
    There were some errors.
    * ListOfInt label: Wrong contained type
    * ListOfBool label: Wrong contained type
    * ListOfTextLine label: Constraint not satisfied
    * ListOfDate label: The datetime string did not match the pattern 'yy/MM/dd'.
    ...
Got:
    There were some errors. * ListOfInt label: Wrong contained type
    * ListOfTextLine label: Constraint not satisfied
    * ListOfDate label: The datetime string did not match the pattern 'yy/MM/dd'. Wrong contained type ListOfInt label Int label *
    [ ]
    [-100]
    Int label *
    Required input is missing.
    [ ]
    []
    [Add] [Remove selected]
    ListOfBool label Bool label
    [ ]
    (O) yes ( ) no
    Bool label
    [ ]
    ( ) yes ( ) no
    [Add] [Remove selected]
    Constraint not satisfied ListOfTextLine label TextLine label *
    Constraint not satisfied
    [ ]
    [foo
    bar]
    TextLine label *
    Required input is missing.
    [ ]
    []
    [Add] [Remove selected]
    The datetime string did not match the pattern 'yy/MM/dd'. ListOfDate label Date label *
    The datetime string did not match the pattern 'yy/MM/dd'.
    [ ]
    [foobar]
    Date label *
    Required input is missing.
    [ ]
    []
    [Add] [Remove selected]
    [Apply]

    44/44 (100.0%) ... 6/lib/python3.6/site-packages/z3c/form/tests/../hint.rst

Failure in test /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/tests/../hint.rst
Failed doctest test for hint.rst
  File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/tests/../hint.rst", line 0

----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/tests/../hint.rst", line 310, in hint.rst
Failed example:
    print(allInOneForm.widgets['boolField'].render())
Expected:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-boolField-0">
          <input checked="checked" class="radio-widget required bool-field" id="form-widgets-boolField-0" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-boolField-1">
          <input class="radio-widget required bool-field" id="form-widgets-boolField-1" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.boolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-boolField-0">
          <input checked="checked" class="radio-widget bool-field" id="form-widgets-boolField-0" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-boolField-1">
          <input class="radio-widget bool-field" id="form-widgets-boolField-1" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.boolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-boolField-0">
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-boolField-0" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-boolField-1">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-boolField-1" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.boolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Lines with differences:
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-boolField-0" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="true">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-boolField-1" name="form.widgets.boolField" title="This is a Bool field." type="radio" value="false">----------------------------------------------------------------------
File "/home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/tests/../hint.rst", line 334, in hint.rst
Failed example:
    print(allInOneForm.widgets['checkboxBoolField'].render())
Expected:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-0">
          <input checked="checked" class="radio-widget required bool-field" id="form-widgets-checkboxBoolField-0" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-1">
          <input class="radio-widget required bool-field" id="form-widgets-checkboxBoolField-1" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.checkboxBoolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Got:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-0">
          <input checked="checked" class="radio-widget bool-field" id="form-widgets-checkboxBoolField-0" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-1">
          <input class="radio-widget bool-field" id="form-widgets-checkboxBoolField-1" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.checkboxBoolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Diff:
  <html>
    <body>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-0">
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-checkboxBoolField-0" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="true">
          <span class="label">yes</span>
        </label>
      </span>
      <span class="option">
        <label for="form-widgets-checkboxBoolField-1">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-checkboxBoolField-1" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="false">
          <span class="label">no</span>
        </label>
      </span>
      <input name="form.widgets.checkboxBoolField-empty-marker" type="hidden" value="1">
    </body>
  </html>

Lines with differences:
          <input checked="checked" class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-checkboxBoolField-0" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="true">
          <input class="radio-widget required bool-field (got: radio-widget bool-field)" id="form-widgets-checkboxBoolField-1" name="form.widgets.checkboxBoolField" title="This is a Bool field displayed suing a checkbox." type="radio" value="false">


  Ran 44 tests with 9 failures, 0 errors, 0 skipped in 4.729 seconds.
Tearing down left over layers:
  Tear down zope.testrunner.layer.UnitTests in 0.000 seconds.

Tests with failures:
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/README.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/objectmulti.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_single_integration.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_dict_integration.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/object_multi_list_integration.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_dict_integration.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/browser/multi_list_integration.rst
   /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/lib/python3.6/site-packages/z3c/form/tests/../hint.rst
ERROR: InvocationError for command /home/jugmac00/All/output_zope/zopefoundation/z3c.form/.tox/py36/bin/zope-testrunner --test-path=src -pvc (exited with code 1)
py36 finish: run-test  after 5.23 seconds
py36 start: run-test-post 
py36 finish: run-test-post  after 0.00 seconds
__________________________________________ summary ___________________________________________

Publish documentation on readthedocs.io

Currently this package has a custom way to create its documentation via a buildout recipe. I am not sure if it is still needed or even possible with readthedocs.io.

Currently the whole documentation is on the PyPI page. I think this could be given up in favour of readthedocs.io.

checkbox_hidden input saves value on save even if checkbox is not checked

I found this issue today when I had some hidden checkbox fields in default page.
How to reproduce:
in schema have a checkbox field make the display mode hidden
widgets[f].mode = HIDDEN_MODE
then load the form and just save the form while the field is hidden.
then change the mode to INPUT_MODE and load the form
you will see all option of the checkbox field is checked.
Here is code for hidden mode checkbox I see: https://github.com/zopefoundation/z3c.form/blob/master/src/z3c/form/browser/checkbox_hidden.pt
To solve this I think this input field need a condition
tal:condition="item/checked"
to load the hidden input field with value ONLY if an item is checked marked.
Please contact me if any question about how to reproduce. skype: tareqalam

Buildout not working

Can someone please help me to make this buildout work?

There are some dependencies that make it require a new version of Zope, what makes a conflict.

definition of "root" is missing in the example used to introduce "Forms"

In the documentation of Forms, an object named root is used, but I think that it is never defined.

In
https://github.com/zopefoundation/z3c.form/blob/master/src/z3c/form/form.rst
the following code uses "root" (l.139)
addForm = PersonAddForm(root, request)
some lines before (l.134), it is stated that the "root" folder had been created during setup (I think it refers to l.18 testing.setupFormDefaults()), but I cannot find this "root" object.

I'm running the code of form.rst from a working installation of Plone5.2:

cd zinstance
. bin/activate
zopepy

(I'm a bit new to this, so it may be that I'm missing something basic...)

WidgetActionExecutionError

When I have an invariant that launches a WidgetActionExecutionError, this exception is not catch and is show in the log:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module plone.app.z3cform.inline_validation, line 29, in __call__
  Module z3c.form.form, line 148, in extractData
  Module z3c.form.field, line 324, in extract
  Module z3c.form.field, line 216, in validate
  Module z3c.form.validator, line 201, in validate
  Module z3c.form.validator, line 206, in validateObject
  Module zope.interface.interface, line 590, in validateInvariants
  Module brasil.gov.integracaocaldav.importagenda, line 38, in validatedatainicialdatafinal
WidgetActionExecutionError

This is because the method validateObject only catch exceptions of type zope.interface.Invalid and WidgetActionExecutionError doesn't inherit from zope.interface.Invalid.

radiowidgets fails when the value is '--NOVALUE--' (self.noValueToken).

In a dexteritry-behavior I use a relationfield like this:

    banner_link = z3c.relationfield.schema.RelationChoice(
        title=_(u"Banner Link"),
        description=u"",
        source=plone.formwidget.contenttree.ObjPathSourceBinder(),
        required=False,
    )

When using z3c.form > 3.0.5 I get an error due to this commit: 8092adb

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module Products.PDBDebugMode.runcall, line 70, in pdb_runcall
  Module ZPublisher.Publish, line 48, in call_object
  Module plone.z3cform.layout, line 66, in __call__
  Module plone.z3cform.layout, line 60, in update
  Module z3c.form.form, line 263, in render
  Module z3c.form.form, line 158, in render
  Module zope.browserpage.viewpagetemplatefile, line 51, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 271, in __call__
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 888, in do_useMacro
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 954, in do_defineSlot
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 858, in do_defineMacro
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 852, in do_condition
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 821, in do_loop_tal
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 888, in do_useMacro
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 821, in do_loop_tal
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 954, in do_defineSlot
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 858, in do_defineMacro
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 531, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
  Module zope.tales.tales, line 696, in evaluate
   - URL: /Users/philip/.cache/buildout/eggs/plone.app.z3cform-0.7.6-py2.7.egg/plone/app/z3cform/templates/macros.pt
   - Line 97, Column 46
   - Expression: <PathExpr standard:u'widget/@@ploneform-render-widget'>
   - Names:
      {'args': (),
       'context': <ATFolder at /Plone2/orner-mit-slider>,
       'default': <object object at 0x10c829bc0>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <HTTPRequest, URL=http://127.0.0.1:8080/Plone2/orner-mit-slider/++add++banner>,
       'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x1107a2710>,
       'view': <plone.dexterity.browser.add.DefaultAddForm object at 0x113442c50>,
       'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x1133cd9d0>}
  Module zope.tales.expressions, line 217, in __call__
  Module Products.PageTemplates.Expressions, line 155, in _eval
  Module Products.PageTemplates.Expressions, line 117, in render
  Module Products.Five.browser.metaconfigure, line 479, in __call__
  Module zope.browserpage.viewpagetemplatefile, line 83, in __call__
  Module zope.browserpage.viewpagetemplatefile, line 51, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 271, in __call__
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 858, in do_defineMacro
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 954, in do_defineSlot
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 531, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
  Module zope.tales.tales, line 696, in evaluate
   - URL: /Users/philip/.cache/buildout/eggs/plone.app.z3cform-0.7.6-py2.7.egg/plone/app/z3cform/templates/widget.pt
   - Line 37, Column 4
   - Expression: <PathExpr standard:u'widget/render'>
   - Names:
      {'args': (),
       'context': <ContentTreeWidget 'form.widgets.IBanner.banner_link'>,
       'default': <object object at 0x10c829bc0>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <HTTPRequest, URL=http://127.0.0.1:8080/Plone2/orner-mit-slider/++add++banner>,
       'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x110849a90>,
       'view': <Products.Five.metaclass.RenderWidget object at 0x11345f750>,
       'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x11345f6d0>}
  Module zope.tales.expressions, line 217, in __call__
  Module zope.tales.expressions, line 211, in _eval
  Module plone.formwidget.contenttree.widget, line 168, in render
  Module zope.browserpage.viewpagetemplatefile, line 83, in __call__
  Module zope.browserpage.viewpagetemplatefile, line 51, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 271, in __call__
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
  Module zope.tal.talinterpreter, line 518, in do_optTag
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
  Module zope.tales.tales, line 696, in evaluate
   - URL: /Users/philip/.cache/buildout/eggs/plone.formwidget.contenttree-1.0.7-py2.7.egg/plone/formwidget/contenttree/input.pt
   - Line 3, Column 5
   - Expression: <PathExpr standard:u'view/renderQueryWidget'>
   - Names:
      {'args': (<ContentTreeWidget 'form.widgets.IBanner.banner_link'>,),
       'context': <ATFolder at /Plone2/orner-mit-slider>,
       'default': <object object at 0x10c829bc0>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <HTTPRequest, URL=http://127.0.0.1:8080/Plone2/orner-mit-slider/++add++banner>,
       'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x10fba6b50>,
       'view': <ContentTreeWidget 'form.widgets.IBanner.banner_link'>,
       'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x1133e17d0>}
  Module zope.tales.expressions, line 217, in __call__
  Module zope.tales.expressions, line 211, in _eval
  Module z3c.formwidget.query.widget, line 212, in renderQueryWidget
  Module z3c.form.widget, line 153, in render
  Module zope.browserpage.viewpagetemplatefile, line 51, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module zope.pagetemplate.pagetemplate, line 240, in __call__
  Module zope.tal.talinterpreter, line 271, in __call__
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 531, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 821, in do_loop_tal
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 531, in do_optTag_tal
  Module zope.tal.talinterpreter, line 513, in no_tag
  Module zope.tal.talinterpreter, line 343, in interpret
  Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
  Module zope.tales.tales, line 696, in evaluate
   - URL: /Users/philip/.cache/buildout/eggs/z3c.form-3.1.1-py2.7.egg/z3c/form/browser/radio_input.pt
   - Line 8, Column 4
   - Expression: <PythonExpr (view.renderForValue(item['value']))>
   - Names:
      {'args': (),
       'context': <ATFolder at /Plone2/orner-mit-slider>,
       'default': <object object at 0x10c829bc0>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <HTTPRequest, URL=http://127.0.0.1:8080/Plone2/orner-mit-slider/++add++banner>,
       'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x1107fec90>,
       'view': <ContentTreeWidget 'form.widgets.IBanner.banner_link'>,
       'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x1133e7390>}
  Module zope.tales.pythonexpr, line 59, in __call__
   - __traceback_info__: (view.renderForValue(item['value']))
  Module <string>, line 1, in <module>
  Module z3c.form.browser.radio, line 44, in renderForValue
  Module z3c.form.term, line 38, in getTermByToken
  Module zope.schema.vocabulary, line 133, in getTermByToken
LookupError: --NOVALUE--

field.bind, even with ignoreContext

I got an error with field.bind(self.context), where context was nothing the field could be bound to.
the context was a plone.registry RecordProxy, which was lacking a __parent__ attribute (now fixed in a branch and submitted as PR). For reference, an excerpt of the traceback is copied further down.

But however, it appears to me wrong, that for forms where ignoreContext is set to True the field tries to bind itself to a context in this line:

field = self.field.bind(self.context)

I tried that to chang to:

            # We get a clone of the field with the context binded, if not
            # ignoreContext is set to True
            if self.ignoreContext:
                field = self.field
            else:
                field = self.field.bind(self.context)

And the error was gone.

Not sure, if it's intentional that the field is bound to the context, even for ignoreContext forms...

/cc @agroszer @icemac

  /home/thet-data/dotfiles-thet/home/.buildout/eggs/z3c.form-3.2.9-py2.7.egg/z3c/form/widget.py(118)update()
    116             #    field = self.field
    117             #else:
--> 118             field = self.field.bind(self.context)
    119 
    120             if value is field.missing_value or value is interfaces.NO_VALUE:

  /home/thet-data/dotfiles-thet/home/.buildout/eggs/zope.schema-4.4.2-py2.7.egg/zope/schema/_field.py(312)bind()
    310         elif clone.vocabulary is None and self.vocabularyName is not None:
    311             vr = getVocabularyRegistry()
--> 312             clone.vocabulary = vr.get(object, self.vocabularyName)
    313 
    314         if not ISource.providedBy(clone.vocabulary):

  /home/thet-data/dotfiles-thet/home/.buildout/eggs/Zope2-2.13.24-py2.7.egg/Zope2/App/schema.py(33)get()
     31         """
     32         factory = getUtility(IVocabularyFactory, name)
---> 33         return factory(context)
     34 
     35 

  /home/thet-data/dotfiles-thet/home/.buildout/eggs/plone.app.vocabularies-3.0-py2.7.egg/plone/app/vocabularies/catalog.py(605)__call__()
    603             site = getSite()
    604             nav_root = getNavigationRootObject(context, site)
--> 605             if nav_root and nav_root.getPhysicalPath() != site.getPhysicalPath():
    606                 parsed['path'] = {
    607                     'query': '/'.join(nav_root.getPhysicalPath()),

> /home/thet-data/dotfiles-thet/home/.buildout/eggs/plone.registry-1.0.4-py2.7.egg/plone/registry/recordsproxy.py(36)__getattr__()
     34     def __getattr__(self, name):
     35         if name not in self.__schema__:
---> 36             raise AttributeError(name)
     37         value = self.__registry__.get(self.__prefix__ + name, _marker)
     38         if value is _marker:

ipdb> context
*** NameError: name 'context' is not defined
ipdb> self.context
*** AttributeError: context
ipdb> u
> /home/thet-data/dotfiles-thet/home/.buildout/eggs/plone.app.vocabularies-3.0-py2.7.egg/plone/app/vocabularies/catalog.py(605)__call__()
    604             nav_root = getNavigationRootObject(context, site)
--> 605             if nav_root and nav_root.getPhysicalPath() != site.getPhysicalPath():
    606                 parsed['path'] = {

ipdb> context
<RecordsProxy for collective.venue.interfaces.IVenueSettings>
ipdb>   context.__module__
'plone.registry.recordsproxy'
ipdb> d
> /home/thet-data/dotfiles-thet/home/.buildout/eggs/plone.registry-1.0.4-py2.7.egg/plone/registry/recordsproxy.py(36)__getattr__()
     35         if name not in self.__schema__:
---> 36             raise AttributeError(name)
     37         value = self.__registry__.get(self.__prefix__ + name, _marker)

ipdb> l
     31 
     32         alsoProvides(self, schema)
     33 
     34     def __getattr__(self, name):
     35         if name not in self.__schema__:
---> 36             raise AttributeError(name)
     37         value = self.__registry__.get(self.__prefix__ + name, _marker)
     38         if value is _marker:
     39             value = self.__schema__[name].missing_value
     40         return value
     41 

ipdb> u
> /home/thet-data/dotfiles-thet/home/.buildout/eggs/plone.app.vocabularies-3.0-py2.7.egg/plone/app/vocabularies/catalog.py(605)__call__()
    604             nav_root = getNavigationRootObject(context, site)
--> 605             if nav_root and nav_root.getPhysicalPath() != site.getPhysicalPath():
    606                 parsed['path'] = {

Duplicate name: value

BUG/PROBLEM REPORT (OR OTHER COMMON ISSUE)

What I did:

I created a new control panel, derived from plone.supermodel.model.Schema and then used together with a plone.app.registry.browser.controlpanel.RegistryEditForm and the plone.app.registry.browser.controlpanel.ControlPanelWrapper.

class IControlPanel(model.Schema):

    site_color = field.TextLine(
        title=_('page_color', default='Farbe der Seite'),
        description=_('page_color_desc', default='Geben Sie die Farbe der Seite an.'),
        required=False
    )

    site_email = field.TextLine(
        title='E-Mail der Website',
        description='E-Mails der Website werden an diese E-Mail gesendet.',
        required=False
    )

What happened:

After a reinstall of my addon I always get this error:

raise ValueError("Duplicate name", name)

Or to be exact:

Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 162, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 359, in publish_module
  Module ZPublisher.WSGIPublisher, line 254, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module plone.z3cform.layout, line 63, in __call__
  Module plone.z3cform.layout, line 47, in update
  Module plone.z3cform.fieldsets.extensible, line 64, in update
  Module plone.autoform.form, line 34, in updateFields
  Module plone.autoform.base, line 68, in updateFieldsFromSchemata
  Module plone.autoform.utils, line 279, in processFields
  Module z3c.form.field, line 137, in __init__
ValueError: ('Duplicate name', 'value')

It reminds a lot of this one: plone/plone.behavior#14

What I think

In line 130 of the same file the field (plone.registry.field.TextLine) of my schema gets wrapped inside a newly created Field instance. Then in the next line the name will be derived from it. But this name always seems to be "value" instead of the real field name.
If I run the debugger before the exception I can see this:

# field <=> site_email
# self._data['value'] <=> site_color
(Pdb) field.title
'E-Mail der Website'
(Pdb) self._data
{'value': <Field 'value'>}
(Pdb) self._data['value']
<Field 'value'>
(Pdb) self._data['value'].field
<plone.registry.field.TextLine object at 0x7f4725e8c0b0 oid 0x17b2f in <Connection at 7f4739e34dc0>>
(Pdb) self._data['value'].field.title
'page_color'
(Pdb) self._data['value'].field.__name__
'value'
(Pdb) self._data['value'].__name__
'value'
(Pdb) field.__name__
'value'

So it seems that the original field also has the name "value" which is weird. Of course it should be site_color and site_email.

Should name not remain untouched?

What version of Python and Zope/Addons I am using:

Python 3.8.2
Zope 4.5.1
Plone 5.2.2

Not showing 2 options with same name and different values

There is a bug when the vocabulary sends two items with same name and different values.

In our use case we have two content types that when it is translated to Portuguese their names becomes the same.

In this case the widget for some reason swallow one of the two content types instead of showing two content types with the same name.

schema.ASCIILine and DISPLAY_MODE

When using a form with schema.ASCIILine and settings the widgets['...'].mode = interfaces.DISPLAY_MODE you always get a type validation error.

Switching to a schema.TextLine or keeping ASCIILine but using interfaces.HIDDEN_MODE is ok. It's like that the default used with DISPLAY_MODE is always an Unicode, or something similar.

Custom DataManagers cause unexpected validator behavior

Consider what happens when the built-in (but not used by default) DictionaryField is registered as a data manager adapter to enable storing form data in a PersistentMapping. We're assuming there's a customized getContent method returning a PersistentMapping as well of course.

Upon validation, when a context parameter (discriminator) is passed to validator.WidgetValidatorDiscriminators, it would have to be PersistentMapping (or a suitable interface, such as IMapping), rather than the content object on which the form is invoked on (the 'view context'). Likewise, the z3c.form base SimpleValidator initializes self with the same context, ie. here, PersistentMapping.

So the semantics of context change for z3c.form validation, depending on form customizations. I understand this may be by design, ie. that z3c.form considers "context" to be the (form) storage context.

Even if so, that's not documented nor obvious or intuitive. I believe it to be confusing and unexpected to most people first learning to use z3c.form, given that 'context' in the Zope/Plone world is so pervasively used to refer to the acquisition context, often the parent content object.

It would be more consistent if validation context was always assigned the content object, regardless of how form is customized (and have the from storage referenced as something else). However practicality beats purity - I would not make a backwards-incompatible change to the signature of validator.WidgetValidatorDiscriminators without a large consensus from the community.

I would therefor propose that:

  • the validator be extended with a new 'content' discriminator, ie. the actual context content object (in the 'traditional' sense). This would enable discriminating against it when a custom data manager is used.
  • the content be assigned to SimpleValidator instances as well, as self.content

While I realize this addition would not end the original source of confusion, with proper documentation, I believe the change would be for the better.

MultiWidget with RelationList as value_type

Hi all,

I`m not sure if this is the correct place for my question - please let me know if it is not.

I would like to have a dictionary with RelationList as value_type in plone:

    dictWithRelations = schema.Dict(title=u"Some Relations lists",
                                    required=False,
                                    key_type=schema.TextLine(title=_(u'afield')),
                                    value_type=relationfieldschema.RelationList(
                                       title=_(u'relations'),
                                       default=[],
                                       value_type=relationfieldschema.RelationChoice(
                                           source=CatalogSource(portal_type=['Document', 'Folder'])
                                       ),
                                       required=False,
                                    ))

But the RelatedItemsWidget does not show any item to select. The problem is described in more detail here: https://community.plone.org/t/dictionary-with-relationlists-as-value-type/1984

I have debugged and now it seems to me that the RelatedItemsWidget is missing context. The docstring of MultiWiget says:

Based on the
nature of this (sub) widget setup the internal widget do not have a real
context and can't get bound to it.

Is this the reason why this is not working? What do I have to implement to make it work?

I`m happy about every hint!

Float validator fails on more that 3 digits after decimal separator

I have a couple of fields defined this way:

class IPin(model.Schema):
    """A Pin."""
    ...
    latitude = schema.Float(
        title=_(u'label_latitude', default=u'Latitude'),
        required=True,
        default=0.0,
    )

    longitude = schema.Float(
        title=_(u'label_longitude', default=u'Longitude'),
        required=True,
        default=0.0,
    )

the validator accepts a number like -12,345 but fails with something like -12,3456 with:

The entered value is not a valid decimal literal.

placeholder attribute not supported in textarea widgets

the placeholder attribute is not supported by HTMLTextAreaWidget (HTMLTextInputWidget supports it)

is this by intent or would a PR be welcome?

i'd suggest add it to HTMLTextAreaWidget and include it in textlines_input.pt and textarea_input.pt so devs can use placeholder text if they want to.

What I did:

set the widgets placeholder in a plone dexterity schema

    widget(
        "contact_persons",
        placeholder="Firstname, lastname, role",
    )

    contact_persons = schema.Tuple(
        title=_("Contact Persons"),
        value_type=schema.TextLine(),
        required=True,
    )

What I expect to happen:

the textarea in the resulting form should show
"Firstname, lastname, role" as placeholder text

What actually happened:

no placeholder text is shown

What version of Python and Zope/Addons I am using:

plone 5.2.4 - z3c.form 3.7.1

Document how to use DictionaryField so it does not get picked up in "undesired scenarios"

In DictionaryField datamanager docstring it says:(https://github.com/zopefoundation/z3c.form/blob/3.2.7/src/z3c/form/datamanager.py#L110-L114)

NOTE: Even though, this data manager allows nearly all kinds of
mappings, by default it is only registered for dict, because it
would otherwise get picked up in undesired scenarios. If you want
to it use for another mapping, register the appropriate adapter in
your application.

What does this mean? Why would it be not safe to register DictionaryField datamanager for PersistentDict (handy for using z3c.form with annotations)? Would it then be better to subclass PersistentDict and register DictionaryField for that (makes things potentionally brittle though)?

Using a validator on multiple fields

I've created a validator, but it will only work on one field at a time. Currently I have:

validator.WidgetValidatorDiscriminators(
    AlphaNumericValidator, field=ITracker['available_areas'])
validator.WidgetValidatorDiscriminators(
    AlphaNumericValidator, field=ITracker['available_issue_types'])
validator.WidgetValidatorDiscriminators(
    AlphaNumericValidator, field=ITracker['available_severities'])

The validator will work on one of the fields, but ignores the other two. I've confirmed the validation works on each separately. How can I use the same validator on multiple fields?

make form storage retrieval configurable

z3c.form uses adaptation for configurable data managers (IDataManager), to customize writing and reading data to/from the storage (whatever it may be).

However that is only half of what should be be there: we do not have same configurability for fetching the storage itself. Instead, the form getContent implementation is hardcoded to return the context object (using context in the normal Zope/Plone sense here).

This is fine in typical Zope/Plone cases when the editable (context) object attributes are used for storage. But already when storing form data in the context object annotations (with the z3c.form DictionaryField data manager), a custom form with overriden getContent (to return the annotation instead of context object) is required.

Furthermore, what if the form data storage is not the context object or some part of it? Perhaps there is a separate storage, such as one provided by Souper? Or, what if we want to use z3c.form to store data in a SQL database, Apache Kafka, or persist it over the network somewhere?

For such use cases, it would be useful if getContent used a multi-adapter (context, request) to fetch and return the "content (storage) object", (say, IFormStorageProvider), resorting to current behavior if no adapter is found.

I volunteer to provide a PR if this idea is accepted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.