mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-09-23 07:03:45 +00:00

* Move filter utilities * Add MetadataRouter * Add tests for MetadataRouter * Add more tests * Rename FileExtensionClassifer to FileExtensionRouter * Add support for dates in filters * Add tests * Add release note * Add release note * Apply suggestions from code review Co-authored-by: ZanSara <sara.zanzottera@deepset.ai> --------- Co-authored-by: ZanSara <sara.zanzottera@deepset.ai>
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
import pytest
|
|
|
|
from haystack.preview import Document
|
|
from haystack.preview.components.routers.metadata_router import MetadataRouter
|
|
|
|
|
|
class TestMetadataRouter:
|
|
@pytest.mark.unit
|
|
def test_to_dict(self):
|
|
component = MetadataRouter(rules={"edge_1": {"created_at": {"$gte": "2023-01-01", "$lt": "2023-04-01"}}})
|
|
data = component.to_dict()
|
|
assert data == {
|
|
"type": "MetadataRouter",
|
|
"init_parameters": {"rules": {"edge_1": {"created_at": {"$gte": "2023-01-01", "$lt": "2023-04-01"}}}},
|
|
}
|
|
|
|
@pytest.mark.unit
|
|
def test_from_dict(self):
|
|
data = {
|
|
"type": "MetadataRouter",
|
|
"init_parameters": {"rules": {"edge_1": {"created_at": {"$gte": "2023-01-01", "$lt": "2023-04-01"}}}},
|
|
}
|
|
component = MetadataRouter.from_dict(data)
|
|
assert component.rules == {"edge_1": {"created_at": {"$gte": "2023-01-01", "$lt": "2023-04-01"}}}
|
|
|
|
@pytest.mark.unit
|
|
def test_run(self):
|
|
rules = {
|
|
"edge_1": {"created_at": {"$gte": "2023-01-01", "$lt": "2023-04-01"}},
|
|
"edge_2": {"created_at": {"$gte": "2023-04-01", "$lt": "2023-07-01"}},
|
|
}
|
|
router = MetadataRouter(rules=rules)
|
|
documents = [
|
|
Document(metadata={"created_at": "2023-02-01"}),
|
|
Document(metadata={"created_at": "2023-05-01"}),
|
|
Document(metadata={"created_at": "2023-08-01"}),
|
|
]
|
|
output = router.run(documents=documents)
|
|
assert output["edge_1"][0].metadata["created_at"] == "2023-02-01"
|
|
assert output["edge_2"][0].metadata["created_at"] == "2023-05-01"
|
|
assert output["unmatched"][0].metadata["created_at"] == "2023-08-01"
|