- 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
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()
📝 Рекомендации
-
Именование: Используйте понятные префиксы
test_*- тестовые скриптыcheck_*- проверкиcreate_*- генераторыanalyze_*- анализ
-
Документация: Добавляйте docstring в начало каждого скрипта
-
Аргументы: Используйте argparse для параметров
-
Очистка: Удаляйте устаревшие скрипты после интеграции в тесты
🔗 См. также
- backend/tests/ - Официальные unit/integration тесты
- backend/docs/testing/ - Документация по тестированию