Есть тесты Selenium + Python + Pytest. Данные для них генерируются с помощью функции, в которой использую datetime, string.ascii_letters, string.digits + random.choice(). Однако, после первого же теста, в последующие попадают уже сгенерированные раннее значения. То есть, никакой random не срабатывает. Я так понимаю, что Pytest просто их подтягивает из кэша.
Как можно от этого избавиться (очищать кэш после каждой генерации данных или после каждого теста)
Используйте параметризацию фикстур и теста а если уж сильно надо определить список до теста то не вызывайте сразу choice(), используйте lambda функции
PS: а вообще без кода тут вас никто не поймет, приводите примеры кода чтобы детально разобрать ситуацию
Код был с отступами, как и положено, но встроенный редактор сайта все подравнял.
И как тогда можно сделать, чтобы тесты не брали уже готовое значение, а для каждого теста создавались новые данные
А какой в этом смысл? Зачем автоматизировать не зная заранее какую именно тест-дату вы тестируете? Ну можно например нагенерить данных генератором или лямбдой, ну не попадут они в ваше критическое значение - тест зеленый и все рады. Так? Смысл автоматизации тогда?
В вашем случае нужно заранее параметризовать либо фикстуру либо тест и не дурить себе и людям голову рандомизацией. Вам перед тем как параметризовать тест нужно еще определиться с критическими значениями (на которых может тест упасть) для поля или что вы там тестируете.
PS: для вставки кода нажимайте этот значок в редакторе:
Смысл в том, что создаются разные сущности, которые не могут иметь одинаковый тайтл по требованию. И проверяется именно их создание, а не критические значения в полях ввода.