home.social

#pytest — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pytest, aggregated by home.social.

  1. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  2. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  3. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  4. Настраиваем CI/CD в GitHub для Python-проекта с нуля

    Настройка CI/CD часто кажется новичкам чем-то сложным и доступным только DevOps-инженерам. На самом деле автоматизировать рутину Python-проекта можно всего за полчаса. В этой статье мы по шагам разберем, как с нуля настроить GitHub Actions для простого FastAPI-приложения: от автоматического запуска тестов и быстрого линтера Ruff до сборки Docker-образа и публикации его в Docker Hub.

    habr.com/ru/articles/1037002/

    #python #github_actions #docker #pytest #автоматизация #fastapi #туториал

  5. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  6. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  7. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  8. Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

    Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир? Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service , в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

    habr.com/ru/articles/1034864/

    #python #pytest #тестирование #aiohttp #mock #интеграционные_тесты #http #dishka #fastapi #asyncly

  9. Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

    За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

    habr.com/ru/articles/1035978/

    #python #pytest #sql #testing #test_driven_development

  10. Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

    За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

    habr.com/ru/articles/1035978/

    #python #pytest #sql #testing #test_driven_development

  11. Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

    За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

    habr.com/ru/articles/1035978/

    #python #pytest #sql #testing #test_driven_development

  12. Основы тестирования и правила, которые помогают надёжно тестировать сложные приложения: примеры на Python

    За годы работы разработчиком я сталкивался с разными подходами к тестированию. В этой статье я хочу показать, какие практики кажутся мне неэффективными, и объяснить, как довольно просто писать надёжные тесты, которые дают и хорошее покрытие, и устойчивость. Статья может быть полезна не только Python-разработчикам, но и инженерам-программистам в целом.

    habr.com/ru/articles/1035978/

    #python #pytest #sql #testing #test_driven_development

  13. #today I am making a little progress on debugging my #buildingModel which includes learning how to do #pytest properly... #debugging #modelling

  14. Uso #ExtremeProgramming da quando facevo #debugging all'università, oltre 20 anni fa.

    Una cosa non cambia: scrivere codice è facile, definirne tutto il comportamento no.

    🎤 A #PyConIT 2026 porterò un #workshop su #Python 🐍 e #TDD:
    dalle variabili al primo test, per chiarire cosa il software debba fare prima di implementarlo.

    2026.pycon.it/it/event/primi-p

    #TalksAndWorkshops #python #pytest #BestPractices

  15. Uso #ExtremeProgramming da quando facevo #debugging all'università, oltre 20 anni fa.

    Una cosa non cambia: scrivere codice è facile, definirne tutto il comportamento no.

    🎤 A #PyConIT 2026 porterò un #workshop su #Python 🐍 e #TDD:
    dalle variabili al primo test, per chiarire cosa il software debba fare prima di implementarlo.

    2026.pycon.it/it/event/primi-p

    #TalksAndWorkshops #python #pytest #BestPractices

  16. [Перевод] postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

    Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про Postman никогда не слышал и слышать не собирается. Эти две вещи мирно сосуществовали месяцами, потому что никто не хочет быть тем человеком, который вручную переписывает 40 запросов в pytest-функции. Newman, конечно, есть, но Newman гоняет тесты, а не генерирует код, который можно прочитать, отредактировать и нормально положить в систему контроля версий. Получается, коллекция документирует API. CI тестирует API. Они описывают одну и ту же систему и при этом никогда не встречались. Я написал postman2pytest , чтобы их познакомить.

    habr.com/ru/articles/1033658/

    #postman #pytest #automation #apitesting #qa #конвертер

  17. [Перевод] postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

    Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про Postman никогда не слышал и слышать не собирается. Эти две вещи мирно сосуществовали месяцами, потому что никто не хочет быть тем человеком, который вручную переписывает 40 запросов в pytest-функции. Newman, конечно, есть, но Newman гоняет тесты, а не генерирует код, который можно прочитать, отредактировать и нормально положить в систему контроля версий. Получается, коллекция документирует API. CI тестирует API. Они описывают одну и ту же систему и при этом никогда не встречались. Я написал postman2pytest , чтобы их познакомить.

    habr.com/ru/articles/1033658/

    #postman #pytest #automation #apitesting #qa #конвертер

  18. [Перевод] postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

    Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про Postman никогда не слышал и слышать не собирается. Эти две вещи мирно сосуществовали месяцами, потому что никто не хочет быть тем человеком, который вручную переписывает 40 запросов в pytest-функции. Newman, конечно, есть, но Newman гоняет тесты, а не генерирует код, который можно прочитать, отредактировать и нормально положить в систему контроля версий. Получается, коллекция документирует API. CI тестирует API. Они описывают одну и ту же систему и при этом никогда не встречались. Я написал postman2pytest , чтобы их познакомить.

    habr.com/ru/articles/1033658/

    #postman #pytest #automation #apitesting #qa #конвертер

  19. [Перевод] postman2pytest: как превратить Postman-коллекцию в pytest-набор за одну команду

    Вот есть Postman-коллекция из 40 запросов. Разложена по папкам, и с тестовыми скриптами, которые проверяют статус-коды. Вы потратили на неё время, она хороша. И ещё у вас есть CI-пайплайн, который про Postman никогда не слышал и слышать не собирается. Эти две вещи мирно сосуществовали месяцами, потому что никто не хочет быть тем человеком, который вручную переписывает 40 запросов в pytest-функции. Newman, конечно, есть, но Newman гоняет тесты, а не генерирует код, который можно прочитать, отредактировать и нормально положить в систему контроля версий. Получается, коллекция документирует API. CI тестирует API. Они описывают одну и ту же систему и при этом никогда не встречались. Я написал postman2pytest , чтобы их познакомить.

    habr.com/ru/articles/1033658/

    #postman #pytest #automation #apitesting #qa #конвертер

  20. Почему Python стал главным помощником Java‑команд

    Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.

    habr.com/ru/companies/otus/art

    #Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI

  21. Почему Python стал главным помощником Java‑команд

    Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.

    habr.com/ru/companies/otus/art

    #Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI

  22. Почему Python стал главным помощником Java‑команд

    Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.

    habr.com/ru/companies/otus/art

    #Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI

  23. Почему Python стал главным помощником Java‑команд

    Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.

    habr.com/ru/companies/otus/art

    #Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI

  24. When you decide to dive into an otherwise AI-coded codebase, and you want to make by-hand changes, at least there are tests.

    Right?

    blog.davep.org/2026/05/01/at-l

  25. #CodeQuality of the lazy developer 🛠️

    Updating an educational #Python repo, I looked into what to automate for code quality.

    🔮 Spoiler: I landed on uv, ruff, pyright and pre-commit.

    In the article: the picks, why, and the make patch that broke on the first try 😄

    alessandra.bilardi.net/diary/a

    #DiaryOfALazyDeveloper #pytest #ruff #pyright #uv

  26. #CodeQuality of the lazy developer 🛠️

    Updating an educational #Python repo, I looked into what to automate for code quality.

    🔮 Spoiler: I landed on uv, ruff, pyright and pre-commit.

    In the article: the picks, why, and the make patch that broke on the first try 😄

    alessandra.bilardi.net/diary/a

    #DiaryOfALazyDeveloper #pytest #ruff #pyright #uv

  27. Архитектура тестового фреймворка

    Красные тесты на CI, зелёные локально, time.sleep в каждом втором тесте, а после смены селектора всё равно всё падает? Знакомо. Это не судьба, а отсутствие архитектуры. Разбираем, как превратить хаос из автотестов в промышленный фреймворк: слои, паттерны (POM, Builder, DI), анти-паттерны и работу с окружениями. С примерами на Python.

    habr.com/ru/companies/otus/art

    #архитектура_тестового_фреймворка #автотесты_Python #Page_Object_Model #pytest #антипаттерны_тестирования #flaky_tests #WebDriver_ожидания #тестовые_данные_изоляция #стабильность_автотестов

  28. The testing section has been extensively revised:
    • Test examples for cusy.tasks
    • Added Hypothesis extensions
    • Agile software development using test-driven development and behaviour-driven development
    python-basics-tutorial.readthe
    #Python #pytest #Agile #TDD #BDD

  29. What's a good tool in the universe to do benchmarks and prevent performance regression as part of your test suite?

  30. My #pytest quick reference brochures finally arrived at #PyConDE 🥰

    Find them at this desk at the entrance, or at the community sponsors desk in the Lounge (first floor). Please take as many as you (and/or your colleagues) need, I have 500 here weighing in at >30kg, and I am here by train 😅

    #Python

  31. agent-output: drastically reduce token consumption for and runs ( ) 👇

  32. @the_compiler Well, that didn‘t quite go according to plan :) But thank you anyway. I never knew there was so much to say about #pytest. Will definitely read it!

  33. I wanted to design a #pytest cheat sheet for a while, finally started last week to have it ready for #PyConDE.

    I wanted to have a 6 page leaflet (A4 split into thirds), then hyperfocus kicked, and I ended up with a 40 page booklet instead! 🤯

    I ordered 500 copies to my hotel, if all goes well they will arrive on Wed. Make sure to get yours, or I'll have to figure out a way to get 30kg home safely again 😅.

    Released under CC BY-ND: github.com/The-Compiler/pytest

    PDF: pyte.st/ref.pdf

    #Python

  34. Как мы создали новый тестовый фреймворк, адаптируемый к росту проектов

    Наш тестовый фреймворк перестал масштабироваться с ростом сервисов. Мы переработали архитектуру, ввели разделение на слои, упростили масштабирование автотестов и подготовили фреймворк к интеграции SDK и использованию AI

    habr.com/ru/articles/1020856/

    #тестирование #python #pytest #test_automation

  35. In my #python project #xiaolongdictionary I had need for generating example data. I did not want to add more dependencies for that, so I took some time to create a function, that takes a TypedDict type and a dictionary of "constraints" to constrain the produced values and output a "factory", that can be called and outputs example values.

    codeberg.org/ZelphirKaltstahl/

    It does not cover all the cases that one could imagine, but seems to cover all of mine.

    #test #pytest #factory #programming #coding

  36. Фабрики в тестировании (Python, Django, pytest, factory_boy)

    Здесь мы рассматриваем фабрики в тестировании. На очень элементарных примерах, с использованием языка python и инструментов Django, pytest, factory_boy.

    habr.com/ru/articles/1017700/

    #python #pytest #django #factory_boy #тестирование

  37. pytest-check 2.8.0
    github.com/okken/pytest-check/
    check helper functions, check.equal(), etc., now support an optional xfail string to allow check failures to result in xfail instead of fail on a non-xfail marked test
    And we’re temporarily at 0 open issues and 0 PRs

  38. Параметризация Pytest: когда файловая коллекция становится тест-кейсами

    Привет, Хабр! Меня зовут Владислав Тимашенков, я занимаюсь автоматизацией тестирования в ГК InfoWatch. Мы разрабатываем DLP-систему для защиты контента и предотвращения утечек информации. Специфика продуктов InfoWatch состоит в анализе самых разнообразных данных. Поэтому практически каждый автотест требует подхода с широким набором параметров. Для нашей команды хорошим решением стало вынести генерацию параметров pytest.mark.parametrize в отдельный компонент, который собирает данные из файловой коллекции проекта. Существует множество способов параметризировать тестовые функции. Эта статья — пример изящной параметризации Pytest для сценариев, основанных на файловой коллекции проекта с большим количеством данных. Расскажем про наш опыт решения такой задачи. Параметризация Pytest позволяет сделать из теста каркас, шаблон, который принимает данные для конфигураций, для assert и т.д. Пример из документации Pytest:

    habr.com/ru/companies/infowatc

    #python #pytest #автоматизация_тестирования #тестирование #qa_automation #qa

  39. Novo post no blog: testes que realmente testam.

    Fixtures com escopo controlado, parametrize para eliminar duplicação e mocks com pytest-mock para isolar dependências externas — tudo o que falta para sair do `assert 1 == 1` e ter uma suite que protege o código de verdade.

    Fecha o loop do artigo de injeção de dependência: o código ficou testável lá; agora está, de fato, testado.

    🔗 riverfount.dev.br/posts/pytest

    #python #pytest #testes #programação

  40. 10 900 тестов: Как мы обеспечиваем качество в PingZen, или Почему ваш мониторинг должен быть протестирован

    Мониторинг мониторинга - звучит как масло масляное, но именно этим мы постоянно занимаемся в PingZen . Ведь наш сервис должен быть надёжнее, чем объекты, которые он отслеживает. Если PingZen упадёт, кто сообщит о падении вашего сайта? Сегодня я залезу под капот тестирования PingZen и расскажу, как мы дошли до 10 900 автоматических тестов (5100 на бэкенде и 5812 на фронтенде). Все цифры и технологии - строго из нашего репозитория . Без хайпа, только факты, код и архитектурные решения.А статью подробнее про Pingzen можете посмотреть здесь

    habr.com/ru/articles/1006610/

    #системное_администрирование #мониторинг #мониторинг_сервера #мониторинг_сайта #devops #testing #python #pytest

  41. Here's a description of some nice features I didn't know about in #PyTest's parameterize() decorator. My favourite is how to avoid really long names for test cases.

    nedbatchelder.com/blog/202602/

    #python