Size: a a a

testing_in_python

2021 May 22

EB

Evgenii B in testing_in_python
справедливо
источник

SR

Sergey Raspopov in testing_in_python
не. Фикстурой с жизнью в сессию получаешь значение и в каждый тест отдаешь. Но! изменить его ты не сможешь все равно
источник

А

Андрей in testing_in_python
Тогда фикстуры получается не рашат проблему...
источник

SR

Sergey Raspopov in testing_in_python
Бывает что проблема не решается ЯПом, а лишь правильной архитектурой
источник

А

Андрей in testing_in_python
Буду искать решение, всем спасибо за фидбек без токсичности, очень приятно
источник

EB

Evgenii B in testing_in_python
короче, судя по тем строчкам, что у тебя есть.

Несколько утверждений, которые возможно кто-то тут оспорит, но думаю в целом верные:

1. Переменные вызываются и читаются у тебя правильно с точки зрения питона.
2. с точки зрения pytest этот механизм работает каким-то образом, который может перестать работать. например, тест запустится в другом порядке, и вот твои методы уже невпопад читают\изменяют переменную.
3. Исходя из пункта (2) и то что ты видишь сейчас, у тебя, скорее всего, что-то такое и происходит.
4. Если есть возможность сделать тесты независимыми, то лучше их сделать. Например, вместо теста (1) создать юзера (сохраняем ID нового юзера в переменную) и (2) удалить существующего юзера (читаем переменную), то лучше переписать так:
(1) создаем юзера, проверяем, что все ок
тут варианты могут быть второго теста:
(2) находим какого-нибудь юзера из базы, которого можно удалить, получаем его ID, удаляем.
или
(2) создаем юзера для этого теста в рамках фикстуры, фикстура вернет в тест ID нового пользователя, используем ID для удаления
источник

EB

Evgenii B in testing_in_python
кстати, я тут проверил, тесты работают в порядке объявления, т.е. если вставить в середину всех тестов еще тест, то он в середине рантайма и выполнится. мой пример был совпадением. так что в целом я соглашусь, что в ситуации, когда не знаешь механизмов, лучше следовать практикам
источник

А

Андрей in testing_in_python
Попробую утром переписать, спасибо большое
источник

T

Tishka17 in testing_in_python
Согласен
источник

DL

Dark Lord in testing_in_python
подскажите пожалуйста
Использую профили гугл хром в selenium
Добавляю аргумент с расширением экрана 500 на 500
В после загрузки сайта делаю скриншот
И в каждом профиле, размер элемента разный,
Не при каждой загрузки сайта, а именно при использовании  профиля
т.е  профиль 1 = расширение скриншота 500х412
профиль 2 = 500х380 и т.д
Как это пофиксить
источник
2021 May 24

BS

BLVCK SONNET in testing_in_python
pytest, aiohttp.test_utils.TestServer

Поднимаю несколько заглушек, с которыми общается тестируемый сервис. В конце некоторых сценариев необходимо убедиться, что в определённые заглушки приходили запросы от трестируемого сервиса. Фикстуры передают сущность заглушке таким образом:
yield server: aiohttp.test_utils.TestServer

Вопрос: можно ли как-то добраться до истории запросов в TestServer?
ПС: мне пока приходит в голову ещё один костыль - добавить поле в сущность заглушки, которое будет хранить дикт с запросами и в конце тест-кейса пользоваться им, но этот вариант мне не нравится…
источник

ЖС

Жук Самсаед... in testing_in_python
Аиохттп пишет в логи запросы, смотри в ту сторону
источник

BS

BLVCK SONNET in testing_in_python
ну я что-то такое пытаюсь найти, но пока не нашёл где они коллектятся
источник

ЖС

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

ЖС

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

СС

Сказочный Сникерс... in testing_in_python
я сделал проще, поднимаю в треде SimpleHttpServer с кастомным request handler. В нем же все запросы (обработанные) сохраняю прямо в отдельный объект. Далее из тестов смотрю что в объекте есть то что мне нужно
источник

СС

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

BS

BLVCK SONNET in testing_in_python
Да, я вижу все необходимые запросы. Если я тебя правильно понял - мне нужно написать хэндлер для логгера aiohttp.access, затем парсить сообщения и хранить удобным мне образом?
источник

СС

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

СС

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