Как использовать составные стратегии в гипотезе (hypothesis.errors.InvalidArgument: ожидается SearchStrategy, но есть функция)

Этот пример представляет собой вариант документа в документации:

import hypothesis.strategies as st

from hypothesis import given

@st.composite
def s(draw):
    x = draw(st.text(), min_size=1)
    y = draw(st.text(alphabet=x))
    return (x, y)



@given(s1=s, s2=s)
def test_subtraction(s1, s2):

    print(s1, s2)

    assert 0

Это не удается:

E hypothesis.errors.InvalidArgument: Expected SearchStrategy but got <function accept.<locals>.s at 0x7fd7e5c05620> (type=function)

/mnt/work/unfuncat/software/anaconda/lib/python3.6/site-packages/hypothesis/internal/validation.py:40: InvalidArgument

Что я делаю неправильно?

1 ответ

Вам нужно вызвать составные функции. Это не объясняется в документации, но есть пример в блоге 2016 года.

@given(s1=s(), s2=s()) # <===== change
def test_subtraction(s1, s2):

    print(s1, s2)

    assert 0
Другие вопросы по тегам