Урок для начинающих по PyTest #3.3 | Пишем тесты близкие к боевым условиям и бустим AssertError log

preview_player
Показать описание
В этом видео напишем тест так, как это обычно делаю я, получая максимально приближённые данные с бекенда. А так же, сделаем красивый и прекрасный AssertError с детальными логами о том, что и куда отправлялось.

Github repository:

API которое использовал в этом уроке:

00:00 Пишем тесты близкие к боевым условиям и бустим AssertError log
00:05 Минутка благодарности
00:40 Что же мы будем рассматривать в рамках урока?
02:20 Делаем запрос на новый сервис и анализируем данные
06:15 Изменяем Response class
07:23 Пишем новый автотест
10:15 Создаём новую pydantic model для валидации
18:00 Используем нашу новую модель для валидации
19:00 Улучшаем AssertError в нашем Response class
26:28 До новых встреч

#python3 #pytest #pydantic #уроки #__str__
Рекомендации по теме
Комментарии
Автор

За годный контент не жалко и лайк поставить, тем более когда такая годнота подъехала 🤘

soldatov_ss
Автор

Чувук ты крут !!! курс супер то что искал очень долго!

alexn
Автор

Many thanks for your videos man !! it really helps a lot (sorry, no Russian fonts here) Big Like.

markpivovarov
Автор

В версии 2 pydentic, некоторые методы изменились, поэтому, чтобы у вас все заработало так, как у автора на 18:36, вам следует поменять parse_obj на model_validate, а декоратор validator на field_validator.

pendelbus
Автор

Начало видео прям от души ) инфа топ, за github отдельное спасибо, все четко еще и с комментариями на двух языках.

volodimirshurinov
Автор

Очень классные уроки, заходят на ура. Спасибо за труд!

serhiikholodnyi
Автор

Спасибо за отличный плейлист. Воды мало, пользы много

alexandrettio
Автор

За self и str спасибо, полезную инфу узнал )

inspayran
Автор

удобно в логи писать еще curl упавшего запроса (формировать через отдельную функцию).
позволяет например на предпроде быстро иметь под рукой то, что можно передать разработчику

anxu
Автор

Если хотите сделать класс Response универсальным, можно в конструктор передавать json_key который нужен для парсинга.
def __init__(self, response, json_key):
self.response = response
self.response_json =
self.response_status_code = response.status_code
затем при вызове скармливаете тот ключ, который нужно обработать
Если у кого есть более интересный метод, жду коммента.
Спасибо!

stylebender
Автор

Привет!
В уроке ты разбираешь объект data. А можешь пожалуйста рассказать как описать объект meta? Ведь там есть вложенные объекты pagination и links. Очень интересно увидеть как будут описаны данные типы в pydantic

kipzet
Автор

Привет, а укого появляется ошибка 'NoneType' object has no attribute 'validate' подскажите как исправить

БариАлибастр
Автор

А как быть, если в тесте падает две проверки? В отчет попадает только первая, и если не разбираться, то второй ошибки не видно.. видимо после первой тест прекращает дальнейшие проверки?

fyfkmuby
Автор

Привет, спасибо большое за уроки, очень полезны!

Не совсем понял, зачем мы сначала завели отдельный класс для ошибок, а потом описали их же в доп. функции __str__
Может информация будет в дальнейшем, но пока небольшая каша по поводу того, какая структура у проекта) Если дальше этого нет, было бы полезно почитать и посмотреть

Lemurkn
Автор

@SolveMe спасибо огромное за такой титанический труд!
Подскажи пожалуйста: соблюдаю четко структуру проекта как у тебя в видео. Но при запуске через pytest или python постоянно вьілетают ошибки с импортом: ModuleNotFoundError: No module named 'src'
Что с ним не так?? Уже замучался))

indarsnab
Автор

Добрый день!
Подскажите как работает принцип, к примеру class User(BaseModel):
если я в нем указываю id: str то у меня не падает модель с ошибкой...так как id у нас int.
тогда зачем мы задаем в схеме все значения?
Спасибо, заранее за ответ!

ГеоргийАндриевский-яе
Автор

Спасибо за уроки хотелось бы узнать а будет ли UI в программе обучения ?

Rock_concerts
Автор

Про зірочок прям хихикнул
Классно, продолжай!

aleksandrchernenko
Автор

а зачем в gender используется Enum?
можно ли использовать
gender: Literal["female', 'male']

vasiliyovchinnikov
Автор

Как ты комментишь/раскомментишь несколько строк при выделении?

ИльяЯкимов-гы