igor_nadein dfe98244e8 feat(tools): добавление инструмента анализа DB запросов и package-lock
- backend/scripts/analyze_queries.py - автоматизированный анализ запросов
  * count_queries context manager для подсчета запросов
  * Тестирование ViewSet'ов с разными методами (list, retrieve, create)
  * Детальный вывод с количеством запросов на эндпоинт
  * Утилита для выявления N+1 проблем

- backend/package-lock.json - зафиксированы версии npm пакетов
  * sass@1.93.3 для компиляции CSS
  * Гарантирует идентичные сборки на разных машинах
2026-02-17 18:34:16 +03:00
..

Backend Scripts

Вспомогательные скрипты для разработки, тестирования и диагностики.

📁 Структура

manual_tests/

22 скрипта - Ручные тесты для быстрой проверки функционала

Запуск из корня backend:

.venv/Scripts/python scripts/manual_tests/test_ldap_simple.py

diagnostic/

8 скриптов - Диагностика и проверка состояния системы

.venv/Scripts/python scripts/diagnostic/check_ldap_user.py
.venv/Scripts/python scripts/diagnostic/check_chat_access.py

utils/

6 утилит - Генерация тестовых данных и анализ

.venv/Scripts/python scripts/utils/create_test_data.py
.venv/Scripts/python scripts/utils/generate_notification.py

ldap/

Shell скрипты - Тестирование LDAP сервера

bash scripts/ldap/ldap-test.sh

🎯 Использование

Важно!

Всегда используйте виртуальное окружение при запуске скриптов:

# Полный путь к Python
.venv/Scripts/python scripts/manual_tests/test_*.py

# Или активируйте venv
source .venv/Scripts/activate  # Linux/Mac
.venv\Scripts\activate         # Windows
python scripts/manual_tests/test_*.py

Django management команды

Для доступа к Django ORM в скриптах используйте:

import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eusrr_backend.settings')
django.setup()

📝 Рекомендации

  1. Именование: Используйте понятные префиксы

    • test_* - тестовые скрипты
    • check_* - проверки
    • create_* - генераторы
    • analyze_* - анализ
  2. Документация: Добавляйте docstring в начало каждого скрипта

  3. Аргументы: Используйте argparse для параметров

  4. Очистка: Удаляйте устаревшие скрипты после интеграции в тесты

🔗 См. также