"""Tests des helpers de stockage (chemins, sanitisation).""" from datetime import date import pytest from plesna_gerance.database.storage import ( extract_street_letter, sanitize_filename, compute_document_paths, ) @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"