Pytest #6.1: Фикстуры - Основы применения

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 มิ.ย. 2024
  • 💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡
    Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle (FastAPI): forms.gle/Zw7bPnQvTsfekVH47
    Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
    Пишу про лайфхаки при поиске работы, рынок труда и способы развития разработчиков в TG канале - подписывайся: t.me/artemshumeiko
    Вступай в Python-сообщество (здесь можно задать любой вопрос): t.me/python_community_rus
    Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
    Книга из видео: t.me/python_community_rus/426...
    Репозиторий с кодом: github.com/artemonsh/pytest_c...
    Сегодня познакомимся с fixture - важной концепцией pytest, и поймем зачем нужны фикстуры.
    0:00 - Какие задачи решают фикстуры
    2:53 - Описание проекта, который используется в курсе
    6:16 - Решаем проблемы в тестах с помощью фикстур

ความคิดเห็น • 23

  • @artemshumeiko
    @artemshumeiko  11 หลายเดือนก่อน +3

    💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡
    Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot

  • @ekaterinazakusova
    @ekaterinazakusova 2 หลายเดือนก่อน

    Очень понятно и подробно) Спасибо!

  • @n1k726
    @n1k726 11 หลายเดือนก่อน +1

    про параметризацию фикстур еще можно рассказать

  • @lastdayaugust
    @lastdayaugust 11 หลายเดือนก่อน

    снова я с последовательностью видео, вы тестируете код, а я тестирую последовательность видеороликов хд, у вас уже 2 ерора

  • @shinzeroone
    @shinzeroone 11 หลายเดือนก่อน +3

    а так же через usefixtures мы не можем использовать candies?

  • @user-rc6qf3ks6s
    @user-rc6qf3ks6s 8 หลายเดือนก่อน +1

    Добрый день! Есть ли где-то репозиторий, в котором храниться изначальный код проекта, чтобы последовательно исправлять его вместе с уроками?

    • @artemshumeiko
      @artemshumeiko  8 หลายเดือนก่อน +1

      Добрый день! Ссылки на репы всегда есть в описании под видео: github.com/artemonsh/pytest_course

  • @danilbanan406
    @danilbanan406 11 หลายเดือนก่อน +1

    расширенный курс по тестированию будет?)

    • @artemshumeiko
      @artemshumeiko  11 หลายเดือนก่อน

      нет, постараюсь включить в этот курс максимум информации

  • @kekusfikus9344
    @kekusfikus9344 6 หลายเดือนก่อน +1

    а почему не добавили фикстуру candies к параметрам usefixtures

  • @KovalchykIgor
    @KovalchykIgor 6 หลายเดือนก่อน

    def test_list_candies(candies, empty_candies):
    Какая здесь будет последовательность выполнения фикстур? Сначала фикстура Candies или empty_candies?

    • @khafizovilnaz
      @khafizovilnaz 4 หลายเดือนก่อน

      так понимаю тут ключевую роль играет параметр scope т.к у метода удаления он есть а у метода конфет его нет, то выполнится приоритетней тот у кого есть параметр scope, поэтому empty_candies выполнится раньше

  • @Dennis_Ritchie
    @Dennis_Ritchie 4 หลายเดือนก่อน

    еще бы на вопросы отвечал автор, комментов было бы больше

  • @user-fg6is5gx4l
    @user-fg6is5gx4l 11 หลายเดือนก่อน

    В целом описано все круто, но тут идет тестирование скорее не того когда который был написан, а тестирование библиотеки. Просто у тебя в коде ты написал прокси штуку, а ее тестировать не всегда прмя надо на мой взгляд.

    • @artemshumeiko
      @artemshumeiko  11 หลายเดือนก่อน

      В коде написана абстракция для работы с базой данных. Этой абстракцией пользуется слой сервисов, который мы тестируем. И это позволяет как раз тестировать не библиотеку, а только работу слоя сервисов, который работает с данными, которые нам отдает одна библиотека (SQLAlchemy) и сериализует и валидирует другая (pydantic)

  • @eyeseyeseyes3555
    @eyeseyeseyes3555 10 หลายเดือนก่อน

    не знаю, почему мои комментарии удаляются, но если у вас ошибка с миграциями, пропишите параметр extra='allow' в SettingsConfigDict

  • @yevhenKaskov
    @yevhenKaskov 10 หลายเดือนก่อน +2

    пробую этот код у себя запускать. 1ый тест проходит, 2ой (test_list_candies) выдает AssertionError.
    не знаю как у вас работает, но у меня, словарь != екземпляру схемы.
    AssertionError: assert {'id': 1, 'owner': 'Даниил', 'state': 'full', 'title': 'candy1'} in [CandySchema(id=1, title='candy1', state='full', owner='Даниил'), ...]

    • @artemshumeiko
      @artemshumeiko  10 หลายเดือนก่อน

      Необходимо сравнивать не словарик, а Pydantic-схему

    • @yevhenKaskov
      @yevhenKaskov 10 หลายเดือนก่อน

      ​@@artemshumeiko
      в том то и дело что там нет Pydantic-схемы.
      в CandiesService.list(), TypeAdapter.dump_python() возвращает список словарей и тест не работает.
      Немного покопавшись - подозреваю что причина в коммите "upgrade pydantic".
      То есть тесты в видео рабочие, потому что там версия еще не та что в репозитории сейчас лежит.

    • @yevhenKaskov
      @yevhenKaskov 10 หลายเดือนก่อน

      это я не к тому чтоб додолбаться. Спасибо за все что ты делаешь.
      Пытаюсь разобраться и пока код не полностью работает остается ощущение что не разобрался в теме тестов, а тут проблема в другом.

    • @LynxFast
      @LynxFast 5 หลายเดือนก่อน

      У меня тоже самое, что с этим сделали?

    • @LynxFast
      @LynxFast 5 หลายเดือนก่อน

      Я в CandiesService.list(), вместо TypeAdapter.dump_python() сделал TypeAdapter.validate_python(). Вроде работает)