AudionAudion

Smoke-Test Checklist

SMOKE_TEST_RU.md

Smoke-Test Checklist

Содержание

Audion DevOps Tools Specific

После изменений в этом проекте дополнительно проверить:

Быстрая проверка WSL provider:

runtime\python.exe -c "from pathlib import Path; import sys; sys.path.insert(0, str(Path.cwd())); import system_core.services.devops_tools as d; print(d.wsl_online_distro_options(Path.cwd())[:8])"

Runtime Imports

runtime\python.exe -c "import nicegui, webview, yaml, rich; print('OK GUI imports')"

Если проекта ещё нет в portable runtime, используйте системный Python 3.12.

Pytest

runtime\python.exe -m pytest -q

Ожидается: 36 passed, без skipped при включённом Windows Developer Mode. Два symlink-теста проверяют, что cleaner не следует по ссылке за пределы workspace и отказывается чистить workspace, который сам является ссылкой. На Windows без права создания symlink только эти проверки пропускаются с явным WinError 1314.

Maintenance Scripts

init_folders.cmd
cleanup_project.cmd /DRYRUN /Y
cleanup_project.cmd /BACKUP /DRYRUN

Ожидается: init_folders выходит с кодом 0, cleaner в dry-run показывает очистку generated/downloaded зон проекта (runtime, wheelhouse, release, install\download, system_core\powershell, fzf.exe, logs/report/workspace/output/input/data/backup). Папки и .gitkeep восстанавливаются. /BACKUP /DRYRUN показывает более узкий план очистки только backup-снимков и требует отдельный Y/N/Q при реальном запуске.

Module Launchers

Короткая проверка меню без запуска тяжёлых операций:

"0" | cmd /d /c launcher_project.cmd
"0" | cmd /d /c launcher_project_ru.cmd
"0" | cmd /d /c cli\launcher_wsl.cmd
"0" | cmd /d /c cli\launcher_bitrix.cmd
"0" | cmd /d /c cli\launcher_default_apps.cmd
"0" | cmd /d /c cli\launcher_association_defense.cmd
"0" | cmd /d /c cli\launcher_hardware.cmd
"0" | cmd /d /c cli\launcher_docs_pdf.cmd --dry-run

Ожидается: меню открывается, кириллица читаемая, выход по 0 без ошибки. cli\launcher_wsl.cmd, cli\launcher_bitrix.cmd и cli\launcher_default_apps.cmd должны вызывать manifest-операции через system_core\cli_operation.py, а не копировать сервисную логику. cli\launcher_docs_pdf.cmd --dry-run должен показать план PDF без записи файлов.

Отдельно проверить руками, потому что эти wrappers передают управление Nuke.cmd с UAC elevation:

cli\launcher_codex_nuke.cmd
cli\launcher_python_nuke.cmd

Ожидается: открывается меню встроенного tools\...\Nuke.cmd; destructive modes всё ещё требуют typed confirmation.

Syntax

runtime\python.exe -m py_compile system_core\ui_nicegui\app.py system_core\ui_nicegui\window.py

CMD Encoding

Все .cmd должны быть:

UTF-8 without BOM + CRLF

ВАЖНО: ВСЕ .CMD ФАЙЛЫ ОБЯЗАТЕЛЬНО UTF-8 БЕЗ BOM И СТРОГО CRLF.

LF-only .cmd перед релизом исправить. После любого patch/edit проверять BOM=False и LoneLF=0.

Штатная проверка/ремонт для проекта:

install\Check-CmdEncoding.cmd -Fix

Эта же проверка встроена в portable build, offline install, verify и release archive gate.

NiceGUI Smoke

runtime\python.exe system_core\ui_nicegui\app.py --smoke

Ожидается строка OK nicegui shell.

Эта проверка также вызывается из:

install\verify_portable_env.cmd

если system_core\ui_nicegui\app.py существует.

Server Check

Запустите на свободном тестовом порту:

runtime\python.exe system_core\ui_nicegui\app.py --host 127.0.0.1 --port 8099 --no-browser

Проверьте http://127.0.0.1:8099/.

Window Check

launcher_gui.cmd

Ожидается UAC-запрос, затем отдельное desktop-окно pywebview уже в elevated-контексте. Браузер не должен открываться сам.

Read-only/debug запуск без UAC:

set AUDION_GUI_NO_ELEVATE=1
launcher_gui.cmd

Ожидаемый стартовый размер окна: 1600x900. Минимальный размер около 1180x720.

Picker Check

Проверьте:

Layout Check

На WUXGA 1920x1200 с Windows scale 150%:

На FullHD/4K:

Visual Smoke Screenshots

После заметных GUI/layout-правок сохраняйте smoke-скриншоты в проектной зоне отчётов, например:

report\gui_smoke_screenshots\

Минимальный набор:

Цель не в красивом альбоме, а в том, чтобы портирование ловило реальные UI-регрессии: не помещающиеся dropdown, слишком яркие рамки, дублирующие controls, ранний перенос в одну колонку, лишний scroll и невидимый финальный статус.

Nested Menu And Fields Check

Если проект использует operation_groups и fields:

PowerShell / CLI Window Check

Если проект вызывает pwsh.exe, powershell.exe, Office COM helpers, ffmpeg или другой дочерний CLI:

NiceGUI ProcessPool Fallback

В закрытых portable/sandbox окружениях NiceGUI может не создать multiprocessing process pool. GUI должен стартовать всё равно, если проект использует только обычные GUI-задачи и run.io_bound.

Проверка считается успешной, если runtime\python.exe system_core\ui_nicegui\app.py --smoke проходит, а серверный запуск не падает на PermissionError / WinError 5.

Для native picker dialogs PowerShell ищется в таком порядке:

  1. system_core\powershell\pwsh.exe
  2. pwsh.exe из PATH
  3. встроенный powershell.exe

Наличие хотя бы одного варианта видно в секции [GUI portability] команды:

runtime\python.exe system_core\doctor.py
All projects