如何从另一个夹具参数化夹具?

时间:2021-03-30 11:34:43

标签: pytest fixtures

是否有可能从夹具参数化夹具?

假设我有一个装置,它以 relay_number 作为参数:

@pytest.fixture
def unipi_relay(request):
    try:
        relay_number = request.param["relay_number"]
    except KeyError:
        raise ValueError(
            "This function requires as a parameter dictionary with values for keys:"
            "\nrelay_number - passed as integer\n"
        )

    relay = RelayFactory.get_unipi_relay(relay_number)
    relay.reset()
    yield relay
    relay.reset()

现在我想要另一个夹具,它会产生带有已传递参数的 unipi_relay

我想要实现这样一个解决方案的原因是我想在单个测试中多次重复使用 unipi_relay 夹具。

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了您想要实现的目标,因为您没有输入您的灯具所采用的参数。也许 “factory as fixture” pattern 正是您要找的,因为这样您就可以重用 unipi_relay 固定装置。另请查看问题 Reusing pytest fixture in the same test