Files
fgl-aircon/scripts/py-ci.sh
T
petr.polezhaev da01c607a6 ha(H2): исправления по ревью — несколько устройств, suggested values, YAML-import, типы ошибок
- critical: listen_port по умолчанию 0 (эфемерный) — несколько ConfigEntry
  не конфликтуют; тест двух записей на дефолтном порту
- manifest: добавлен обязательный ключ codeowners
- unload: set_log_handler(None) вынесен в executor (не блокирует loop);
  рефкаунт лог-пампа без гонки (старт после успешного setup)
- config flow: возврат введённого в форму при ошибке
  (add_suggested_values_to_schema; секреты исключены), YAML-import подключён
  через async_setup + SOURCE_IMPORT, ProvisionError.kind вместо разбора
  русского текста, валидация device_port/key_id из JSON
- trial: требует получения всех базовых свойств шаблона (не пустой ok),
  безопасное создание Session
- py-ci.sh: отсутствие .venv-ha — ошибка (PY_CI_SKIP_HA=1 для пропуска);
  pytest.ini testpaths
2026-09-29 12:20:37 +03:00

40 lines
1.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# CI python-части репозитория: pyfglair + HA-компонент.
# scripts/py-ci.sh --setup # venv для pyfglair-тестов
# scripts/py-ci.sh --setup-ha # venv с homeassistant/pytest-плагином (тяжёлый)
# scripts/py-ci.sh # pytest: tests/pyfglair + tests/components (если есть venv)
set -euo pipefail
cd "$(dirname "$0")/.."
VENV="${PY_VENV:-.venv}"
HA_VENV="${HA_VENV:-.venv-ha}"
case "${1:-}" in
--setup)
python3 -m venv "$VENV"
"$VENV/bin/pip" install -q --upgrade pip
"$VENV/bin/pip" install -q cffi aiohttp pytest pytest-asyncio
;;
--setup-ha)
python3 -m venv "$HA_VENV"
"$HA_VENV/bin/pip" install -q --upgrade pip
"$HA_VENV/bin/pip" install -q -r tests/components/requirements.txt
;;
esac
if [ ! -x "$VENV/bin/python" ]; then
echo "py-ci: нет $VENV (запустите: scripts/py-ci.sh --setup)" >&2
exit 1
fi
"$VENV/bin/python" -m pytest tests/pyfglair -q
if [ -x "$HA_VENV/bin/python" ]; then
"$HA_VENV/bin/python" -m pytest tests/components -q
elif [ "${PY_CI_SKIP_HA:-0}" = "1" ]; then
echo "py-ci: HA-тесты пропущены (PY_CI_SKIP_HA=1)"
else
echo "py-ci: нет $HA_VENV — запустите scripts/py-ci.sh --setup-ha" >&2
exit 1
fi