Files
app-autotest/site/operations/service_list.py
T
naeel 0a62eb3c58 feat: селектор режима и стенда (v1.2.30)
Новое:
- Селектор режима (🎭 Эмуляция / ☁️ Облако) над версией
- Селектор стенда (DEV/TEST/PROD) в режиме эмуляции
- В эмуляции — всё в полигон (/stand/api/v1/svc)
- В эмуляции — токен дезактивирован
- По умолчанию: эмуляция + TEST

Изменено:
- auth.py: get_mode(), get_polygon_stand(), get_client() с префиксом стенда
- main.py: action=set_mode, единый get_client() вместо real_client/inst_client
- index.html: селекторы, disable токена
- service_list.py: обрезка polygon_ префикса
- api_test.py: get_real_client → get_client

Задокументировано в HISTORY/2026-08-03-session.md.
2026-08-03 08:50:14 +04:00

60 lines
2.6 KiB
Python
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.
"""
Чтение списка разрешённых сервисов из services_{stand}.txt.
Зачем: не все сервисы должны быть доступны для тестирования.
Файл services_test.txt (или services_dev.txt) содержит только те сервисы,
которые настроены и готовы к автотестам.
Формат файла:
# Комментарий
1 dummy # Болванка
21 vdc # Virtual Data Center
Закомментированные (#) строки исключаются.
Пустые строки игнорируются.
Первое слово в строке — service_id (число).
Файл лежит в site/config/, пушится с кодом, деплоится вместе с приложением.
При изменении списка: edit → commit → push → redeploy.
"""
import os
import re
# Путь к папке config относительно этого файла:
# service_list.py → site/operations/
# dirname → site/operations
# dirname(dirname) → site
# + "config" → site/config
_CONFIG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "config")
def load_service_ids(stand="test"):
"""Вернуть set разрешённых service_id для указанного стенда.
Args:
stand: str — "dev", "test", или "polygon_test" (с префиксом эмуляции).
Returns:
set[int] — множество service_id. Пустой set если файла нет → показываем все."""
# Обрезать префикс "polygon_" если есть → "polygon_test" → "test"
if stand.startswith("polygon_"):
stand = stand[len("polygon_"):]
path = os.path.join(_CONFIG_DIR, f"services_{stand}.txt")
ids = set()
try:
with open(path) as f:
for line in f:
line = line.strip()
# Пропускаем пустые строки и комментарии
if not line or line.startswith("#"):
continue
# Формат: "1 dummy # Болванка"
# Берём первое слово, проверяем что это число
parts = line.split()
if parts and parts[0].isdigit():
ids.add(int(parts[0]))
except FileNotFoundError:
pass # файла нет — возвращаем пустой set → показываем все сервисы
return ids