[Checkins] SVN: zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/ Add a browser-geared fixture for sphinx docs.
Uli Fouquet
uli at gnufix.de
Sun Jan 23 22:32:44 EST 2011
Log message for revision 119857:
Add a browser-geared fixture for sphinx docs.
Changed:
A zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/browser.py
U zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/configure.zcml
U zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/ftesting.zcml
A zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/tests/test_browser.py
-=-
Added: zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/browser.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/browser.py (rev 0)
+++ zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/browser.py 2011-01-24 03:32:43 UTC (rev 119857)
@@ -0,0 +1,7 @@
+from zope.publisher.browser import BrowserPage
+
+class SampleAppView(BrowserPage):
+
+ def __call__(self):
+ self.request.response.setHeader('Content-Type', 'text/plain')
+ return u'Hello from SampleAppView!'
Modified: zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/configure.zcml
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/configure.zcml 2011-01-23 21:46:42 UTC (rev 119856)
+++ zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/configure.zcml 2011-01-24 03:32:43 UTC (rev 119857)
@@ -1,10 +1,34 @@
<configure
xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
>
- <include package="zope.component" file="meta.zcml" />
- <utility component=".app.FooUtility"
- provides=".interfaces.IFoo"
- name="foo utility" />
+ <!-- Basic configuration. -->
+ <include package="zope.component" file="meta.zcml" />
+ <include package="zope.component" />
+ <!-- Those next ZCML includes are required by zope.app.appsetup. -->
+ <include package="zope.security" file="meta.zcml" />
+ <include package="zope.security" />
+
+ <include package="zope.location" />
+ <include package="zope.traversing" />
+ <include package="zope.container" />
+ <include package="zope.site" />
+
+ <include package="zope.app.appsetup" />
+
+ <utility
+ component=".app.FooUtility"
+ provides=".interfaces.IFoo"
+ name="foo utility"
+ />
+
+ <browser:page
+ for=".interfaces.ISampleApp"
+ name="index.html"
+ class=".browser.SampleAppView"
+ permission="zope.View"
+ />
+
</configure>
Modified: zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/ftesting.zcml
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/ftesting.zcml 2011-01-23 21:46:42 UTC (rev 119856)
+++ zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/ftesting.zcml 2011-01-24 03:32:43 UTC (rev 119857)
@@ -1,8 +1,58 @@
<configure
xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
package="mypkg"
>
+ <!-- This file is the equivalent of site.zcml and it is -->
+ <!-- used for functional testing setup -->
+ <include package="zope.component" file="meta.zcml" />
+ <include package="zope.security" file="meta.zcml" />
+ <include package="zope.publisher" file="meta.zcml" />
+ <include package="zope.browserpage" file="meta.zcml" />
+ <include package="zope.app.publication" file="meta.zcml" />
+ <include package="zope.securitypolicy" file="meta.zcml" />
+
+ <include package="zope.app.wsgi" />
+ <include package="zope.app.zcmlfiles" />
+
+ <securityPolicy
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
+
+ <role id="zope.Manager" title="Site Manager" />
+
+ <grantAll role="zope.Manager" />
+
+ <!-- Principals -->
+ <unauthenticatedPrincipal
+ id="zope.anybody"
+ title="Unauthenticated User" />
+ <grant
+ permission="zope.View"
+ principal="zope.anybody" />
+
+ <!-- Principal that tests generally run as -->
+ <principal
+ id="zope.mgr"
+ title="Manager"
+ login="mgr"
+ password="mgrpw" />
+
+ <grant role="zope.Manager" principal="zope.mgr" />
+
+ <utility
+ component=".app.FooUtility"
+ provides=".interfaces.IFoo"
+ name="foo utility"
+ />
+
+ <browser:page
+ for=".interfaces.ISampleApp"
+ name="index.html"
+ class=".browser.SampleAppView"
+ permission="zope.View"
+ />
+
<include package="mypkg" file="configure.zcml" />
</configure>
Added: zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/tests/test_browser.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/tests/test_browser.py (rev 0)
+++ zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg/tests/test_browser.py 2011-01-24 03:32:43 UTC (rev 119857)
@@ -0,0 +1,27 @@
+import mypkg
+from webob import Request
+from zope.component import getMultiAdapter
+from zope.publisher.browser import TestRequest
+from zope.pytest import configure, create_app
+from mypkg.app import SampleApp
+
+def pytest_funcarg__apps(request):
+ app = SampleApp()
+ return app, create_app(request, app)
+
+def pytest_funcarg__config(request):
+ return configure(request, mypkg, 'ftesting.zcml')
+
+def test_view_sampleapp(config, apps):
+ zope_app, wsgi_app = apps
+ view = getMultiAdapter(
+ (zope_app, TestRequest()), name="index.html")
+ rendered_view = view()
+ assert view() == u'Hello from SampleAppView!'
+
+def test_browser(config, apps):
+ zope_app, wsgi_app = apps
+ http_request = Request.blank('http://localhost/test/index.html')
+ response = http_request.get_response(wsgi_app)
+ assert response.body == 'Hello from SampleAppView!'
+ assert response.status == "200 Ok"
More information about the checkins
mailing list