test_email_service.py becomes a mockup test

This commit is contained in:
Grégoire Mureau 2025-07-07 20:53:50 +02:00
parent 6aa7c3b725
commit 932814e4fa

View file

@ -1,11 +1,6 @@
#!/usr/bin/env python3 # Utilisation de mock pour simuler l'envoi de mails mais sans spammer une boîte.
# -*- coding: utf-8 -*-
"""
Created on Sat Jul 5 15:03:24 2025
@author: madfuckinman
"""
from unittest.mock import patch, MagicMock
import os import os
import sys import sys
from dotenv import load_dotenv from dotenv import load_dotenv
@ -15,38 +10,29 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../")))
from email_service import send_error_report_email from email_service import send_error_report_email
# Charger le fichier .env situé un niveau au-dessus # Charger les variables d'environnement
dotenv_path = '../../../.env' dotenv_path = '../../../.env'
load_dotenv(dotenv_path) load_dotenv(dotenv_path)
def test_email_service_with_alias(): @patch("smtplib.SMTP")
def test_email_service_connection(mock_smtp):
""" """
Teste l'envoi d'un email avec la fonction send_error_report_email Teste la connexion SMTP sans envoyer réellement l'email
""" """
# ⚙️ Vérifier si les variables d'environnement nécessaires sont présentes # 🔧 Configuration du mock
smtp_server = os.getenv("SMTP_SERVER") mock_server = MagicMock()
smtp_email = os.getenv("SMTP_EMAIL") mock_smtp.return_value.__enter__.return_value = mock_server
admin_email = os.getenv("ADMIN_EMAIL")
assert smtp_server, "SMTP_SERVER non défini"
assert smtp_email, "SMTP_EMAIL non défini"
assert admin_email, "ADMIN_EMAIL non défini"
# Configuration de test
print("🔧 Configuration Email :")
print(f"Serveur SMTP : {smtp_server}")
print(f"Authentification : {smtp_email}")
print(f"Destinataire : {admin_email}")
# Cas de test
test_reports = { test_reports = {
"Service client décevant": "positif",
"Erreur à l'embarquement": "negatif",
"Vol annulé sans prévenir": "positif" "Vol annulé sans prévenir": "positif"
} }
# 📧 Tester la fonction d'envoi # Appel de la fonction
result = send_error_report_email(test_reports) result = send_error_report_email(test_reports)
# ✅ Assertion pour vérifier que la fonction fonctionne correctement # ✅ Assertions
assert result is True, "L'email n'a pas été envoyé avec succès" assert result is True
mock_smtp.assert_called_with(os.getenv("SMTP_SERVER"), int(os.getenv("SMTP_PORT", 587)))
mock_server.starttls.assert_called_once()
mock_server.login.assert_called_once_with(os.getenv("SMTP_EMAIL"), os.getenv("SMTP_PASSWORD"))
mock_server.send_message.assert_called_once()