[Checkins] SVN: zope.pytest/branches/jj-jw-functional-doctests/ start experimenting with functional doctests
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Sun Mar 13 19:15:41 EDT 2011
Log message for revision 120894:
start experimenting with functional doctests
Changed:
A zope.pytest/branches/jj-jw-functional-doctests/
U zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/setup.py
U zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_browser.py
A zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/
D zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg3/
A zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/
U zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/app.py
U zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/ftesting.zcml
A zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/conftest.py
D zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_app.py
D zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_browser.py
D zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_foo.py
A zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_something.txt
-=-
Modified: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/setup.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/setup.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/setup.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -35,7 +35,7 @@
The `request` parameter is expected to be a py.test
:class:`FuncargRequest` (not an HTTP request or similar) which is
generated by py.test while running tests.
-
+
The :attr:`handle_errors` attribute of the returned application is
set to ``False`` so that errors are handled by the server.
@@ -45,7 +45,7 @@
normally be done using :func:`configure` or :func:`setup_config`.
.. seealso:: `pytest_funcarg__`_ docs on pytest.org.
-
+
.. _pytest_funcarg__: http://pytest.org/funcargs.html
"""
db = setup_db()
@@ -73,11 +73,11 @@
return wsgi_app
-def configure(request, module, zcml):
+def configure(request, module, zcml, global_setup=False):
"""Configure the environment.
Performs a ZCML-driven configuration.
-
+
The `request` parameter
is expected to be a py.test
:class:`FuncargRequest` (not an HTTP request or similar) which is
@@ -101,18 +101,19 @@
It adds cached setup and teardown code to be run before and after
your session. That means the configuration setup and teardown will
happen only once for a complete test run.
-
+
.. seealso:: `pytest_funcarg__`_ docs on pytest.org.
-
+
.. _pytest_funcarg__: http://pytest.org/funcargs.html
"""
+
def setup_function():
return setup_config(module, zcml)
-
+ scope = global_setup and 'session' or 'function'
return request.cached_setup(setup=setup_function,
teardown=teardown_config,
- scope='session')
+ scope=scope)
def setup_config(package, zcml_file):
"""Setup a configuration.
@@ -134,6 +135,7 @@
Returns the resulting ZCML_ configuration.
"""
+ cleanUp()
zcml_file = os.path.join(os.path.dirname(package.__file__),
zcml_file)
@@ -162,7 +164,7 @@
You normally have to configure the Zope Component Architechture
using :func:`setup_config` or (preferably) :func:`configure`
before you call this function.
-
+
Returns a ZODB DB.
"""
name = 'main'
@@ -206,7 +208,7 @@
`connection`
is a (normally open) ZODB_ DB connection as returned by
:func:`setup_connection`.
-
+
Aborts any running transaction and closes the connection.
"""
transaction.abort()
Modified: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_browser.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_browser.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_browser.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -21,6 +21,14 @@
rendered_view = view()
assert view() == u'Hello from SampleAppView!'
+ from zope.interface import Interface
+ from zope.component import provideUtility, getUtility
+
+ the_something = object()
+ provideUtility(the_something, provides=Interface, name='something here')
+
+ s = getUtility(Interface, name='something here')
+
def test_browser(config, apps):
zope_app, wsgi_app = apps
http_request = Request.blank('http://localhost/test/index.html')
@@ -28,6 +36,12 @@
assert response.body == 'Hello from SampleAppView!'
assert response.status == "200 Ok"
+ from zope.interface import Interface
+ from zope.component.interface import ComponentLookupError
+ from zope.component import getUtility
+ with pytest.raises(ComponentLookupError):
+ getUtility(Interface, name='something here')
+
@pytest.mark.xfail("sys.version_info < (2,6)")
def test_infrae_browser(config, apps):
# Late import. This import will fail with Python < 2.6
Modified: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/app.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/app.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/app.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -1,5 +1,5 @@
from zope.interface import implements
-from mypkg3.interfaces import ISampleApp, IFoo
+from mypkg4.interfaces import ISampleApp, IFoo
class SampleApp(object):
implements(ISampleApp)
Modified: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/ftesting.zcml
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/ftesting.zcml 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/ftesting.zcml 2011-03-13 23:15:41 UTC (rev 120894)
@@ -1,7 +1,7 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
- package="mypkg3"
+ package="mypkg4"
>
<!-- This file is the equivalent of site.zcml and it is -->
@@ -16,7 +16,7 @@
<include package="zope.app.wsgi" />
<include package="zope.app.zcmlfiles" />
- <include package="mypkg3" file="configure.zcml" />
+ <include package="mypkg4" file="configure.zcml" />
<securityPolicy
component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
Added: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/conftest.py
===================================================================
--- zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/conftest.py (rev 0)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/conftest.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -0,0 +1,14 @@
+import pytest
+from zope.pytest import configure, create_app
+from mypkg4.app import SampleApp
+
+def pytest_funcarg__apps(request):
+ app = SampleApp()
+ return app, create_app(request, app)
+
+def pytest_funcarg__config(request):
+ return configure(request, mypkg4, 'ftesting.zcml')
+
+def pytest_runtest_setup(item):
+ pytest.set_trace()
+
Deleted: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_app.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_app.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_app.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -1,16 +0,0 @@
-from zope.interface.verify import verifyClass, verifyObject
-from mypkg3.app import SampleApp
-from mypkg3.interfaces import ISampleApp
-
-def test_app_create():
- # Assure we can create instances of `SampleApp`
- app = SampleApp()
- assert app is not None
-
-def test_app_class_iface():
- # Assure the class implements the declared interface
- assert verifyClass(ISampleApp, SampleApp)
-
-def test_app_instance_iface():
- # Assure instances of the class provide the declared interface
- assert verifyObject(ISampleApp, SampleApp())
Deleted: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_browser.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_browser.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_browser.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -1,39 +0,0 @@
-import pytest
-import mypkg3
-from webob import Request
-from zope.component import getMultiAdapter
-from zope.publisher.browser import TestRequest
-from zope.pytest import configure, create_app
-from mypkg3.app import SampleApp
-
-
-def pytest_funcarg__apps(request):
- app = SampleApp()
- return app, create_app(request, app)
-
-def pytest_funcarg__config(request):
- return configure(request, mypkg3, '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"
-
- at pytest.mark.xfail("sys.version_info < (2,6)")
-def test_infrae_browser(config, apps):
- # Late import. This import will fail with Python < 2.6
- from infrae.testbrowser.browser import Browser
- zope_app, wsgi_app = apps
- browser = Browser(wsgi_app)
- browser.open('http://localhost/test/index.html')
- assert browser.contents == 'Hello from SampleAppView!'
- assert browser.status == '200 Ok'
Deleted: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_foo.py
===================================================================
--- zope.pytest/trunk/src/zope/pytest/tests/sample_fixtures/browser/mypkg3/tests/test_foo.py 2011-03-08 21:06:19 UTC (rev 120813)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_foo.py 2011-03-13 23:15:41 UTC (rev 120894)
@@ -1,15 +0,0 @@
-import mypkg3
-from zope.component import queryUtility
-from mypkg3.interfaces import IFoo
-from zope.pytest import configure
-
-def pytest_funcarg__config(request):
- return configure(request, mypkg3, 'ftesting.zcml')
-
-def test_get_utility(config):
- util = queryUtility(IFoo, name='foo utility', default=None)
- assert util is not None
-
-def test_dofoo_utility(config):
- util = queryUtility(IFoo, name='foo utility', default=None)
- assert util().do_foo() == 'Foo!'
Added: zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_something.txt
===================================================================
--- zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_something.txt (rev 0)
+++ zope.pytest/branches/jj-jw-functional-doctests/src/zope/pytest/tests/sample_fixtures/functionaldoctest/mypkg4/tests/test_something.txt 2011-03-13 23:15:41 UTC (rev 120894)
@@ -0,0 +1,4 @@
+
+ >>> 1 + 1
+ 3
+
More information about the checkins
mailing list