Skip to content

Commit

Permalink
re-add tests that got accidentally removed
Browse files Browse the repository at this point in the history
  • Loading branch information
janwijbrand committed May 1, 2012
1 parent 4ec837a commit 30dbb68
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/grokcore/layout/tests/ftesting.zcml
Expand Up @@ -7,6 +7,7 @@
<include package="zope.security" />
<include package="grokcore.layout" />
<grok:grok package=".layout" />
<grok:grok package=".models" />
<!-- In order to test the errorviews that stem from zope.errorview. -->
<include package="zope.errorview.tests" file="ftesting.zcml"/>
<!-- We do not grok the other packages on purpose -->
Expand Down
Empty file.
60 changes: 60 additions & 0 deletions src/grokcore/layout/tests/models/errorviews.py
@@ -0,0 +1,60 @@
"""
>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest
>>> view = getMultiAdapter((Exception(), TestRequest()), name='index')
>>> import grokcore.layout
>>> isinstance(view, grokcore.layout.ExceptionPage)
True
>>> print view.render()
A system error occurred.
>>> print view()
<html>
<body>
<div class="layout">A system error occurred.</div>
</body>
</html>
>>> from zope.security.interfaces import Unauthorized
>>> class MockPrincipal(object):
... id = 'mock principal'
>>> request = TestRequest()
>>> request.setPrincipal(MockPrincipal())
>>> errorpage = getMultiAdapter((Unauthorized(), request), name='index')
>>> print errorpage()
<html>
<body>
<div class="layout">Access to the requested resource is forbidden.</div>
</body>
</html>
>>> from zope.publisher.interfaces import NotFound
>>> request = TestRequest()
>>> errorpage = getMultiAdapter(
... (NotFound(None, request), request), name='index')
>>> print errorpage()
<html>
<body>
<div class="layout">The requested resource can not be found.</div>
</body>
</html>
"""
import grokcore.component as grok

from grokcore.view import templatedir
from grokcore.layout import Layout, ExceptionPage, NotFoundPage, UnauthorizedPage

templatedir('templates')

class Master(Layout):
grok.name('master')
grok.context(Exception)

class MyExceptionPage(ExceptionPage):
grok.name('index')

class MyUnauthorizedPage(UnauthorizedPage):
grok.name('index')

class MyNotFoundPage(NotFoundPage):
grok.name('index')
44 changes: 44 additions & 0 deletions src/grokcore/layout/tests/models/page.py
@@ -0,0 +1,44 @@
"""
>>> from grokcore.layout import ILayout
>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()
>>> cow = Cow()
>>> mylayout = getMultiAdapter((request, cow), ILayout)
>>> myview = getMultiAdapter((cow, request), name='myview')
>>> print myview()
<html>
<body>
<div class="layout"><p> My nice Content </p></div>
</body>
</html>
>>> myview
<grokcore.layout.tests.models.page.MyView object at ...>
>>> myview.layout
<grokcore.layout.tests.models.page.Master object at ...>
>>> print myview.content()
<p> My nice Content </p>
"""
import grokcore.component as grok
from grokcore.view import templatedir
from grokcore.layout import Layout, Page
from zope import interface

templatedir('templates')

class Cow(grok.Context):
pass

class Master(Layout):
grok.name('master')
grok.context(Cow)

class MyView(Page):
grok.context(interface.Interface)
grok.name('myview')

def render(self):
return "<p> My nice Content </p>"
7 changes: 7 additions & 0 deletions src/grokcore/layout/tests/models/templates/master.pt
@@ -0,0 +1,7 @@
<html>
<body>
<div class="layout" tal:content="structure view/content">
here comes the content
</div>
</body>
</html>
3 changes: 1 addition & 2 deletions src/grokcore/layout/tests/test_package.py
Expand Up @@ -24,14 +24,13 @@ def suiteFromPackage(name):
continue
if filename == '__init__.py':
continue

dottedname = 'grokcore.layout.tests.%s.%s' % (name, filename[:-3])
suite.addTest(make_test(dottedname))
return suite


def test_suite():
suite = unittest.TestSuite()
for name in ['layout', 'errors']:
for name in ['layout', 'models', 'errors']:
suite.addTest(suiteFromPackage(name))
return suite

0 comments on commit 30dbb68

Please sign in to comment.