Skip to main content

partest-atlas

Агент сбора для «Вехи» — карты системы, раскрашенной тестами.

Пакет снимает наблюдения на прогоне автотестов и рядом с ним, складывает их в версионированные JSON-артефакты и на этом останавливается. Выводы из артефактов делает сервер «Веха» — отдельная программа, которая этот пакет не импортирует и не требуется ему для работы.

PyPI: partest-atlas · Лицензия: MIT

pip install partest-atlas

Зачем разделено так

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

Сервер — тот, кто из наблюдений делает вывод: «в таблицу писал не API, а консьюмер, потому что между последним пишущим запросом теста и изменением прошло событие шины».

Поэтому агент открыт: он ходит в базу, шину и логи заказчика, и его должна иметь возможность прочитать служба безопасности. Защищать здесь нечего — ценность не в сборе.

Что внутри

partest_atlas/
  artifacts.py      контракт артефактов: version, kind, scope, атомарная запись
  collect/          сборщики: схема БД, эффекты в БД, шина, логи контейнеров,
                    контракт OpenAPI, требования из спецификаций, поток UI
  adapters/         доступ к чужим системам: db/ bus/ containers/ ci/ tests/ contract/
  plugins/          pytest-плагины (entry point pytest11), молчат без переменных окружения
  wrap.py           `atlas wrap -- <любая команда>` — снимки до и после чужого прогона

Три уровня внедрения

Уровень Что делает проект Что даёт
Обёртка atlas wrap -- <своя команда прогона> состояние до и после прогона; работает с любым раннером, включая не-Python
Агент ставит пакет, выставляет ATLAS_* наблюдения вокруг каждого теста (pytest)
Маркеры @pytest.mark.req(...), @pytest.mark.db_effects трассируемость требований и точный отбор тестов под замер

Плагины подключаются через pytest11 и молчат, пока не выставлена соответствующая переменная окружения — обычный прогон не платит за их присутствие ничего.

Раскладка артефактов

atlas/<система>/<контур>/db_schema.json
atlas/<система>/<контур>/ui_flow.json
...

Заголовок каждого файла несёт version, kind, scope и время сбора, поэтому потребитель может честно сказать «артефакт старого формата», а не упасть на отсутствующем поле.

Отношение к partest

partest-atlas зависит от partest и переиспользует её, а не дублирует: сопоставление URL с шаблоном OpenAPI (partest.path_match), разбор контракта, редактирование секретов (partest.redact), маркер тестовых данных, покрытие по методике. Обратной зависимости нет и не будет: partest про partest-atlas не знает.

Статус

Ранняя разработка. Код переносится из прототипа (src/atlas проекта-прародителя) по плану в документации сервера.

Metadata

Release files for partest-atlas 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for partest-atlas 0.1.0
File Size Uploaded
partest_atlas-0.1.0.tar.gz 76.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for partest-atlas 0.1.0
File Interpreter ABI Platform
partest_atlas-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 133.2 kB

Release files / partest_atlas-0.1.0.tar.gz

Download URL partest_atlas-0.1.0.tar.gz
Size 76.3 kB
Tags Source
SHA-256 checksum
How to use checksums
98fe1dc1f08fc06278de3def5fce02383c8e0461ad686f63a762974a9da95b09
BLAKE2b-256 checksum
How to use checksums
3ba9c8657487308430ea48388864832ce94f7374a440c15206dc6d4612a3caf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / partest_atlas-0.1.0-py3-none-any.whl

Download URL partest_atlas-0.1.0-py3-none-any.whl
Size 56.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
014e8764d55907e5389b1211a542ad36bbc0df8d3aa0d45f59f19613e978da09
BLAKE2b-256 checksum
How to use checksums
7b0c07fc2bcdf77853511b588aa0aa7e7a6f3ffbc943ea6492069b4cef42aba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page