lizerk 2ef43e7177 Feature: Add code quality audit tools and safe helpers
- Created CODE_QUALITY_CHECKLIST.md with comprehensive guide
- Added audit_code_patterns.sh for automated code scanning
- Created common/request_utils.py with safe_int(), safe_bool(), etc.
- Fixed unsafe request.data access in notifications/api/views.py
- Updated ldap_password_mixin.py docstring with safe example

Audit found and documented:
- 10 unsafe request.data['key'] accesses
- 8+ unsafe int() conversions without try/except
- Multiple .strip() calls without None checks
2026-03-20 09:06:55 +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. Очистка: Удаляйте устаревшие скрипты после интеграции в тесты

🔗 См. также