Урок для начинающих по PyTest #7.1 | Пишем простенький и элегантный билдер для генерации данных

Поділитися
Вставка
  • Опубліковано 4 січ 2025

КОМЕНТАРІ • 31

  • @jackslater4695
    @jackslater4695 2 роки тому +2

    Как всегда, спасибо за уроки!
    Вместо списка со строками статусов в parametrize'е теста можно сделать вот так:
    @pytest.mark.parametrize("status", [status.value for status in Statuses])
    Это позволит избежать дублирования кода. Если нужно будет изменить статусы игрока, достаточно будет подредактировать enum-файл.

  • @volodimirshurinov4103
    @volodimirshurinov4103 2 роки тому +2

    Спасибо дружище, это круто не все до конца понял нужно почитать дополнительно про билдеры

    • @SolveMeChannel
      @SolveMeChannel  2 роки тому +1

      Привет) В данном случае это просто паттерн программирования. Вот тут ты можешь детальнее почитать о нём и о других паттернах. Прям рекомендую этот сайт, там всё бесплатно, доступно и с картинками
      refactoring.guru/ru/design-patterns/builder

    • @volodimirshurinov4103
      @volodimirshurinov4103 2 роки тому

      @@SolveMeChannel Спасибо обязательно чекну

    • @antonioporeiro9270
      @antonioporeiro9270 2 роки тому

      @@SolveMeChannel не открывается(

  • @ГригорийСитёв
    @ГригорийСитёв 3 роки тому +5

    не бросай курс плиз

    • @SolveMeChannel
      @SolveMeChannel  3 роки тому +9

      Доброго вечера :) Немножко осталось рассказать, чтобы закончить курс. Вот +- список, если ничего не поменятся.
      1. Детальный разбор обновления генераторов внутри генераторов и их параметризация.
      2. Валидация json полей с более обширным количеством типов данных, разные ip, объекты и тд
      3. Упакуем всю нашу красоту в докер
      4. И как финал, сделаю марафон, где с 0 полностью покрою тестами какое-то публичное API (Видео обещает быть долгим)
      Дальше будет не менее интересно. Займёмся BDD тестами и Frontend ^_^

  • @ДенисНиколаевич-н9ц

    Спасибо. Очень круто.

  • @densaface
    @densaface Рік тому

    очень трудовое видео вышло) Желаю автору успехов и еще бы посоветовал ТГ завести, где началось бы выращиваться комьюнити к этому делу. Даже при периодическом отсутствии автора, это комьюнити будет расти и обмениваться опытом и сила коллективного разума будет генерить себе и автору вэлью)

  • @Nika7060
    @Nika7060 3 роки тому +2

    Спасибо за уроки и знания, очень интересно и полезно! Сделай пожалуйста видео по использованию параметра request в фикстурах.

    • @SolveMeChannel
      @SolveMeChannel  3 роки тому +1

      Доброго вечера, вы имеете ввиду отправку запросов в фикстуре и передаче результатов внутрь автотеста?

    • @alexsanchoss
      @alexsanchoss 2 роки тому

      @@SolveMeChannel Скорее всего вопрос был про параметризацию фикстур с параметром indirect :)

  • @FakePlv
    @FakePlv Рік тому

    Если класс написан правильно(с адекватной инкапсуляцией) то возвращать self безопасно, к тому же chain calls(особенно для однотипных операций) сокращает кол-во строк и, следовательно, упрощает код.

  • @romank2177
    @romank2177 Рік тому

    моя благодарность

  • @ДмитрийНоводворский-р9л

    Немного не понятно, почему каждая директория - пакет (содержит __init__.py). Можете пояснить так ли это необходимо?

    • @sunrise5378
      @sunrise5378 Рік тому

      Вам нужно как-то обозначить, что это именно пайтон пекейдж, а не просто папка

  • @alexandrettio
    @alexandrettio 2 роки тому

    Интересно, хочется посмотреть на гитхабе повнимательнее код

    • @SolveMeChannel
      @SolveMeChannel  2 роки тому

      Добрый день))
      Вот ссылочка на гит
      github.com/canyoupleasecreateanaccount/pytestLessonsCode
      Если потеряете комментарий, ссылку всегда можно найти на канале в разделе ссылок

  • @igorsemenkov98
    @igorsemenkov98 2 роки тому +1

    Спасибо! очень интересно, но ничего не понятно:))

  • @Роман-щ3д8я
    @Роман-щ3д8я 2 роки тому

    Спасибо за уроки! Но этот урок испорчен тем, что на 24 минуте не ясно, с каким файлом работает автор. В итоге - не удалось закончить билдер.

    • @SolveMeChannel
      @SolveMeChannel  2 роки тому

      Привет дружище, сорри, я игрался с расширением экрана, чтобы было видно и табы, и консоль, по-этому есть такая проблема. В последующих видео я её исправил.
      Если у тебя есть какие-то проблемы с продолжением написания билдера, пиши в наш чат или сюда в комментарии, постараюсь помочь. Так же, можешь посмотреть код, там есть полностью всё, что мы проходили на уроках.
      github.com/canyoupleasecreateanaccount/pytestLessonsCode

  • @ДмитроМельниченко-ч6к

    Как по мне довольно странно писать такой билдер если есть BaseModel. С ним и работать удобнее и он спокойно преобразуется в словарь и обратно.

    • @SolveMeChannel
      @SolveMeChannel  2 роки тому

      Привет) Мы не используем билдеры для сериализации/десериализации данных, для этого нам отлично подходит как-раз pydantic с parse_obj и своим прекрасным api для валидации объектов. В свою очередь билдер нам нужен для генерации данных, которые потом будут использоваться для тестирования CRUD за исключением GET/HEAD/DELETE запросов, описав в нём все интересующие нас сеттеры.

  • @ВалерийСавельев-н2ц

    Крутяк конечно но так тут накручено что блин день не могу распутать, да еще параллельно делаю свой тест по стенду. В голове кавардак - а тут еще заглянул на гитхаб а там тоже самое но еще с наследованием и переопределением - хедшот:)) и все я в осадок выпал8)(

  • @МИХАИЛПАНТЕЛЕЙЧУК-ф1о

    хороший уровень знаний, но реально плохая подача. Много слов паразитов (вот такая красота). Как итог, есть ощущение, что автор говорит сам с собой, лишь бы было понятно самому. Нет объяснений зачем производится каждое действие. Очень отличается от первых уроков в курсе

  • @ДарьяКузнецова-о7ы
    @ДарьяКузнецова-о7ы 2 роки тому +1

    Спасибо большое за уроки! Подскажи, пожалуйста, а если в json' е ключ совпадает c key word питона?
    Например, такой json? В джаве понятно, как экранировать, а тут не совсем((
    {"timestamp":
    {"from": 1023931,
    "to": 3148032}}

    • @SolveMeChannel
      @SolveMeChannel  2 роки тому

      Привет, всегда пожалуйста))
      В python, это не имеет значения, так как ключ, это просто строка, по этому может быть любым.
      a = {"def": 12}
      a.get("def")
      Вполне рабочая конструкция))

  • @antonioporeiro9270
    @antonioporeiro9270 2 роки тому

    может сможете помочь 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    • @antonioporeiro9270
      @antonioporeiro9270 2 роки тому

      мак питон 3.8 то все хорошо работает то внезапно ломается не видит что то (