Справаздача праверак · 2026-10-24¶
Лакальная справаздача да выпуску
Тут зафіксаваныя праверкі да адкрытага выпуску. Версія 0.3.0a1 ужо даступная ў PyPI; наступныя аддаленыя вынікі глядзіце ў GitHub Actions.
Асяроддзе і вынікі¶
Пакет 0.3.0a1. macOS arm64, Python 3.13.7, Django 6.0.4, SQLite, Node 22.19.0, npm 10.9.3. Залежнасці frontend зафіксаваныя ў frontend/package-lock.json. Браўзерныя тэсты выкарыстоўвалі мясцовы Chromium праз MODELSHEET_CHROMIUM і лакальны Django-сервер Playwright.
| Праверка | Вынік |
|---|---|
| pytest: сервер, формулы, правы, транзакцыі | 102 паспяховыя |
| Vitest: буфер і формулы | 57 паспяховых |
| Playwright: браўзерныя сцэнары | 10 паспяховых |
| TypeScript, Vite, Ruff, Django checks | Паспяхова |
| Адсутныя міграцыі | Змен няма |
| Зборка wheel/sdist, метаданыя twine | Паспяхова |
| Усталяванне wheel па-за шляхам імпарту рэпазіторыя | Паспяхова |
| migrate/collectstatic усталяванага пакета | Паспяхова без Node.js |
| Шаблоны, статыка, ліцэнзіі залежнасцей | Прысутнічаюць |
| Змест sdist | Без node_modules і браўзерных справаздач |
Smoke test стварае новае віртуальнае асяроддзе з доступам да сістэмных залежнасцей, усталёўвае wheel без іх развязання і запускаецца па-за рэпазіторыем з асобнымі БД і settings. Гэта праверка змесціва і інтэграцыі, а не новай загрузкі Django з індэкса.
Браўзерныя праверкі ахопліваюць формулы, адмену/паўтор/захаванне/перазагрузку, устаўку ў read-only, прагляд і пацвярджэнне, захаванне буфера пасля памылкі, старонкі і пошук Admin, віртуалізацыю 50 калонак, клавіятуру, серверны парадак, Ctrl+D і адхіленне пазіцыйнай устаўкі пасля змены віду.
Серверныя тэсты ахопліваюць абыход правоў, схаваныя палі і гісторыю, read-only аўдыт Admin, канфлікты са стандартным Admin, атамарны адкат, асобныя канкурэнтныя злучэнні, дублікаты ключоў, фіксаваны набор кандыдатаў, залежнасці, адмену/працяг фону, дублі дастаўкі, частковы вынік і адкліканне правоў паміж порцыямі.
Вымярэнні¶
Часовая SQLite БД мае 50 скалярных калонак і вокны па 200 радкоў. Кожны сцэнар вымяраўся 10 разоў. Затрымка ўключае захаванне здымка і дакладны падлік, але не HTTP/браўзер. Гэта лакальныя назіранні, не агульная гарантыя. Запускі не былі ізаляваныя ад іншай распрацоўкі; даныя CPU/RAM не былі даступныя праз sandbox.
| Даныя / аперацыя | Медыяна | p95 |
|---|---|---|
| 100k / першая старонка | 29.94 ms | 40.70 ms |
| 100k / пятая старонка | 33.75 ms | 40.94 ms |
| 100k / дакладны індэксны фільтр | 2.99 ms | 4.80 ms |
| 100k / пошук падрадка | 46.60 ms | 57.19 ms |
| 1M / першая старонка | 36.07 ms | 300.50 ms |
| 1M / пятая старонка | 37.32 ms | 60.13 ms |
| 1M / дакладны індэксны фільтр | 2.15 ms | 3.37 ms |
| 1M / пошук падрадка | 377.84 ms | 442.33 ms |
Кожны выклік рабіў 4 SQL-запыты. Зыходныя вынікі: 100k, 1M. Узнаўленне: тэсты прадукцыйнасці.
Што не праверана ў гэтым лакальным запуску¶
PostgreSQL/MySQL/Docker лакальна адсутнічалі. Іншыя спалучэнні Python/Django настроеныя ў CI; правярайце фактычны вынік запуску. Першая праверка назвы PyPI сутыкнулася з сертыфікатамі/сеткай і нічога не рэзервавала. На момант справаздачы загрузкі ў PyPI/TestPyPI і аддаленага CI яшчэ не было; пазней адкрыты выпуск у PyPI адбыўся, гл. заўвагу ўверсе. Для першай версіі немагчыма праверыць абнаўленне з папярэдняй. Гл. публікацыю.