Функция для списка кортежей / элементов в Python Гипотеза - PullRequest
0 голосов
/ 03 августа 2020

В своих модульных тестах я довольно часто использую одну и ту же комбинацию стратегий:

import hypothesis.strategies as st

@given(st.text(), st.integers(), st.floats())
def test_stuff(text, integer, float):
    ...

Я надеялся, что смогу извлечь эту комбинацию следующим образом:

def combo():
    return st.tuples(st.text(), st.integers(), st.floats())

Чтобы я мог используйте его более коротким способом:

@given(combo())
def test_stuff(text, integer, float):
    ...

Однако тогда я получаю fixture 'text' not found. Есть ли способ достичь желаемого с помощью гипотезы?

1 Ответ

0 голосов
/ 21 августа 2020

Ваша конкретная c идея не поддерживается, потому что между аргументами @given () и тестовой функции всегда должно быть однозначное соответствие.

Однако есть пара из обходных путей, которые вы могли бы использовать:

  • как предлагает juanpa.arrivillaga, вы можете распаковать свои аргументы в тестовой функции
  • в качестве альтернативы, вы можете иметь глобальный словарь common = {"text": ..., "integer": ..., etc}, а затем распаковать его с помощью @given(**common)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...