igor_nadein ad8208789f feat: add LDAP testing infrastructure
- Add LDAP docker container structure (01-base-structure.ldif)
- Add .env.test with LDAP configuration for tests
- Create tests/ldap_fixtures.py with LDAP-specific fixtures
- Create tests/api/v1/employees/test_helpers.py with centralized helpers
- Add LDAP markers to pytest.ini (ldap_required, ldap_optional)
- Add comprehensive LDAP testing documentation
- Fix test_department_head_rights.py to use centralized helpers

New fixtures:
- ldap_available: checks if LDAP server is accessible
- ldap_config: returns LDAP configuration
- ensure_ldap_enabled/disabled: force LDAP state for test
- ldap_cleanup: auto-cleanup LDAP entries after test

New helpers:
- make_user(): centralized user creation
- grant_permission(): permission assignment
- make_department/position/role(): entity creation
- extract_results(): paginated response helper

Infrastructure:
- OU=Users, OU=Departments, OU=Groups, OU=Positions, OU=Dismissed
- Test groups: Developers, Managers
- Test departments: IT, HR
2026-02-16 17:31:48 +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. Очистка: Удаляйте устаревшие скрипты после интеграции в тесты

🔗 См. также