Size: a a a

testing_in_python

2021 June 17

BS

BLVCK SONNET in testing_in_python
ты весь наш тред прочитал?
источник

BS

BLVCK SONNET in testing_in_python
ну всмысле изначальную хотелку видел?
источник

T

Tishka17 in testing_in_python
прочитал. Не понял откуда взялись сигнлтоны
источник

T

Tishka17 in testing_in_python
Видел. Возникло куча вопросов
источник

BS

BLVCK SONNET in testing_in_python
Сущность Suite должна быть одна
источник

T

Tishka17 in testing_in_python
зачем?
источник

T

Tishka17 in testing_in_python
это оптимизация или костыли?
источник

BS

BLVCK SONNET in testing_in_python
чтобы получать доступ к некоторым данным из вспомогающих функций, в которых порой много логики БЕЗ передачи большого количества фикстур
источник

T

Tishka17 in testing_in_python
откуда в тестах логика?
источник

BS

BLVCK SONNET in testing_in_python
это оптимизация, потому что тест-кейсы выглядят проще и понятнее
источник

T

Tishka17 in testing_in_python
какая разница тест кейсам синглтон это или на каждый тест создается заново?
источник

BS

BLVCK SONNET in testing_in_python
потому что фикстуры на разных стадиях меняют данные в Suite
источник

T

Tishka17 in testing_in_python
шта
источник

T

Tishka17 in testing_in_python
ты там интернет-магазин на фикстурах что ли пишешь?
источник

T

Tishka17 in testing_in_python
Логика должна быть в твоём прилжении, которое ты тестируешь. Тесты должны быть более менее простыми и понятными. Если в тестах появляется сложная логика - возможно ты что-то делаешь не то. Например, дублируешь логику приложения
источник

T

Tishka17 in testing_in_python
Что касается сигнлтонов, то, по-моему пайтест не будет создавать кучу копий, если он нужен разным фикстурам. Но могу ошибаться насчет дефолтного скоупа.
источник

BS

BLVCK SONNET in testing_in_python
Ничего я не дублирую, логикой в данной ситуации называю то, что происходит в вспомогательной функции, пример send_request - сформировать хедеры и привести данные переданные диктом в нужную форму исходя из того откуда идёт имитация запроса в тестируемый сервис, вернуть дикт либо текст. Хотелка в том чтобы не передавать фикстуры раз за разом в такие функции:

send_request(
   server,
   client,
   some_fixt,
   data,
   method,
   path,
   query
)

Или
send_request(
   data,
   method,
   path,
   query
)
источник

BS

BLVCK SONNET in testing_in_python
а теперь представь файл с сотней кейсов, по пять вызовов send_request в каждом, думаю понятно изложил
источник

T

Tishka17 in testing_in_python
ну почему бы не сделать
@fixture
def request_sender(server, client):
    yield partial(send_request, server, client)

def test_x(request_sender):
  pass
источник

T

Tishka17 in testing_in_python
или как я сразу предлагал классом, а не partial
источник