Tests
from langchain_core.documents import Document
docs = [
Document(page_content='Python pour debutants', metadata={'source': 'cours', 'niveau': 'debutant'}),
Document(page_content='Python avance decorateurs', metadata={'source': 'cours', 'niveau': 'avance'}),
Document(page_content='Recette de tarte aux pommes', metadata={'source': 'blog'}),
Document(page_content='Python machine learning', metadata={'source': 'cours', 'niveau': 'avance'}),
]
result = filtered_search('Python', docs, {'source': 'cours'}, 2)
assert len(result) == 2, f'Attendu 2 résultats, obtenu {len(result)}'
assert all('source' in r.metadata and r.metadata['source'] == 'cours' for r in result)
result2 = filtered_search('Python', docs, {'niveau': 'avance'}, 1)
assert len(result2) == 1, 'Attendu 1 résultat pour niveau avance'
assert result2[0].metadata['niveau'] == 'avance'
result3 = filtered_search('test', docs, {'source': 'inexistant'}, 1)
assert result3 == [], 'Aucun filtre ne correspond, devrait renvoyer une liste vide'