pyramid.testing
¶
- setUp(registry=None, request=None, hook_zca=True, autocommit=True, settings=None, package=None)[源代码]¶
集合 Pyramid 在单个单元测试期间注册并请求线程局部变量。
在中使用此函数
setUp
直接或间接使用的UnitTest测试用例的方法:任何方法的
pyramid.config.Configurator
此函数返回的对象。这个
pyramid.threadlocal.get_current_registry()
或pyramid.threadlocal.get_current_request()
功能。
如果您使用
get_current_*
函数(或调用) Pyramid 使用这些函数的代码)而不调用setUp
,pyramid.threadlocal.get_current_registry()
将返回 全球的 application registry 这可能会导致单元测试与其执行的注册不隔离。如果
registry
论证是None
一个新的空 application registry 将创建pyramid.registry.Registry
类)。如果registry
论点不是None
,传入的值应是pyramid.registry.Registry
等级或适当的测试模拟。后
setUp
完成后,注册表返回pyramid.threadlocal.get_current_registry()
函数将是传递(或构造)的注册表,直到pyramid.testing.tearDown()
被称为(或)pyramid.testing.setUp()
再次调用)。如果
hook_zca
论证是True
,setUp
将尝试执行该操作zope.component.getSiteManager.sethook( pyramid.threadlocal.get_current_registry)
,这将导致 Zope Component Architecture 全球API(例如zope.component.getSiteManager()
,zope.component.getAdapter()
等等)使用setUp
作为它返回的值zope.component.getSiteManager()
. 如果zope.component
无法导入包,或者如果hook_zca
是False
,Hook将不设置。如果
settings
不是None
,它必须是一个字典,将传递给配置器的值表示为settings=
参数。如果
package
是None
它将被设置为调用方的包。这个package
设置在pyramid.config.Configurator
将影响通过pyramid.config.Configurator.include()
或pyramid.config.Configurator.maybe_dotted()
.此函数返回
pyramid.config.Configurator
类,可用于进一步配置以设置适合单元或集成测试的环境。这个registry
附加到配置器实例的属性表示“当前” application registry ;同一注册表将由返回pyramid.threadlocal.get_current_registry()
在测试执行期间。
- tearDown(unhook_zca=True)[源代码]¶
撤消的效果
pyramid.testing.setUp()
. 在中使用此函数tearDown
使用的单元测试方法pyramid.testing.setUp()
在其setUp
方法。如果
unhook_zca
论证是True
(默认),调用zope.component.getSiteManager.reset()
. 这将撤消pyramid.testing.setUp()
当用参数调用时hook_zca=True
. 如果zope.component
无法导入,unhook_zca
设置为False
.
- testConfig(registry=None, request=None, hook_zca=True, autocommit=True, settings=None)[源代码]¶
返回测试设置的上下文管理器。
此上下文管理器调用
pyramid.testing.setUp()
当进入和pyramid.testing.tearDown()
退出时。所有参数都直接传递给
pyramid.testing.setUp()
. 如果ZCA被钩住,它将永远不会被撕掉。此上下文管理器允许您这样编写测试代码:
1with testConfig() as config: 2 config.add_route('bar', '/bar/{id}') 3 req = DummyRequest() 4 resp = myview(req)
- cleanUp(*arg, **kw)[源代码]¶
的别名
pyramid.testing.setUp()
.
- class DummyResource(__name__=None, __parent__=None, __provides__=None, **kw)[源代码]¶
傀儡 Pyramid resource 对象。
- clone(__name__=<object object>, __parent__=<object object>, **kw)[源代码]¶
创建资源对象的克隆。如果
__name__
或__parent__
传递参数,使用这些值重写现有的__name__
或__parent__
资源的。如果通过kw
参数,使用这些关键字添加或重写现有资源关键字(属性)。
- values()[源代码]¶
返回由uu setitem设置的值__
- class DummyRequest(params=None, environ=None, headers=None, path='/', cookies=None, post=None, accept=None, **kw)[源代码]¶
一个dummyRequest对象(不完全)模仿 request 对象。
这个
params
,environ
,headers
,path
和cookies
参数对应于 WebOb 当量。这个
post
如果传递参数,则填充请求的POST
属性,但 notparams
,以便测试应用程序只接受来自POST请求的给定视图的数据。此参数还设置self.method
“邮寄”。额外的关键字参数被指定为请求本身的属性。
请注意,DummyRequest并不完全符合“真实”请求。例如,默认情况下,DummyRequest
GET
和POST
属性属于类型dict
,与普通请求的get和post不同,后者属于MultiDict
. 如果您的代码使用了multict的特性,那么您应该使用pyramid.request.Request
或者通过将属性替换为MultiDict
实例。存在其他类似的不相容性。如果需要请求的所有功能,请使用
pyramid.request.Request
在编写测试时,类本身而不是这个类。- request_iface¶
IRequest
的别名
- class DummyTemplateRenderer(string_response='')[源代码]¶
此类的实例从返回
pyramid.config.Configurator.testing_add_renderer()
. 它有一个助手函数 (assert_
)这样就可以作出断言,将视图函数传递给渲染器的数据与预期的键/值对进行比较。- assert_(**kw)[源代码]¶
接受一组任意的断言键/值对。对于每个断言键/值对,断言渲染器(例如
pyramid.renderers.render_to_response()
)接收到值等于断言值的键。如果渲染器根本没有接收到键,或者渲染器接收到的值与断言值不匹配,则引发AssertionError
.