Files
pdf_oralia_vibe/tests/test_storage.py
Bertrand Benjamin d42bfecab4 chore: ajoute ruff (lint) et corrige les violations
- Config ruff dans pyproject.toml : règles E/W/F/I/UP/B, whitelist des appels
  d'injection FastAPI (Depends/File/Form/Query) pour B008, B904 ignoré
  (traduction volontaire des exceptions en réponses HTTP)
- Auto-fixes : tri des imports, suppression d'imports inutilisés, annotations
  PEP 604, f-strings sans placeholder, modes open redondants
- Suppression de variables inutilisées (config.reset_setting, parser locataires)

ruff check . : All checks passed ; 61 tests OK

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 10:20:36 +02:00

51 lines
1.3 KiB
Python

"""Tests des helpers de stockage (chemins, sanitisation)."""
from datetime import date
import pytest
from plesna_gerance.database.storage import (
compute_document_paths,
extract_street_letter,
sanitize_filename,
)
@pytest.mark.parametrize(
"adresse,expected",
[
("4 RUE SERVIENT", "S"),
("33 RUE MARC BLOCH", "M"),
("12 AVENUE JEAN JAURES", "J"),
("1 BOULEVARD GAMBETTA", "G"),
(None, "X"),
("", "X"),
("42", "X"), # que des chiffres -> rien d'alpha
],
)
def test_extract_street_letter(adresse, expected):
assert extract_street_letter(adresse) == expected
def test_sanitize_filename_removes_problematic_chars():
assert sanitize_filename('a/b:c*d?"e') == "a_b_c_d__e"
def test_sanitize_filename_strips_dots_and_spaces():
assert sanitize_filename(" .nom. ") == "nom"
def test_compute_document_paths():
pdf, json_p = compute_document_paths(
reference="REF-01234",
doc_date=date(2024, 1, 15),
immeuble_adresse="4 RUE SERVIENT",
)
assert pdf == "2024/S_REF-01234_2024-01-15.pdf"
assert json_p == "2024/S_REF-01234_2024-01-15.json"
def test_compute_document_paths_unknown_address():
pdf, _ = compute_document_paths("R1", date(2023, 7, 9), None)
assert pdf == "2023/X_R1_2023-07-09.pdf"