индекс списка вне диапазона при выполнении запросов к базе данных в функции гипотезы - PullRequest
0 голосов
/ 01 мая 2019

Я использую гипотезу Python для написания случайных тестов для базы данных.После 1-2 циклов вставки данных значений в таблицу я получаю индекс списка вне диапазона и @seed для воспроизведения.Нет ничего, что могло бы провалиться, я еще ничего не утверждаю.Как я могу отладить это?

Спасибо

        run_statement("create table t (x int)")
        @given(st.integers(1,10), st.integers(1,10))
        def insert_select(x):
            assume(x)
            run_statement("insert into t values ({})".format(x))
            select_results = run_statement_with_results("select * from t")
            print select_results

        insert_select()

Результаты:

You can add @seed(257907719204305935240373390472712621009) to this test to reproduce this failure.
timeout
error: list index out of range

1 Ответ

0 голосов
/ 08 мая 2019

К сожалению, этот тест в корне нарушен:

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

Как только они будут устранены, проблема может исчезнуть.

...