mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-04-03 16:51:26 +00:00
chore(ci): ajout test_settings.py et SKILL run-tests
This commit is contained in:
66
Back-End/N3wtSchool/test_settings.py
Normal file
66
Back-End/N3wtSchool/test_settings.py
Normal file
@ -0,0 +1,66 @@
|
||||
"""
|
||||
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
|
||||
Reference in New Issue
Block a user