transfer from private server/git server

This commit is contained in:
M1n-0
2026-08-21 09:12:02 +02:00
parent 45c8982178
commit 6ecb014238
75 changed files with 4344 additions and 274 deletions

View File

@@ -0,0 +1,56 @@
"""Tests unitaires du module Fichiers — UT-06 à UT-08 (décomposition en 8 étapes)."""
import io
import pytest
from werkzeug.datastructures import FileStorage
from services import fichier_service
def _file_storage(content=b"contenu de test", filename="rapport.pdf", mimetype="application/pdf"):
return FileStorage(stream=io.BytesIO(content), filename=filename, content_type=mimetype)
def test_ut06_fichier_trop_grand():
fs = _file_storage(content=b"x" * 100)
with pytest.raises(fichier_service.FileValidationError):
fichier_service.step2_check_size(fs, max_size=50)
def test_ut06b_fichier_vide():
fs = _file_storage(content=b"")
with pytest.raises(fichier_service.FileValidationError):
fichier_service.step2_check_size(fs)
def test_ut07_extension_interdite():
with pytest.raises(fichier_service.FileValidationError):
fichier_service.step4_check_extension("script.exe")
def test_ut07b_extension_autorisee():
ext = fichier_service.step4_check_extension("rapport.pdf")
assert ext == "pdf"
def test_ut08_nom_genere_est_unique():
name1 = fichier_service.step5_generate_safe_name("pdf")
name2 = fichier_service.step5_generate_safe_name("pdf")
assert name1 != name2
assert name1.endswith(".pdf")
def test_ut08b_presence_fichier_absent():
with pytest.raises(fichier_service.FileValidationError):
fichier_service.step1_check_presence(None)
def test_upload_complet_end_to_end(db, tmp_path, monkeypatch):
"""Vérifie l'enchaînement complet des 8 étapes avec un fichier valide."""
from config import Config
monkeypatch.setattr(Config, "UPLOAD_DIR", str(tmp_path))
fs = _file_storage(content=b"%PDF-1.4 contenu factice", filename="doc.pdf", mimetype="application/pdf")
fichier_id = fichier_service.handle_upload(db, fs, "sub-1", ip="127.0.0.1")
assert fichier_id is not None