По завершении другого набора тестов, logout мне недоступен и поэтому в конце каждого прогона появляется один failed, так как кнопка logout отсутствует (NoSuchElementPresent). Я могу убрать строку fixture.session.logout(), но не очень хочется, так как это является и своеобразной проверкой этой кнопки
Пробовал менять scope(-ы), не получилось
Можно ли сделать для разного набора тестов, различные def stop(). Если да, то подскажите пожалуйста, как?
Не совсем понимаю зачем это вам нужно. И какое то у вас странное обращение с фикстурами. Но если вопрос заключается в том как использовать разные финализаторы к одной фикстуре, то вот вам решение: промаркируйте тесты в соответствии с тем какой финализатор хотите использовать, например:
@pytest.mark.fin('stop_1')
и
@pytest.mark.fin('stop_2')
В самой фикстуре через объект request можно получить эти маркеры:
fin_name = request.node.get_marker('fin').args[0]
А дальше уже в фикстуре лепите финализаторы как вам вздумается на основании полученного значения маркера
Спасибо большое за подсказку. А можно еще пару вопросиков.
“Не совсем понимаю зачем это вам нужно” Вы имеете ввиду, что можно убрать вообще logout и разрушать фикстуру без выхода?
“И какое то у вас странное обращение с фикстурами”. Что именно Вам кажется странным? Поделитесь пожалуйста своим видением, может я действительно, что-то неправильно делаю и есть более оптимальный вариант?
Ну вообще, основные задачи фикстуры - готовить и очищать стенд для нескольких тест-кейсов из одного класса эквивалентности. Если следовать этому правилу и не пытаться в фикстуру впихнуть все что можно - у вас получится легкий для понимания код. Если можно обойтись одним финализатором, то он должен быть один. А если требуются разные тирдауны для нескольних тестов - лучше используйте yield_fixture с общим началом для тестов