Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python3 #60

Merged
merged 6 commits into from
Sep 19, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ Bug fixes:
- Allow defaults to be set on dexterity type fields via the web UI (@@fields)
[ezvirtual]

- Fix tests in py3 and some py3 issues.
[pbauer]


2.0.19 (2018-02-02)
-------------------
Expand Down
2 changes: 1 addition & 1 deletion plone/schemaeditor/browser/schema/add_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def create(self, data):
factory = data.pop('factory')

# split regular attributes and extra ones
for key in data.keys():
for key in list(data.keys()):
if key not in self._schema:
extra[key] = data[key]
data.pop(key)
Expand Down
3 changes: 2 additions & 1 deletion plone/schemaeditor/browser/schema/traversal.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
from zope.publisher.interfaces.browser import IBrowserPublisher
from ZPublisher.BaseRequest import DefaultPublishTraverse

import six


@implementer(ISchemaContext, IBrowserPublisher)
class SchemaContext(SimpleItem):
Expand All @@ -21,7 +23,6 @@ class SchemaContext(SimpleItem):
enableFieldsets = True

def __init__(self, context, request, name=u'schema', title=None):
super(SchemaContext, self).__init__(context, request)
self.schema = context
self.request = request

Expand Down
8 changes: 4 additions & 4 deletions plone/schemaeditor/tests/choice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ If duplicate values are entered an error is raised.
... ['Alaska', 'Russia', 'United States', 'United States',
... 'Other'])
>>> browser.getControl('Save').click()
>>> print browser.contents
>>> print(browser.contents)
<...
<div class="error">The 'United States' vocabulary value conflicts with 'United States'.</div>
...
Expand Down Expand Up @@ -118,7 +118,7 @@ We can't set a vocabulary name AND values.
>>> browser.getLink(url='country').click()
>>> browser.getControl('values').value = "oups"
>>> browser.getControl('Save').click()
>>> print browser.contents
>>> print(browser.contents)
<...
<div class="error">You can not set a vocabulary name AND vocabulary values....
...
Expand Down Expand Up @@ -166,7 +166,7 @@ If duplicate values are entered an error is raised.
>>> ctl.value = '\n'.join(
... ['Lisp', 'Plone', 'Python', 'Lisp'])
>>> browser.getControl('Save').click()
>>> print browser.contents
>>> print(browser.contents)
<...
<div class="error">The 'Lisp' vocabulary value conflicts with 'Lisp'.</div>
...
Expand Down Expand Up @@ -210,7 +210,7 @@ Back to the edit form, vocabulary name is selected.

>>> browser.open(portal_url + '/@@schemaeditor')
>>> browser.getLink(url='categories').click()
>>> print browser.contents
>>> print(browser.contents)
<...
... selected>plone.schemaeditor.test.Categories</option...
...
20 changes: 10 additions & 10 deletions plone/schemaeditor/tests/editing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ error::
>>> browser.open(portal_url + '/@@schemaeditor')
Traceback (most recent call last):
...
Unauthorized: ...You are not authorized to access this resource...
zExceptions.unauthorized.Unauthorized: ...You are not authorized to access this resource...

We need to log in as a manager, because by default only managers get the 'Manage Schemata' permission::

Expand Down Expand Up @@ -62,11 +62,11 @@ normalized form of the title)::
>>> isinstance(IDummySchema['favorite_color'], TextLine)
True
>>> IDummySchema['favorite_color'].title
u'Favorite Color'
'Favorite Color'
>>> IDummySchema['favorite_color'].required
True
>>> IDummySchema['favorite_color'].description
u'Select your favorite color'
'Select your favorite color'


Editing a schema field attribute
Expand Down Expand Up @@ -98,7 +98,7 @@ of schema fields, which should reflect the change::
Let's confirm that the new default value was correctly saved to the actual schema::

>>> IDummySchema['favorite_color'].description
u'Enter your favorite color.'
'Enter your favorite color.'

If the schema is edited to have internationalized attributes::

Expand Down Expand Up @@ -130,11 +130,11 @@ value was set::
>>> type(IDummySchema['favorite_color'].description)
<... 'zope.i18nmessageid.message.Message'>
>>> IDummySchema['favorite_color'].description
u'favorite_color'
'favorite_color'
>>> IDummySchema['favorite_color'].description.domain
'plone'
>>> IDummySchema['favorite_color'].description.default
u'Enter your favorite color.'
'Enter your favorite color.'

Let's also check that the support for editing i18n Message values does not
persist its marker interface::
Expand Down Expand Up @@ -193,7 +193,7 @@ testbrowser doesn't support Javascript)::
[event: ContainerModifiedEvent on InterfaceClass]
[event: SchemaModifiedEvent on DummySchemaContext]
>>> browser.contents
''
b''

Now the field should be the third field of the schema::

Expand All @@ -220,7 +220,7 @@ They are moved to the end of the new fieldset::
[event: ContainerModifiedEvent on InterfaceClass]
[event: SchemaModifiedEvent on DummySchemaContext]
>>> browser.contents
''
b''

Now the field should be the seventh field of the schema::

Expand All @@ -236,7 +236,7 @@ They can be ordered into a fieldset::
[event: ContainerModifiedEvent on InterfaceClass]
[event: SchemaModifiedEvent on DummySchemaContext]
>>> browser.contents
''
b''
>>> get_field_fieldset(IDummySchema, 'favorite_color')
<Fieldset 'alpha'...of favorite_color, fieldA>

Expand Down Expand Up @@ -301,7 +301,7 @@ move it into an other fieldset and remove it::
[event: ContainerModifiedEvent on InterfaceClass]
[event: SchemaModifiedEvent on DummySchemaContext]
>>> browser.contents
''
b''
>>> browser.open('http://nohost/@@schemaeditor')
>>> browser.getLink(url='other_set/@@delete').click()
[event: ObjectRemovedEvent on TextLine]
Expand Down
2 changes: 1 addition & 1 deletion plone/schemaeditor/tests/extending.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ We can save a color and confirm that it ends up in the schema's tagged values::
[event: SchemaModifiedEvent on DummySchemaContext]
>>> from plone.schemaeditor.tests.fixtures import IDummySchema
>>> IDummySchema.getTaggedValue('color')
{'field1': u'green'}
{'field1': 'green'}
14 changes: 13 additions & 1 deletion plone/schemaeditor/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import doctest
import os
import plone.schemaeditor
import re
import six
import unittest


Expand All @@ -34,6 +36,15 @@ def tearDown(self):
classImplements(implementedBy(BaseRequest) - ITestLayer)


class Py23DocChecker(doctest.OutputChecker):
def check_output(self, want, got, optionflags):
if six.PY2:
want = re.sub('zExceptions.unauthorized.Unauthorized', 'Unauthorized', want)
got = re.sub("u'(.*?)'", "'\\1'", got)
want = re.sub("b'(.*?)'", "'\\1'", want)
return doctest.OutputChecker.check_output(self, want, got, optionflags)


def test_suite():
return unittest.TestSuite([

Expand All @@ -45,7 +56,8 @@ def test_suite():
'minmax.rst',
setUp=setUp,
tearDown=tearDown,
optionflags=optionflags
optionflags=optionflags,
checker=Py23DocChecker(),
),

])
Expand Down
3 changes: 3 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@
"Framework :: Plone",
"Framework :: Plone :: 5.0",
"Framework :: Plone :: 5.1",
"Framework :: Plone :: 5.2",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Topic :: Software Development :: Libraries :: Python Modules",
"License :: OSI Approved :: BSD License",
],
Expand Down