跳转到主要内容

为zope.testing提供简化测试设置的层

项目描述

van.testing为测试不使用ZODB或本地工具的zope3/WSGI应用程序提供工具。

测试工具

此测试模块最常用的用途是功能测试zope应用程序。它提供设置层的工具,这些层加载配置ZCML,并在层中设置wsgi_intercept。

此测试是此类层的一部分(在van.testing.tests.FunctionalLayer中设置)

>>> from wsgi_intercept import WSGI_HTTPConnection as HTTPConnection
>>> conn = HTTPConnection('localhost', 80)
>>> conn.request('GET', '/')
>>> r = conn.getresponse()
>>> print r.read() # doctest: +ELLIPSIS
{'HTTP_ACCEPT_ENCODING': 'identity',
 'HTTP_HOST': 'localhost',
 'PATH_INFO': '/',
 'QUERY_STRING': '',
 'REMOTE_ADDR': '127.0.0.1',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': '',
 'SERVER_NAME': 'localhost',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.1\r\n',
 'wsgi.errors': <cStringIO.StringO object at ...>,
 'wsgi.input': <cStringIO.StringI object at ...>,
 'wsgi.multiprocess': 0,
 'wsgi.multithread': 0,
 'wsgi.run_once': 0,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}
Marker: MARKER

一些基本的层,对于测试设置很有用。

>>> import os.path
>>> from van.testing.layer import zcml_layer, null_layer

一个zcml层,用于设置和拆除zcml测试工具(但这比zope.app.functional提供的要简单得多)

>>> class ZCMLLayer:
...     zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
>>> zcml_layer(ZCMLLayer)

为zope.testing提供了一些默认层,用于使用“null”层,该层特别不执行任何操作。这对于继承其他层但不希望设置/拆除函数运行两次的层很有用(这是zope.testing的bug吗?)

>>> class ExampleNullLayer(ZCMLLayer):
...     pass
>>> null_layer(ExampleNullLayer)

此测试在van.testing.tests.ZCMLLayer层中运行,因此我们可以获取“test”实用程序但不能获取test_extra实用程序(有关具有功能的zcml层的示例,请参阅zcml_features.txt)

>>> from zope.interface import Interface
>>> from zope.component import queryUtility
>>> queryUtility(Interface, name="test", default='None')
'MARKER'
>>> queryUtility(Interface, name="test_extra", default='None')
'None'

变更

3.0.0 (2009-10-28)

  • 在 zcml 层上添加一个 zcml_features 属性,以指示加载 zcml 时要加载的功能。

2.0.1 (2009-04-07)

  • 允许用户通过将属性添加到类中来指定 wsgi_intercept_layer 的域名和端口。

  • 略微修复 testbrowser 支持,使其更接近 zope.testbrowser.testing.Browser。

  • 移除对本地组件注册表(zope.site)的支持。这是因为 zope.site 的测试目前依赖于整个 ZODB。

2.0.0 (2009-04-01)

  • 通过使用 zope.configuration.xmlconfig 来设置 zcml 而不是 zope.app.appsetup 来移除依赖项。这省略了一些安全配置,但减少依赖项的收益巨大。在我的测试中,没有测试与这个问题有任何问题。

  • 添加一个 wsgi_intercept 层和一个功能层,该层结合了 zcml 和 wsgi_intercept 层。

1.0.0 (2008-11-21)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

van.testing-3.0.0.tar.gz (7.7 kB 查看哈希值)

上传时间 源代码

由以下组织支持