Существуют стандартные способы временно отключать отдельные тесты, например, с помощью декоратора pytest.mark.skip. Этот плагин добавляет новый способ сделать это, расширяя стандартные функции pytest. Теперь вы можете поместить имена отключенных тестов в отдельный файл, а затем корректировать и дополнять их, не заходя в исходный код тестов.
А вы знаете, что такое pytest? Используете ли его в своих проектах? Задавайте вопросы или поделитесь своим опытом в комментариях!
https://github.com/pomponchik/antitesting
#Python #Pytest #Тестирование #Программирование #Советы
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pomponchik/antitesting: A Pytest plugin that allows you to describe disabled tests in one or more files
A Pytest plugin that allows you to describe disabled tests in one or more files - pomponchik/antitesting
🔥7👍1
#pytest #python #unittest #testing #devtools #pytest_order #automation #qa #ordering #order
https://github.com/pytest-dev/pytest-order
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pytest-dev/pytest-order: pytest plugin that allows to customize the test execution order
pytest plugin that allows to customize the test execution order - pytest-dev/pytest-order
👍4 2⚡1
Pylint-pytest — удобный плагин для подавления ложных срабатываний Pylint, связанных с pytest. Позволяет избежать предупреждений, таких как неиспользуемые аргументы в фикстурах, повторное определение имен и многое другое.
#Pylint #Pytest #Python #CodeQuality #Automation
https://github.com/pylint-dev/pylint-pytest
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pylint-dev/pylint-pytest: A Pylint plugin to suppress pytest-related false positives.
A Pylint plugin to suppress pytest-related false positives. - pylint-dev/pylint-pytest
🔥6👍4
cookiecutter-uv - это шаблон, который можно использовать для инициализации Python проекта с необходимыми инструментами для разработки, тестирования и деплоя.
#Python #Cookiecutter #GitHubActions #PreCommit #Ruff #Mypy #Pytest #Docker #MkDocs #VSCode #ToxUV #PyPI
https://github.com/fpgmaas/cookiecutter-uv
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - osprey-oss/cookiecutter-uv: A modern cookiecutter template for Python projects that use uv for dependency management
A modern cookiecutter template for Python projects that use uv for dependency management - osprey-oss/cookiecutter-uv
🔥5👍3
pytest-metadata — плагин для pytest, который упрощает работу с метаданными тестовой сессии.
#pytest #pytest_plugins #Python #testautomation #devtools
https://github.com/pytest-dev/pytest-metadata
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - pytest-dev/pytest-metadata: Plugin for accessing test session metadata
Plugin for accessing test session metadata. Contribute to pytest-dev/pytest-metadata development by creating an account on GitHub.
1🔥3👍2
IntentGuard — это библиотека Python для проверки свойств кода с помощью утверждений на естественном языке. Она интегрируется с pytest и unittest, позволяя формулировать сложные ожидания к коду без лишнего шаблонного кода.
#Python #Testing #IntentGuard #pytest #unittest #AI #NaturalLanguage
https://github.com/kdunee/intentguard
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - kdunee/intentguard: A Python library for verifying code properties using natural language assertions.
A Python library for verifying code properties using natural language assertions. - kdunee/intentguard
2🔥3👍1
coredumpy — это легковесная библиотека и инструмент для пост-мортем отладки Python-программ, которая сохраняет дамп состояния приложения при возникновении ошибок, исключений или падений тестов.
Сохраняет всё окружение в момент сбоя — стек вызовов, переменные, объекты и даже данные из многопоточных контекстов — в безопасный и читаемый JSON-файл. Позволяет потом «воспроизвести» это состояние в отладчике (pdb, ipdb, VSCode и др.).
#Python #Debugging #CrashDump #PostMortem #coredumpy #DevTools #pytest #unittest #VSCode #PythonTools #ErrorTracking #OpenSource #PythonDev
https://github.com/gaogaotiantian/coredumpy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - gaogaotiantian/coredumpy: coredumpy saves your crash site for post-mortem debugging
coredumpy saves your crash site for post-mortem debugging - gaogaotiantian/coredumpy
1👎3🔥3👍1
Plain — веб-фреймворк на Python, созданный для продуктовых команд: минимализм, читаемость, гибкость.
#Python #WebFramework #PlainFramework #HTMX #TailwindCSS #MinimalPython #FullStackPython #WebDev #Backend #Frontend #OpenSource #ORM #Middleware #Jinja2 #Pytest #OAuth #ProductivityTools #PythonWebDev
https://github.com/dropseed/plain
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - dropseed/plain: The Python web framework for building apps.
The Python web framework for building apps. Contribute to dropseed/plain development by creating an account on GitHub.
1👍2🔥2
Patito — это Python-библиотека, которая объединяет возможности Pydantic и Polars для удобной, строгой и типизированной работы с датафреймами.
Хочешь валидировать датафреймы так же удобно, как Pydantic-модели? Patito позволяет описывать схему данных с помощью аннотаций типов, генерировать валидные тестовые данные и легко превращать строки таблицы в полноценные Python-объекты.
#python #patito #pydantic #polars #датасайенс #типизация #валидация #pytest #данные #тестирование
https://github.com/JakobGM/patito
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - JakobGM/patito: A data modelling layer built on top of polars and pydantic
A data modelling layer built on top of polars and pydantic - JakobGM/patito
1👍2🔥1🤔1
pytest-testmon — плагин для Pytest, который повторно запускает только тесты, затронутые последними изменениями в коде.
pip install pytest-testmon.#Python #pytest #testmon #CI #unittesting #DevTools #TestOptimization #SoftwareTesting #Automation #OpenSource
https://github.com/tarpas/pytest-testmon
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - tarpas/pytest-testmon: Selects tests affected by changed files. Executes the right tests first. Continuous test runner…
Selects tests affected by changed files. Executes the right tests first. Continuous test runner when used with pytest-watch. - tarpas/pytest-testmon
2🔥3👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Pythontest
Top pytest Plugins | PythonTest
This is intended to find the most popular (as determined by download count) pytest plugins, as plugins usually have “pytest” in the name.
Counts are the number of downloads over 30 days.
The list
Data last updated: 2025-05-01 06:34:33
…
Counts are the number of downloads over 30 days.
The list
Data last updated: 2025-05-01 06:34:33
…
1 4👍3🔥2
Code Spy — это инструмент для Python-разработчиков, который следит за изменениями в вашем проекте и автоматически запускает нужные проверки и задачи.
Представьте: вы сохраняете файл — а Code Spy сам запускает MyPy, Pylint, Pytest, Black или даже перезапускает dev-сервер. Вам не нужно переключаться в терминал, вручную запускать команды или следить, что что-то забыли проверить. Всё происходит автоматически.
Вы просто указываете путь к проекту, настраиваете задачи — и Code Spy начинает «шпионить» за файлами, реагируя на любые изменения.
#Python #CodeSpy #Automation #DevTools #Pytest #Pylint #MyPy #Black #Flask #CodeQuality
https://github.com/joegasewicz/code-spy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - joegasewicz/code-spy: Watches for file changes & runs tasks against your Python code.
Watches for file changes & runs tasks against your Python code. - joegasewicz/code-spy
1⚡3 2 2
Tryke - это современный фреймворк для тестирования в Python, который делает написание тестов более структурированным и интуитивно понятным.
Если в Python вам всегда не хватало красивого BDD-стиля (как в Jest или RSpec) с их вложенными блоками
describe, то Tryke создан именно для вас!with t.describe("имя_группы"):.Annotated[..., t.Depends(...)]). Поддерживается кеширование на уровне модуля или отдельного блока describe (per="scope").t.expect(actual, "описание").to_equal(expected) делает отчеты об ошибках в консоли максимально понятными.async def.tryke test --watch) для запуска тестов на лету при сохранении кода, а также запуск только для измененных файлов (--changed).Авторы подготовили не только классическую шпаргалку по миграции, но и специальный готовый LLM-промпт. Вы можете просто скормить его своему ИИ-ассистенту (Cursor, Copilot и т.д.), и он поэтапно, с проверками перепишет ваши тесты с
pytest на Tryke.Если у вас есть
uv, достаточно выполнить:uvx tryke testПример синтаксиса:
import tryke as t
with t.describe("users"):
@t.test("stores a new user")
async def test_set(users: ...):
users["bob"] = "bob@example.com"
t.expect(users["bob"], "stores email").to_equal("bob@example.com")
#Python #Testing #Tryke #QA #DevTools #Backend #Pytest #OpenSource #Programming
https://github.com/thejchap/tryke
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - thejchap/tryke: A Rust-based Python test runner with a Jest-style API
A Rust-based Python test runner with a Jest-style API - thejchap/tryke
1🔥3 3👍1
Pytest-fly — это мощный инструмент для разработки, отладки и запуска сложных тестовых наборов на pytest. GUI с 6 вкладками в реальном времени мониторит выполнение тестов, параллелизм и ресурсы.
системные метрики (CPU/RAM/IO), failed тесты, live output.
pip install pytest-fly
pytest --fly # или pytest-fly
#pytest #pytestfly #PythonTesting #TestAutomation #TDD #CI_CD #DevOps #PythonTools
https://github.com/jamesabel/pytest-fly
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - jamesabel/pytest-fly: pytest observer
pytest observer. Contribute to jamesabel/pytest-fly development by creating an account on GitHub.
1⚡2👍2 2
Postman2pytest. — это инструмент, который позволяет конвертировать JSON-файлы из Postman (коллекции v2.1) в готовые для запуска тесты
pytest. И всё это одной командой!Часто коллекции Postman служат отличной документацией для вашего API. Утилита
postman2pytest превращает эту "документацию" в исполняемые регрессионные тесты на Python, которые легко встраиваются в CI/CD. Больше не нужно переписывать тесты вручную — вы избавляетесь от рутины и рассинхрона между доками и кодом.pm.response.to.have.status(200).def test_users_post_create_user()).--filter-folder).{{base_url}} автоматически преобразуются в f-строки и подхватываются через переменные окружения (например, BASE_URL).pip install postman2pytestpostman2pytest \
--collection data/my_api.postman_collection.json \
--out generated_tests/test_api.py
# Запуск сгенерированных тестов
BASE_URL=https://staging.example.com pytest generated_tests/test_api.py -v
form-data и не читает Pre-request скрипты (например, автоматическое получение токенов OAuth придется завернуть в фикстуру pytest руками). Развитие проекта продолжается, и многие из этих пунктов уже в Roadmap.#Python #Testing #QA #Postman #Pytest #API #DevTools #Backend #Automation
https://github.com/golikovichev/postman2pytest
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - golikovichev/postman2pytest: Convert Postman Collection v2.1 JSON into executable pytest test suites
Convert Postman Collection v2.1 JSON into executable pytest test suites - golikovichev/postman2pytest
1⚡2👍2🔥2
Tia - это инструмент анализа влияния тестов (Test Impact Analysis) для
pytest, который позволяет запускать только те тесты, на которые действительно повлияли ваши изменения в коде.Зачем тратить драгоценное время CI-пайплайнов на прогон сотен тестов, которые физически не могли сломаться от вашей правки?
Tia один раз собирает карту покрытия, а затем с помощью git diff вычисляет и запускает строго минимальный набор тестов. Эту же концепцию оптимизации используют внутри себя такие гиганты, как Google и Meta.Главный грех подобных утилит — случайно пропустить тест, который на самом деле должен был упасть. Разработчики
tia подошли к вопросу жестко:boltons) реальный показатель пропуска достигает 96%!black или добавление докстрингов, tia поймет через сравнение AST-деревьев, что рантайм-код не изменился, и пропустит 99%+ тестов.if TYPE_CHECKING: не запускают тесты зря. Но если вы измените тип поля в Pydantic или dataclass (что влияет на логику работы), утилита это честно отловит.tia record — запускает полную кодовую базу и строит карту на уровне конкретных методов и функций {тест -> {файл -> функции}}, сохраняя её в .tia/map.json. Благодаря системным аудит-хукам утилита запоминает даже не-Python файлы (фикстуры, шаблоны, конфиги), которые читал тест.tia run — анализирует текущий git diff, сопоставляет измененные строки с функциями и на основе 4 правил (попадание в функцию, изменение модуля, дата-зависимость и появление нового теста) отправляет в pytest только целевой набор.Карту тестов, собранную на базовой ветке, можно легко передавать в задачи пул-реквестов.
tia поддерживает работу с удаленными хранилищами из коробки:tia serve) без внешних зависимостей.s3://) и Google Cloud Storage (gs://).$GITHUB_STEP_SUMMARY) с детальной таблицей: что изменилось и почему были выбраны именно эти тесты.pip install -e .
tia record # Строим карту (запуск из корня репозитория)
tia run # Запускаем только затронутые тесты
tia run --since main # Сравниваем изменения относительно ветки main
#Python #Pytest #Testing #QA #Automation #CI #CD #DevOps #Optimization #OpenSource
https://github.com/breadMSA/pytest-tia
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - breadMSA/pytest-tia: Test Impact Analysis for pytest: run only the tests your change actually affects. Method-level, tracks…
Test Impact Analysis for pytest: run only the tests your change actually affects. Method-level, tracks non-.py deps, CI-ready, and honest about its limits. - breadMSA/pytest-tia
1🔥2 2👍1
Pytest-leak-finder - это плагин для
pytest, который помогает быстро найти конкретный тест, загрязняющий общее состояние и ломающий последующие тесты в сьюте.Знакома ситуация, когда тест стабильно падает при общем прогоне набора, но проходит без единой ошибки при изолированном запуске (
pytest -v --lf)? Причина почти всегда в том, что один из предыдущих тестов оставил за собой «мусор» (неочищенный стейт, глобальную переменную или незакрытый ресурс). Но как найти виновника, если тестов сотни?Плагин автоматизирует поиск с помощью бинарного поиска (бисекции) — по аналогии с алгоритмом
git bisect:--leak-finder упавший тест автоматически помечается как target.Запуск поиска:
pytest -v --leak-finder demo/test_demo.py
После нескольких быстрых шагов бисекции плагин выдаст точный вердикт:
======================= Leak finder =======================
We found a leak!
Leak found in: tests/test_demo.py::test3
#Python #Pytest #Testing #QA #Automation #Debugging #DevTools #OpenSource
https://github.com/mgaitan/pytest-leak-finder
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mgaitan/pytest-leak-finder: Find the test that's leaking before the one that fails
Find the test that's leaking before the one that fails - mgaitan/pytest-leak-finder
1⚡2🔥2 1
Vcrpy - это библиотека для Python (порт популярного инструмента VCR из экосистемы Ruby), которая упрощает и многократно ускоряет тестирование кода, завязанного на сетевые HTTP-запросы.
Вместо того чтобы вручную мокать каждый эндпоинт сторонних API, VCR.py использует концепцию «кассет» (cassettes): при первом запуске теста библиотека перехватывает реальные HTTP-запросы и сериализует их вместе с ответами в локальный YAML-файл. При последующих прогонах реальные сетевые вызовы больше не происходят — VCR.py мгновенно воспроизводит сохраненные ответы из файла.
С использованием контекстного менеджера:
import urllib.request
import vcr
# Запросы внутри блока запишутся в файл cassettes/example.yaml
with vcr.use_cassette('cassettes/example.yaml'):
response = urllib.request.urlopen('http://httpbin.org/get').read()
assert b'origin' in response
В виде декоратора:
import vcr
import requests
@vcr.use_cassette('cassettes/users.yaml')
def test_users_api():
response = requests.get('https://api.example.com/users')
assert response.status_code == 200
assert len(response.json()) > 0
Совет для Pytest: Для максимально удобной работы в связке с pytest существует официальный плагин pytest-recording, позволяющий использовать маркер
@pytest.mark.vcr и флаги --record-mode .
pip install vcrpy
#Python #Testing #QA #Pytest #VCR #VCRpy #Mocking #API #DevTools #OpenSource #Backend
https://github.com/kevin1024/vcrpy
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - kevin1024/vcrpy: Automatically mock your HTTP interactions to simplify and speed up testing
Automatically mock your HTTP interactions to simplify and speed up testing - kevin1024/vcrpy
DeployProof - это инструмент командной строки (CLI) для Python, предназначенный для верификации кода (в том числе сгенерированного ИИ) с помощью молниеносного мутационного тестирования AST прямо в оперативной памяти.
Нейросети вроде Copilot или ChatGPT легко генерируют тесты со 100% покрытием строк (line coverage), которые при этом не проверяют реальную логику и граничные условия: мутационный скор у такого сьюта часто близок к нулю. DeployProof решает эту проблему прямо перед коммитом или пушем в CI.
🧬 В чем отличие от Mutmut и Cosmic Ray?
git diff. Проверка отрабатывает за пару секунд — буквально пока вы переключаете вкладку.>=, ==, and, or), константы, граничные значения строк, меняет аргументы местами и убирает await без перезаписи файлов на диске.--heal-tests анализирует выживших мутантов и автоматически синтезирует готовые к запуску pytest-кейсы, закрывающие обнаруженные дыры в логике.shell=True, небезопасную десериализацию (pickle, yaml.load) и обход путей.# Проверка изменений в git diff перед пушем
deployproof check
# Автоматическая генерация тестов под выжившие мутации
deployproof check --heal-tests
# Установка pre-push хука в один клик
deployproof init
pip install deployproof
# или изолированно через pipx:
pipx install deployproof
#Python #DeployProof #MutationTesting #Testing #QA #Pytest #AICode #DevTools #OpenSource #AppSec #CICD
https://github.com/SVSPraveen/deployproof
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - SVSPraveen/deployproof: Deterministic pre-push verification for AI-assisted codebases: AST mutation testing, credential…
Deterministic pre-push verification for AI-assisted codebases: AST mutation testing, credential scanning, sandbox-escape detection, mock-usage alerts, and dependency hallucination defense. - SVSPra...