Skip to content

Commit

Permalink
fix tests for Python 3
Browse files Browse the repository at this point in the history
  • Loading branch information
janwijbrand committed Jan 10, 2018
1 parent ffd6f78 commit 733e21a
Show file tree
Hide file tree
Showing 11 changed files with 51 additions and 36 deletions.
16 changes: 8 additions & 8 deletions src/grokcore/layout/README.txt
Expand Up @@ -41,8 +41,8 @@ We check it has been correctly registered:
>>> layout = getMultiAdapter((TestRequest(), Interface), ILayout)
>>> isinstance(layout, MyLayout)
True
>>> layout.render()
u'a simple layout'
>>> print(layout.render())
a simple layout

Now let's see how to use this Layout in a specific context using a Page.

Expand Down Expand Up @@ -80,10 +80,10 @@ Grokking our Page will let us use it.
True
>>> wooly = Mammoth()
>>> page = getMultiAdapter((wooly, TestRequest()), name='display')
>>> page.content()
u'Looks like an elephant'
>>> page()
u'a simple layout'
>>> print(page.content())
Looks like an elephant
>>> print(page())
a simple layout

As we can see, the page is using the layout, on the __call__ to
render. Of course, this example Layout doesn't provide any interesting
Expand All @@ -98,8 +98,8 @@ with the help of the 'content' method:

>>> grok_component('MammothLayout', MammothLayout)
True
>>> page()
u'Header. Page: Looks like an elephant. Footer'
>>> print(page())
Header. Page: Looks like an elephant. Footer

Forms & Errorpages
==================
Expand Down
8 changes: 5 additions & 3 deletions src/grokcore/layout/tests/errors/norenderortemplatelayout.py
Expand Up @@ -2,9 +2,11 @@
>>> grok.testing.grok(__name__)
Traceback (most recent call last):
...
ConfigurationExecutionError: <class 'martian.error.GrokError'>: Layout <class 'grokcore.layout.tests.errors.norenderortemplatelayout.MyLayout'> has no associated template or 'render' method.
in:
<BLANKLINE>
zope.configuration.config.ConfigurationExecutionError: \
<class 'martian.error.GrokError'>: Layout \
<class 'grokcore.layout.tests.errors.norenderortemplatelayout.MyLayout'> \
has no associated template or 'render' method...
"""

import grokcore.component as grok
Expand Down
8 changes: 5 additions & 3 deletions src/grokcore/layout/tests/errors/renderandtemplate.py
Expand Up @@ -2,9 +2,11 @@
>>> grok.testing.grok(__name__)
Traceback (most recent call last):
...
ConfigurationExecutionError: <class 'martian.error.GrokError'>: Multiple possible ways to render layout <class 'grokcore.layout.tests.errors.renderandtemplate.MyLayout'>. It has both a 'render' method as well as an associated template.
in:
<BLANKLINE>
zope.configuration.config.ConfigurationExecutionError: \
<class 'martian.error.GrokError'>: Multiple possible ways to render layout \
<class 'grokcore.layout.tests.errors.renderandtemplate.MyLayout'>. It has \
both a 'render' method as well as an associated template...
"""

import grokcore.component as grok
Expand Down
8 changes: 6 additions & 2 deletions src/grokcore/layout/tests/errors/samecontext.py
Expand Up @@ -2,8 +2,12 @@
>>> grok.testing.grok(__name__)
Traceback (most recent call last):
...
ConfigurationConflictError: Conflicting configuration actions
For: ('adapter', (<InterfaceClass zope.publisher.interfaces.browser.IDefaultBrowserLayer>, <InterfaceClass zope.interface.Interface>), <InterfaceClass grokcore.layout.interfaces.ILayout>)
zope.configuration.config.ConfigurationConflictError: \
Conflicting configuration actions For: ('adapter', \
(<InterfaceClass zope.publisher.interfaces.browser.IDefaultBrowserLayer>, \
<InterfaceClass zope.interface.Interface>), \
<InterfaceClass grokcore.layout.interfaces.ILayout>)
"""

import grokcore.component as grok
Expand Down
6 changes: 3 additions & 3 deletions src/grokcore/layout/tests/layout/layoutlayers.py
Expand Up @@ -10,16 +10,16 @@
>>> directlyProvides(request, IDefaultLayer)
>>> view = getMultiAdapter((a, request), name="myview")
>>> print view()
>>> print(view())
A Layout
>>> directlyProvides(request, IAnotherLayer)
>>> view = getMultiAdapter((a, request), name="myview")
>>> print view()
>>> print(view())
A2 Layout
>>> view = getMultiAdapter((b, request), name="myview")
>>> print view()
>>> print(view())
B Layout
"""

Expand Down
4 changes: 2 additions & 2 deletions src/grokcore/layout/tests/layout/no_staticfolder.py
Expand Up @@ -5,7 +5,7 @@
>>> request = TestRequest()
>>> mongo = Dummy()
>>> mylayout = getMultiAdapter((request, mongo), ILayout)
>>> print mylayout.static
>>> print(mylayout.static)
None
"""

Expand All @@ -17,6 +17,6 @@ class Dummy(grok.Context):
pass

class MyLayout(Layout):

def render(self):
return ""
4 changes: 2 additions & 2 deletions src/grokcore/layout/tests/layout/selectlayout.py
Expand Up @@ -10,14 +10,14 @@
doesn't select any specific layout::
>>> view = getMultiAdapter((one, request), name="viewone")
>>> print view()
>>> print(view())
Layout One
We test that we can retrieve the default layout for the page that
select a specific layout::
>>> view = getMultiAdapter((one, request), name="viewtwo")
>>> print view()
>>> print(view())
Layout Two
"""
Expand Down
8 changes: 4 additions & 4 deletions src/grokcore/layout/tests/layout/specializedlayout.py
Expand Up @@ -12,22 +12,22 @@
>>> directlyProvides(request, IALayer)
>>> view = getMultiAdapter((one, request), name="myview")
>>> print view()
>>> print(view())
Layout A for context One
>>> view = getMultiAdapter((two, request), name="myview")
>>> print view()
>>> print(view())
Layout A for context Two
We switch the layer::
>>> directlyProvides(request, IBLayer)
>>> view = getMultiAdapter((one, request), name="myview")
>>> print view()
>>> print(view())
Layout B for context One
>>> view = getMultiAdapter((two, request), name="myview")
>>> print view()
>>> print(view())
Layout B for context Two
"""
Expand Down
8 changes: 4 additions & 4 deletions src/grokcore/layout/tests/models/errorviews.py
Expand Up @@ -5,9 +5,9 @@
>>> import grokcore.layout
>>> isinstance(view, grokcore.layout.ExceptionPage)
True
>>> print view.render()
>>> print(view.render())
A system error occurred.
>>> print view()
>>> print(view())
<html>
<body>
<div class="layout">A system error occurred.</div>
Expand All @@ -20,7 +20,7 @@
>>> request = TestRequest()
>>> request.setPrincipal(MockPrincipal())
>>> errorpage = getMultiAdapter((Unauthorized(), request), name='index')
>>> print errorpage()
>>> print(errorpage())
<html>
<body>
<div class="layout">Access to the requested resource is forbidden.</div>
Expand All @@ -31,7 +31,7 @@
>>> request = TestRequest()
>>> errorpage = getMultiAdapter(
... (NotFound(None, request), request), name='index')
>>> print errorpage()
>>> print(errorpage())
<html>
<body>
<div class="layout">The requested resource can not be found.</div>
Expand Down
4 changes: 2 additions & 2 deletions src/grokcore/layout/tests/models/page.py
Expand Up @@ -7,7 +7,7 @@
>>> mylayout = getMultiAdapter((request, cow), ILayout)
>>> myview = getMultiAdapter((cow, request), name='myview')
>>> print myview()
>>> print(myview())
<html>
<body>
<div class="layout"><p> My nice Content </p></div>
Expand All @@ -18,7 +18,7 @@
<grokcore.layout.tests.models.page.MyView object at ...>
>>> myview.layout
<grokcore.layout.tests.models.page.Master object at ...>
>>> print myview.content()
>>> print(myview.content())
<p> My nice Content </p>
"""
Expand Down
13 changes: 10 additions & 3 deletions src/grokcore/layout/tests/test_package.py
@@ -1,17 +1,24 @@
# -*- coding: utf-8 -*-
import doctest
import unittest
import pkg_resources
import grokcore.layout.tests
import pkg_resources
import unittest

from zope.testing import renormalizing


layer = grokcore.layout.tests.GrokcoreLayoutLayer(grokcore.layout.tests)


def make_test(dottedname):
checker = renormalizing.RENormalizing()
test = doctest.DocTestSuite(
dottedname,
optionflags=doctest.ELLIPSIS + doctest.NORMALIZE_WHITESPACE)
checker=checker,
optionflags=(
doctest.ELLIPSIS +
doctest.NORMALIZE_WHITESPACE +
renormalizing.IGNORE_EXCEPTION_MODULE_IN_PYTHON2))
test.layer = layer
return test

Expand Down

0 comments on commit 733e21a

Please sign in to comment.