我正在编写一些python(特别是行为测试)并被某种状态记忆烧毁。
在其他一些模块中,我们有一个构建http头的方法:
def create_login_headers(headers={}, username=DEFAULT, password=DEFAULT)
在我的行为步骤文件中,我有一个接受头参数的方法,但如果没有提供一个参数,则调用上面的内容:
def post(header=create_login_headers())
通常我会通过调用post()
对于我的一些测试,我需要使用非默认用户。所以我打电话给这样的帖子:
post(header=create_login_headers("unprivileged_person","password"))
它工作正常。
但是由于post
部分中的设置而调用的{em> next 对Background
的调用开始失败!
很明显,标题是罪魁祸首。我将这件艺术品添加到我的背景部分:
@given(u'default headers')
def step_impl(context):
h = create_login_headers()
问题消失了。 (h
不是全局变量)。也许{}
中的create_login_headers
可能是罪魁祸首。
最后,我的问题 - python的哪一部分缓存旧标题? post
中的函数调用只执行一次,然后使用最后一个值吗?