Size: a a a

testing_in_python

2021 April 15

A

Alex in testing_in_python
ну я создал фикстурой какую-то модель, записал ее в базу. Теперь хочу чтобы один из тесткейсов сгенерировался на основе этой модели.
Тесткейс проверит корректность записанных данных в базе.
источник

СС

Сказочный Сникерс... in testing_in_python
тебе не кажется что тут не нужна фикстура?
источник

AS

Alex Svischev in testing_in_python
Из описания - проблема неясна, чем такой вариант не удовлетворяет?


import pytest
from faker import Faker


@pytest.fixture(params = [Faker().name() for _ in range(100)]
def fix():
   return request.param

def test_name(fix):
   write(fix)
   assert fix == read()
источник

AS

Alex Svischev in testing_in_python
Хотя тут можно и без фикстуры)
источник

A

Alex in testing_in_python
а если я хочу для test_name 20 групп параметров передать, которые генерировались бы на основе fix?
источник

A

Alex in testing_in_python
может и так, получается я двумя способами создают тестовые данные: фикстурой и parametrize. Так не делать?
источник

ЖС

Жук Самсаед... in testing_in_python
Я не смог найти возможности параметризации через фикстуру, использовал генератор. Видел открытое issue на гитхабе, но решения там нет
источник

СС

Сказочный Сникерс... in testing_in_python
в чем проблема задать параметры, а сущность создать в тесте?
источник

A

Alex in testing_in_python
удобно генерировать параметры еще до запуска теста, например так:
    @pytest.mark.parametrize('field', [
       (fixture.data),
       ('dummy'),
       ('test'),
   ])
источник

СС

Сказочный Сникерс... in testing_in_python
ты сам ответил на свой вопрос
источник

СС

Сказочный Сникерс... in testing_in_python
параметры и сами тесты генерируются до тестов
источник

СС

Сказочный Сникерс... in testing_in_python
а фикстура исполняется на уровне тестов
источник

СС

Сказочный Сникерс... in testing_in_python
фикстура исполняется уже на конкретный тест
источник

СС

Сказочный Сникерс... in testing_in_python
если тебе так надо - делай параметризованную фикстуру
источник

ЖС

Жук Самсаед... in testing_in_python
хорошо когда одна сущность, когда их много и на каждое может быть падение уже неочень
источник

СС

Сказочный Сникерс... in testing_in_python
?
источник

ЖС

Жук Самсаед... in testing_in_python
вот у меня: есть пользователь, с него создается апи. в апи может быть N параметров, где N заранее неизвестно. Мне нужно скомбинировать для этих N параметров набор из M шаблонов (itertools.combinations_with_replacement) и проверить работу каждого набора
источник

СС

Сказочный Сникерс... in testing_in_python
все равно не вижу противоречий. какая разница как ты комбинируешь параметры?
источник

ЖС

Жук Самсаед... in testing_in_python
я могу скомбинировать в фикстуре и отдать тесту, но он упадет на первом фейле и дальше проверок не будет
источник

СС

Сказочный Сникерс... in testing_in_python
нет же
источник