Size: a a a

testing_in_python

2021 February 15

SV

Sergei Vasilchenko in testing_in_python
Philip
@pytest.fixture(autouse=True)
def cleared_db():
   yield
   
   db_steps.delete_all(table_name)
Независимо от результатов теста чистить? ну как вариант конеш)
источник

P

Philip in testing_in_python
Удалять в тесте — плохая идея. Так как при любой ошибке строки ниже не будут выполнены.
В фикстурах с yield можно делать подготовку данных, потом yield, а затем tierdown.
источник

EB

Evgenii B in testing_in_python
1) подумайте как создавать уникальные данные которые не пересекаются с другими тестами никогда

2) не удаляйте данные после теста, никогда. Вам их ещё захочется дебажить если тесты свалились


3) если нужно удалять тестовые данные, удаляйте их в начале тестового прогона: сначала почистили базу от тестовых данных (предыдущего прогона), затем насоздавали для текущей сессии данных
источник

SV

Sergei Vasilchenko in testing_in_python
Evgenii B
1) подумайте как создавать уникальные данные которые не пересекаются с другими тестами никогда

2) не удаляйте данные после теста, никогда. Вам их ещё захочется дебажить если тесты свалились


3) если нужно удалять тестовые данные, удаляйте их в начале тестового прогона: сначала почистили базу от тестовых данных (предыдущего прогона), затем насоздавали для текущей сессии данных
окей, спасибо, буду думать
источник

P

Philip in testing_in_python
Sergei Vasilchenko
Независимо от результатов теста чистить? ну как вариант конеш)
Результат теста — это хорошо или что-то упало. Но упасть может не только создание! Может получится, что создание отработает, но дата создания, которая проверяется ниже, в не том часовом поясе. например. Ассерт падает, и что, не надо чистить базу, так как тест упал?
источник

SV

Sergei Vasilchenko in testing_in_python
Philip
Результат теста — это хорошо или что-то упало. Но упасть может не только создание! Может получится, что создание отработает, но дата создания, которая проверяется ниже, в не том часовом поясе. например. Ассерт падает, и что, не надо чистить базу, так как тест упал?
А если ничего не создалось, то есть смысл чистить базу повторно?
источник

T

Tishka17 in testing_in_python
Evgenii B
1) подумайте как создавать уникальные данные которые не пересекаются с другими тестами никогда

2) не удаляйте данные после теста, никогда. Вам их ещё захочется дебажить если тесты свалились


3) если нужно удалять тестовые данные, удаляйте их в начале тестового прогона: сначала почистили базу от тестовых данных (предыдущего прогона), затем насоздавали для текущей сессии данных
1) как вы предалагаете сделать два теста: один проверяет как работает пустая система, а второй - система с данными?
источник

P

Philip in testing_in_python
Sergei Vasilchenko
А если ничего не создалось, то есть смысл чистить базу повторно?
Повторно? Чистит только фикстура, она же autouse. В других местах чистить не надо.
В теле теста должно быть минимум действий. А всякое удаление, создание — это технические штуки, которые прячутся во фреймворк. Если, кончено, не само удаление/создание тестируется.
источник

SV

Sergei Vasilchenko in testing_in_python
Philip
Повторно? Чистит только фикстура, она же autouse. В других местах чистить не надо.
В теле теста должно быть минимум действий. А всякое удаление, создание — это технические штуки, которые прячутся во фреймворк. Если, кончено, не само удаление/создание тестируется.
В кейсе тестируется создание заказа. После создания заказа я хочу удалить заказ.
источник

P

Philip in testing_in_python
Sergei Vasilchenko
В кейсе тестируется создание заказа. После создания заказа я хочу удалить заказ.
Удаление в фикстуру, а в тесте только самое важное: вызов апишки создания и проверка результата.
источник

EB

Evgenii B in testing_in_python
Tishka17
1) как вы предалагаете сделать два теста: один проверяет как работает пустая система, а второй - система с данными?
Разнести тесты по двум неймспейсам где в одном случае данные готовятся а в другом нет? Есть много вариантов как это можно сделать в пайтесте; не очень только понятно какой от меня правильный ответ ожидается
источник

T

Tishka17 in testing_in_python
Evgenii B
Разнести тесты по двум неймспейсам где в одном случае данные готовятся а в другом нет? Есть много вариантов как это можно сделать в пайтесте; не очень только понятно какой от меня правильный ответ ожидается
В смысле, как это будет работать если данные не чистить?
источник

SV

Sergei Vasilchenko in testing_in_python
Tishka17
В смысле, как это будет работать если данные не чистить?
Так данные же предлагают чистить перед прогоном
источник

T

Tishka17 in testing_in_python
Sergei Vasilchenko
Так данные же предлагают чистить перед прогоном
Хз как это даже как это корректно делать. Если так можно было бы придумать и не коммитить транзакцию, то тут не знаю даже
источник

EB

Evgenii B in testing_in_python
Tishka17
Хз как это даже как это корректно делать. Если так можно было бы придумать и не коммитить транзакцию, то тут не знаю даже
Все ещё не понимаю в чем проблема. Нужен пример того, когда описанный подход который я описал не сработает
источник

T

Tishka17 in testing_in_python
Ну да ладно, чего я влез в дискуссию. Сорри
источник

SV

Sergei Vasilchenko in testing_in_python
Tishka17
Хз как это даже как это корректно делать. Если так можно было бы придумать и не коммитить транзакцию, то тут не знаю даже
По идее в сетап фикстуре можно данные и удалять, если я правильно понял Евгения.
источник

T

Tishka17 in testing_in_python
Ну окей, да.
источник
2021 February 16

A

Alexey in testing_in_python
Ребят, у меня сейчас для каждого теста нужно логиниться в систему заново, и дальше по флоу. Пару дней как прикрутили частично возможность логиниться по API с токеном. Собственно вопрос, как можно сразу переходить на нужную страницу (я так понимаю первый раз нужно прокинуть авторизацию, записать где-то токен)? Не могу понять как это реализовывается вообще, может есть ресурс где-то почитать или кто подскажет? В Постмане я просто делаю environment и записываю токен и дальше прохожу все простенькие API тесты, а как это в UI работает с помоцью Python?
источник

P

Philip in testing_in_python
requests, session
источник