Как всегда, спасибо за уроки! Вместо списка со строками статусов в parametrize'е теста можно сделать вот так: @pytest.mark.parametrize("status", [status.value for status in Statuses]) Это позволит избежать дублирования кода. Если нужно будет изменить статусы игрока, достаточно будет подредактировать enum-файл.
Привет) В данном случае это просто паттерн программирования. Вот тут ты можешь детальнее почитать о нём и о других паттернах. Прям рекомендую этот сайт, там всё бесплатно, доступно и с картинками refactoring.guru/ru/design-patterns/builder
Доброго вечера :) Немножко осталось рассказать, чтобы закончить курс. Вот +- список, если ничего не поменятся. 1. Детальный разбор обновления генераторов внутри генераторов и их параметризация. 2. Валидация json полей с более обширным количеством типов данных, разные ip, объекты и тд 3. Упакуем всю нашу красоту в докер 4. И как финал, сделаю марафон, где с 0 полностью покрою тестами какое-то публичное API (Видео обещает быть долгим) Дальше будет не менее интересно. Займёмся BDD тестами и Frontend ^_^
очень трудовое видео вышло) Желаю автору успехов и еще бы посоветовал ТГ завести, где началось бы выращиваться комьюнити к этому делу. Даже при периодическом отсутствии автора, это комьюнити будет расти и обмениваться опытом и сила коллективного разума будет генерить себе и автору вэлью)
Если класс написан правильно(с адекватной инкапсуляцией) то возвращать self безопасно, к тому же chain calls(особенно для однотипных операций) сокращает кол-во строк и, следовательно, упрощает код.
Добрый день)) Вот ссылочка на гит github.com/canyoupleasecreateanaccount/pytestLessonsCode Если потеряете комментарий, ссылку всегда можно найти на канале в разделе ссылок
Привет дружище, сорри, я игрался с расширением экрана, чтобы было видно и табы, и консоль, по-этому есть такая проблема. В последующих видео я её исправил. Если у тебя есть какие-то проблемы с продолжением написания билдера, пиши в наш чат или сюда в комментарии, постараюсь помочь. Так же, можешь посмотреть код, там есть полностью всё, что мы проходили на уроках. github.com/canyoupleasecreateanaccount/pytestLessonsCode
Привет) Мы не используем билдеры для сериализации/десериализации данных, для этого нам отлично подходит как-раз pydantic с parse_obj и своим прекрасным api для валидации объектов. В свою очередь билдер нам нужен для генерации данных, которые потом будут использоваться для тестирования CRUD за исключением GET/HEAD/DELETE запросов, описав в нём все интересующие нас сеттеры.
Крутяк конечно но так тут накручено что блин день не могу распутать, да еще параллельно делаю свой тест по стенду. В голове кавардак - а тут еще заглянул на гитхаб а там тоже самое но еще с наследованием и переопределением - хедшот:)) и все я в осадок выпал8)(
хороший уровень знаний, но реально плохая подача. Много слов паразитов (вот такая красота). Как итог, есть ощущение, что автор говорит сам с собой, лишь бы было понятно самому. Нет объяснений зачем производится каждое действие. Очень отличается от первых уроков в курсе
Спасибо большое за уроки! Подскажи, пожалуйста, а если в json' е ключ совпадает c key word питона? Например, такой json? В джаве понятно, как экранировать, а тут не совсем(( {"timestamp": {"from": 1023931, "to": 3148032}}
Привет, всегда пожалуйста)) В python, это не имеет значения, так как ключ, это просто строка, по этому может быть любым. a = {"def": 12} a.get("def") Вполне рабочая конструкция))
может сможете помочь ERROR collecting test session ______________________________________________________ /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) :1014: in _gcd_import ??? :991: in _find_and_load ??? :975: in _find_and_load_unlocked ??? :671: in _load_unlocked ??? The_13th_Floor/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:168: in exec_module exec(co, module.__dict__) Tests/conftest.py:4: in from src.generators.player import Player E ModuleNotFoundError: No module named 'src' ========================================================= short test summary info ========================================================= ERROR - ModuleNotFoundError: No module named 'src' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Как всегда, спасибо за уроки!
Вместо списка со строками статусов в parametrize'е теста можно сделать вот так:
@pytest.mark.parametrize("status", [status.value for status in Statuses])
Это позволит избежать дублирования кода. Если нужно будет изменить статусы игрока, достаточно будет подредактировать enum-файл.
Спасибо дружище, это круто не все до конца понял нужно почитать дополнительно про билдеры
Привет) В данном случае это просто паттерн программирования. Вот тут ты можешь детальнее почитать о нём и о других паттернах. Прям рекомендую этот сайт, там всё бесплатно, доступно и с картинками
refactoring.guru/ru/design-patterns/builder
@@SolveMeChannel Спасибо обязательно чекну
@@SolveMeChannel не открывается(
не бросай курс плиз
Доброго вечера :) Немножко осталось рассказать, чтобы закончить курс. Вот +- список, если ничего не поменятся.
1. Детальный разбор обновления генераторов внутри генераторов и их параметризация.
2. Валидация json полей с более обширным количеством типов данных, разные ip, объекты и тд
3. Упакуем всю нашу красоту в докер
4. И как финал, сделаю марафон, где с 0 полностью покрою тестами какое-то публичное API (Видео обещает быть долгим)
Дальше будет не менее интересно. Займёмся BDD тестами и Frontend ^_^
Спасибо. Очень круто.
Спасибо ^_^
очень трудовое видео вышло) Желаю автору успехов и еще бы посоветовал ТГ завести, где началось бы выращиваться комьюнити к этому делу. Даже при периодическом отсутствии автора, это комьюнити будет расти и обмениваться опытом и сила коллективного разума будет генерить себе и автору вэлью)
Спасибо за уроки и знания, очень интересно и полезно! Сделай пожалуйста видео по использованию параметра request в фикстурах.
Доброго вечера, вы имеете ввиду отправку запросов в фикстуре и передаче результатов внутрь автотеста?
@@SolveMeChannel Скорее всего вопрос был про параметризацию фикстур с параметром indirect :)
Если класс написан правильно(с адекватной инкапсуляцией) то возвращать self безопасно, к тому же chain calls(особенно для однотипных операций) сокращает кол-во строк и, следовательно, упрощает код.
моя благодарность
Немного не понятно, почему каждая директория - пакет (содержит __init__.py). Можете пояснить так ли это необходимо?
Вам нужно как-то обозначить, что это именно пайтон пекейдж, а не просто папка
Интересно, хочется посмотреть на гитхабе повнимательнее код
Добрый день))
Вот ссылочка на гит
github.com/canyoupleasecreateanaccount/pytestLessonsCode
Если потеряете комментарий, ссылку всегда можно найти на канале в разделе ссылок
Спасибо! очень интересно, но ничего не понятно:))
Спасибо за уроки! Но этот урок испорчен тем, что на 24 минуте не ясно, с каким файлом работает автор. В итоге - не удалось закончить билдер.
Привет дружище, сорри, я игрался с расширением экрана, чтобы было видно и табы, и консоль, по-этому есть такая проблема. В последующих видео я её исправил.
Если у тебя есть какие-то проблемы с продолжением написания билдера, пиши в наш чат или сюда в комментарии, постараюсь помочь. Так же, можешь посмотреть код, там есть полностью всё, что мы проходили на уроках.
github.com/canyoupleasecreateanaccount/pytestLessonsCode
Как по мне довольно странно писать такой билдер если есть BaseModel. С ним и работать удобнее и он спокойно преобразуется в словарь и обратно.
Привет) Мы не используем билдеры для сериализации/десериализации данных, для этого нам отлично подходит как-раз pydantic с parse_obj и своим прекрасным api для валидации объектов. В свою очередь билдер нам нужен для генерации данных, которые потом будут использоваться для тестирования CRUD за исключением GET/HEAD/DELETE запросов, описав в нём все интересующие нас сеттеры.
Крутяк конечно но так тут накручено что блин день не могу распутать, да еще параллельно делаю свой тест по стенду. В голове кавардак - а тут еще заглянул на гитхаб а там тоже самое но еще с наследованием и переопределением - хедшот:)) и все я в осадок выпал8)(
хороший уровень знаний, но реально плохая подача. Много слов паразитов (вот такая красота). Как итог, есть ощущение, что автор говорит сам с собой, лишь бы было понятно самому. Нет объяснений зачем производится каждое действие. Очень отличается от первых уроков в курсе
Спасибо большое за уроки! Подскажи, пожалуйста, а если в json' е ключ совпадает c key word питона?
Например, такой json? В джаве понятно, как экранировать, а тут не совсем((
{"timestamp":
{"from": 1023931,
"to": 3148032}}
Привет, всегда пожалуйста))
В python, это не имеет значения, так как ключ, это просто строка, по этому может быть любым.
a = {"def": 12}
a.get("def")
Вполне рабочая конструкция))
может сможете помочь ERROR collecting test session ______________________________________________________
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
:1014: in _gcd_import
???
:991: in _find_and_load
???
:975: in _find_and_load_unlocked
???
:671: in _load_unlocked
???
The_13th_Floor/lib/python3.8/site-packages/_pytest/assertion/rewrite.py:168: in exec_module
exec(co, module.__dict__)
Tests/conftest.py:4: in
from src.generators.player import Player
E ModuleNotFoundError: No module named 'src'
========================================================= short test summary info =========================================================
ERROR - ModuleNotFoundError: No module named 'src'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
мак питон 3.8 то все хорошо работает то внезапно ломается не видит что то (