123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import pytest
- from utils.weaviate_db import WeaviateEngine
- # Test case 1: Empty conditions list
- def test_build_filter_empty_conditions():
- engine = WeaviateEngine("test_collection", None)
- result = engine.build_filter([])
- assert result is None
- # Test case 2: Single condition
- def test_build_filter_single_condition():
- engine = WeaviateEngine("test_collection", None)
- conditions = [{"key": "name", "match": "John"}]
- result = engine.build_filter(conditions)
- expected = {
- "operator": "And",
- "operands": [
- {
- "path": ["metadata.name"],
- "operator": "Equal",
- "valueString": "John"
- }
- ]
- }
- assert result == expected
- # Test case 3: Multiple conditions
- def test_build_filter_multiple_conditions():
- engine = WeaviateEngine("test_collection", None)
- conditions = [
- {"key": "name", "match": "John"},
- {"key": "age", "match": 30}
- ]
- result = engine.build_filter(conditions)
- expected = {
- "operator": "And",
- "operands": [
- {
- "path": ["metadata.name"],
- "operator": "Equal",
- "valueString": "John"
- },
- {
- "path": ["metadata.age"],
- "operator": "Equal",
- "valueString": "30"
- }
- ]
- }
- assert result == expected
- # Test case 4: Missing key or match value
- def test_build_filter_missing_key_or_match():
- engine = WeaviateEngine("test_collection", None)
- conditions = [{"key": "name"}, {"match": "John"}]
- result = engine.build_filter(conditions)
- assert result is None
|