diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..65fdf7d6eb48ca796e141b07f92e7a94cc51fe78 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,17 @@ +stages: + - test + +test_backend: + stage: test + image: python:3.11 + services: + - name: redis:alpine + alias: redis + before_script: + - pip install --upgrade pip + - pip install -r backend/requirements.txt + - pip install pytest + script: + - pytest backend/test_app.py + only: + - merge_requests # Exécute les tests uniquement sur un Merge Request diff --git a/backend/Dockerfile b/backend/Dockerfile index af4eb8b554f5338e1b7f7fca7fc6a9a7598ea9c1..33a52a23a6dfe4b92ffb3f45ccb440edb91d98b9 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -12,7 +12,6 @@ COPY requirements.txt . # Installer les dépendances et ajouter pytest RUN pip install --no-cache-dir -r requirements.txt -RUN pip install --no-cache-dir pytest # Copier le reste du code (y compris les tests) COPY . /app diff --git a/backend/app.py b/backend/app.py index 29f571cc09306bd0756fcf91ed922efa036cf6da..7747c7602a6f1d5c877c818cfe1ccbfbe7a2b6a0 100644 --- a/backend/app.py +++ b/backend/app.py @@ -4,6 +4,7 @@ import hashlib import itertools import logging import subprocess +import re # <-- Import pour extraire le numéro du port from flask import Flask, request, jsonify from flask_cors import CORS # Import pour activer CORS @@ -16,7 +17,13 @@ CORS(app) # Activation de CORS pour toutes les routes # Configuration de Redis redis_host = os.getenv("REDIS_HOST", "redis") # "redis" correspond au service Redis dans Docker -redis_port = int(os.getenv("REDIS_PORT", 6379)) +redis_url = os.getenv("REDIS_PORT", "6379") # Valeur par défaut + +# Extraction du numéro de port de Redis (compatible avec GitLab CI/CD et Docker) +redis_port_match = re.search(r":(\d+)", redis_url) +redis_port = int(redis_port_match.group(1)) if redis_port_match else 6379 + +# Connexion à Redis redis_client = redis.StrictRedis(host=redis_host, port=redis_port, db=0, decode_responses=True) # Clé pour le compteur de requêtes reçues diff --git a/backend/requirements.txt b/backend/requirements.txt index 5d52d94c6c3b4e58915e291a51dab9134dc20897..e80e8e1653f09a58cd393eef99f529d6273f3f31 100644 Binary files a/backend/requirements.txt and b/backend/requirements.txt differ