【发布时间】:2021-08-04 15:06:09
【问题描述】:
好的,我有这个夹具:
@pytest.fixture
def dummy_name():
def func(name="Dummy Name"):
num = 2
while True:
yield name
if num > 2:
tags = name.rsplit("_", 1)
name = f"{tags[0]}_{num}"
else:
name += f"_{num}"
num += 1
return func
@pytest.fixture
def dummy_admin_name(dummy_name):
return dummy_name(name="Dummy Admin")
我可以这样使用它:
def some_function(dummy_admin_name):
print(next(dummy_admin_name))
print(next(dummy_admin_name))
print(next(dummy_admin_name))
返回:
Dummy Admin
Dummy Admin_2
Dummy Admin_3
但问题是我必须一直为不同的字符串创建辅助夹具,因为调用基础 dummy_name 夹具不起作用:
def some_function(dummy_name):
print(next(dummy_name(name="Dummy Admin")))
print(next(dummy_name(name="Dummy Admin")))
print(next(dummy_name(name="Dummy Admin")))
返回:
Dummy Admin
Dummy Admin
Dummy Admin
很明显,因为添加参数 3 次,每次都会重置 name 值。
如果没有新的固定装置,我怎样才能使该输入在未来的调用中保持不变?
【问题讨论】: