diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9c9ad212278ffd4862a1ccb74699be127ab089fa..660da3f252d1e1d8f49bf3afb7082bde384b2763 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,30 +1,16 @@
 image: python:3.9
 
-# variables:
-#   MYSQL_DATABASE: $MYSQL_DATABASE
-#   MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
-#   MYSQL_USER: $MYSQL_USER
-#   MYSQL_PASSWORD: $MYSQL_PASSWORD
-#   MYSQL_DATABASE: $MYSQL_DATABASE
+services:
+  - name: mysql:latest
+    command: ["mysqld", "--authentication-policy=mysql_native_password"]
+    alias: mysql
 
-# services:
-#   - name: mysql:latest
-#     command: ["mysqld", "--authentication-policy=mysql_native_password"]
-#     alias: mysql
-
-# services:
-#   - name: mysql:latest
-#     command: ["mysqld", "--authentication-policy=mysql_native_password"]
-#     alias: mysql
-
-# variables:
-#   MYSQL_DATABASE: $MYSQL_DATABASE
-#   MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
-
-# Host: mysql
-# User: $MYSQL_USER
-# Password: $MYSQL_PASSWORD
-# Database: $MYSQL_DATABASE
+variables:
+  MYSQL_DATABASE: $MYSQL_DATABASE
+  MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
+  MYSQL_USER: $MYSQL_USER
+  MYSQL_PASSWORD: $MYSQL_PASSWORD
+  MYSQL_DATABASE: $MYSQL_DATABASE
 
 
 stages:
@@ -73,9 +59,10 @@ lint-back:
   before_script:
     - python3 -m venv venv/
     - source venv/bin/activate
-  script:
     - pip install pycodestyle
+  script:
     - pycodestyle --config=./backend/setup.cnf ./backend
+  dependencies: []
 
 
 lint-front:
@@ -88,24 +75,27 @@ lint-front:
     - install-npm-packages
 
 
-# test:
-#   stage: test
-#   variables:
-#     MYSQL_DATABASE: $MYSQL_DATABASE
-#     MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
-#     MYSQL_DATABASE: $MYSQL_DATABASE
-#     MYSQL_USER: $MYSQL_USER
-#     MYSQL_PASSWORD: $MYSQL_PASSWORD
-#     DB_HOST: mysql
-#     DB_PORT: 3306
-#     WEB_ROOT: http://localhost:3000
-#   before_script:
-#     - source ./venv/bin/activate
-#   script:
-#     - cd ./backend
-#     - docker build -t app ./backend
-#     - docker run --detach -p 8000:80 app --env-file ./backend/.env
-#     - curl "http://localhost:8000/api/health"
+test-back:
+  stage: test
+  variables:
+    # MYSQL_DATABASE: $MYSQL_DATABASE
+    # MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
+    # MYSQL_DATABASE: $MYSQL_DATABASE
+    # MYSQL_USER: $MYSQL_USER
+    # MYSQL_PASSWORD: $MYSQL_PASSWORD
+    DB_HOST: mysql
+    DB_PORT: 3306
+    WEB_ROOT: http://localhost:3000
+  before_script:
+    - python3 -m venv venv/
+    - source ./venv/bin/activate
+    - apt-get update && apt-get install libgl1 -y
+    - pip install -r ./backend/requirements.txt
+    - pip install pytest
+  script:
+    - cd ./backend
+    - pytest
+  dependencies: []
 
 #######################################################################################################################################
 ####                                                                                                                               ####
@@ -160,16 +150,6 @@ lint-front:
     - scp -r build/ eatfast@"$DOMAIN":/var/www/eatfast-website/frontend ; fi
 
 
-# deploy-back-staging:
-#   extends: .deploy
-#   rules:
-#     - if: $CI_COMMIT_BRANCH == $STAGING_BRANCH
-#       when: always
-#   variables:
-#     DOMAIN: nofist.test.viarezo.fr
-#     PRIVATE_KEY: "$SSH_PRIVATE_KEY_STAGING"
-
-
 deploy-back-prod:
   extends: .deploy
   rules:
diff --git a/backend/test_main.py b/backend/test_main.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d7a939d657a9e668d1fdc640e0924ff3a00b515
--- /dev/null
+++ b/backend/test_main.py
@@ -0,0 +1,67 @@
+from fastapi.testclient import TestClient
+from datetime import datetime, timedelta
+from sqlalchemy import create_engine
+from dotenv import load_dotenv
+import pytz
+
+from db import models
+from main import app
+import os
+
+client = TestClient(app)
+
+load_dotenv()
+user = os.getenv('MYSQL_USER')
+password = os.getenv('MYSQL_PASSWORD')
+host = os.getenv('DB_HOST')
+port = os.getenv('DB_PORT')
+database = os.getenv('MYSQL_DATABASE')
+
+SQLALCHEMY_DATABASE_URL = f"mysql+pymysql://{user}:{password}@{host}:{port}/{database}?charset=utf8"
+
+engine = create_engine(SQLALCHEMY_DATABASE_URL)
+models.Base.metadata.create_all(bind=engine)
+
+
+test = {
+    "restaurant": {
+        "place": "restaurant test",
+        "day": datetime.now().weekday(),
+        "open_time": datetime.now(tz=pytz.timezone("Europe/Paris")).strftime("%H:%M:%S"),
+        "close_time": (datetime.now(tz=pytz.timezone("Europe/Paris")) + timedelta(hours=1)).strftime("%H:%M:%S")
+    },
+    "news": {
+        "title": "news test",
+        "content": "content test",
+        "end_date": (datetime.now(tz=pytz.timezone("Europe/Paris")) + timedelta(hours=1)).strftime("%Y-%m-%dT%H:%M:%S"),
+        "place": "restaurant test"
+    },
+}
+
+
+def test_post_opening_hours():
+    response = client.post(
+        "/api/opening_hours",
+        headers={"accept": "application/json", "Content-Type": "application/json"},
+        json=test["restaurant"],
+    )
+    assert response.status_code == 200
+    assert response.json()["place"] == test["restaurant"]["place"]
+
+
+def test_get_restaurants():
+    response = client.get("/api/restaurants")
+    assert response.status_code == 200
+    assert len(response.json()) == 1
+    assert response.json()[0]["name"] == test["restaurant"]["place"]
+    assert response.json()[0]["status"]
+
+
+def test_post_news_not_admin():
+    response = client.post(
+        "/api/news",
+        headers={"Content-Type": "application/json", "Cookie": "connect_id=wrong_cookie"},
+        json=test["news"],
+    )
+    assert response.status_code != 200
+    assert response.json() == {"detail": "Invalid cookie"}