Существует ли аналог DataProvider на Python?

Теги: #<Tag:0x00007f738b067fb0> #<Tag:0x00007f738b067560> #<Tag:0x00007f738b067498> #<Tag:0x00007f738b067358> #<Tag:0x00007f738b067290> #<Tag:0x00007f738b0671a0> #<Tag:0x00007f738b067088>

Связка pytest + selenium
Есть метод, логика которого попадает под 3 разных тест-кейса, с той разницей, что запускать их нужно с разными параметрами. Скажем {case_id: 1, partner: 1}, {case_id: 2, partner: 2} и тд
Так вот можно ли передать id и параметры запуска в декораторе питона или еще каким-то образом для трех разных запусков одного метода с разными параметрами?
Использовал для похожей ситуации @pytest.mark.parametrize, но по окончанию прогона он пушит статусы в одно и тоже место, не распределяя их по отдельным id

Очень сложно представить что именно вам нужно) Напишите хотябы псевдокодом что именно требуется. А лучше напишите код и укажите что именно не нравится.

если псевдокод, то примерно так!

деф тест_баланс(кококо):
    открыть_главную_страницу()
    залогиниться()
    зайти_в_лк()
    ассерт юзер.баланс == баланс.текст

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

к примеру если я использую декоратор @pytest.mark.parametrize, то выходит такая шляпа

@pytest.mark.parametrize(юзер_н, [юзер_1, юзер_2])
деф тест_баланс(кокок):
    открыть_главную_страницу()
    залогиниться(юзер_н)
    зайти_в_лк()
    ассерт юзер_1.баланс == баланс.текст

Он запустит метод 2 раза с юзер_1 и юзер_2 по-очереди, но результат в тест-реиле будет один - последний

Если в Тестрейле тест-кейс один на всех пользователей - то результат будет записываться последний, но в истории можно будет посмотреть прогон теста со всеми юзерами.
Не знаю как с плагином pytest-testrail, но могу предположить что можно задавать номер тест кейса для Тестрейла в pytest.mark.parametrize - соответственно юзеру для которого запускается тест-кейс. Но это надо вручную наверное без плагина TestRail Api интегрировать и костыль по завершению тест кейса писать…

ну вот очень хочется обойтись без костылей, но не могу найти нормальную интеграцию pytest с testrail без гемора с параметризацией фикстур

там работы на 2 часа же, напедалить отправку веб хуков в тест рейл в конце выполнения теста, да и всё

Если я правильно понял, то вам надо параметризованный тест раскидать на 2 кейса в тестрейле.
Вот пример с одного из моих прошлых проектов. Плагин pytest-testrail. Адаптируйте под себя:

from pytest import mark, param


@mark.parametrize('device, api_key', [
    param('web', 'KEY1',
          marks=mark.testrail(ids=('CASE1',))),
    param('tv', 'KEY2',
          marks=mark.testrail(ids=('CASE2',))),
])
2 симпатии

Не надо, пример выше ^

вооот мне нужен был адекватный пример с маркировкой айдишников для тест-реила! То, что надо Спасибо)