mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-04-03 16:51:26 +00:00
67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
"""
|
|
Settings de test pour l'exécution des tests unitaires Django.
|
|
Utilise la base PostgreSQL du docker-compose (ArrayField non supporté par SQLite).
|
|
Redis et Celery sont désactivés.
|
|
"""
|
|
import os
|
|
os.environ.setdefault('SECRET_KEY', 'django-insecure-test-secret-key-for-unit-tests-only')
|
|
os.environ.setdefault('WEBHOOK_API_KEY', 'test-webhook-api-key-for-unit-tests-only')
|
|
os.environ.setdefault('DJANGO_DEBUG', 'True')
|
|
|
|
from N3wtSchool.settings import * # noqa: F401, F403
|
|
|
|
# Base de données PostgreSQL dédiée aux tests (isolée de la base de prod)
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.postgresql',
|
|
'NAME': 'school_test',
|
|
'USER': os.environ.get('DB_USER', 'postgres'),
|
|
'PASSWORD': os.environ.get('DB_PASSWORD', 'postgres'),
|
|
'HOST': os.environ.get('DB_HOST', 'database'),
|
|
'PORT': os.environ.get('DB_PORT', '5432'),
|
|
'TEST': {
|
|
'NAME': 'school_test',
|
|
},
|
|
}
|
|
}
|
|
|
|
# Cache en mémoire locale (pas de Redis)
|
|
CACHES = {
|
|
'default': {
|
|
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
|
}
|
|
}
|
|
|
|
# Sessions en base de données (plus simple que le cache pour les tests)
|
|
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
|
|
|
|
# Django Channels en mémoire (pas de Redis)
|
|
CHANNEL_LAYERS = {
|
|
'default': {
|
|
'BACKEND': 'channels.layers.InMemoryChannelLayer',
|
|
}
|
|
}
|
|
|
|
# Désactiver Celery pendant les tests
|
|
CELERY_TASK_ALWAYS_EAGER = True
|
|
CELERY_TASK_EAGER_PROPAGATES = True
|
|
|
|
# Email en mode console (pas d'envoi réel)
|
|
EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
|
|
|
|
# Clé secrète fixe pour les tests
|
|
SECRET_KEY = 'django-insecure-test-secret-key-for-unit-tests-only'
|
|
SIMPLE_JWT['SIGNING_KEY'] = SECRET_KEY # noqa: F405
|
|
|
|
# Désactiver le throttling pendant les tests
|
|
REST_FRAMEWORK['DEFAULT_THROTTLE_CLASSES'] = [] # noqa: F405
|
|
REST_FRAMEWORK['DEFAULT_THROTTLE_RATES'] = {} # noqa: F405
|
|
|
|
# Accélérer le hashage des mots de passe pour les tests
|
|
PASSWORD_HASHERS = [
|
|
'django.contrib.auth.hashers.MD5PasswordHasher',
|
|
]
|
|
|
|
# Désactiver les logs verbeux pendant les tests
|
|
LOGGING['root']['level'] = 'CRITICAL' # noqa: F405
|