Test metadata operations.
(self)
| 297 | "Search completed") |
| 298 | |
| 299 | async def test_metadata_operations(self): |
| 300 | """Test metadata operations.""" |
| 301 | print("\n=== Testing Metadata Operations ===") |
| 302 | |
| 303 | # Test add documents with complex metadata |
| 304 | texts = [ |
| 305 | "This document has complex metadata for testing.", |
| 306 | "Another document with different metadata structure." |
| 307 | ] |
| 308 | metadatas = [ |
| 309 | { |
| 310 | "category": "Test", |
| 311 | "subcategory": "Complex", |
| 312 | "tags": ["test", "metadata", "complex"], |
| 313 | "numeric_value": 42, |
| 314 | "boolean_value": True, |
| 315 | "nested": {"level1": {"level2": "value"}} |
| 316 | }, |
| 317 | { |
| 318 | "category": "Test", |
| 319 | "subcategory": "Simple", |
| 320 | "tags": ["test", "simple"], |
| 321 | "numeric_value": 24, |
| 322 | "boolean_value": False |
| 323 | } |
| 324 | ] |
| 325 | |
| 326 | request = FaissAddRequest(texts=texts, metadatas=metadatas) |
| 327 | result = await self.faiss_service.add_documents(request) |
| 328 | |
| 329 | self.assert_test(result.count == 2, |
| 330 | "Add documents with complex metadata", |
| 331 | f"Expected count=2, got count={result.count}") |
| 332 | |
| 333 | # Test search with metadata filter |
| 334 | request = FaissSearchRequest( |
| 335 | query="metadata", |
| 336 | k=5, |
| 337 | filter={"category": "Test"}, |
| 338 | fetch_k=10 |
| 339 | ) |
| 340 | result = await self.faiss_service.search_similar(request) |
| 341 | |
| 342 | self.assert_test(True, |
| 343 | "Search with metadata filter", |
| 344 | "Search completed") |
| 345 | |
| 346 | # Test search with nested metadata filter |
| 347 | request = FaissSearchRequest( |
| 348 | query="complex", |
| 349 | k=5, |
| 350 | filter={"nested.level1.level2": "value"}, |
| 351 | fetch_k=10 |
| 352 | ) |
| 353 | result = await self.faiss_service.search_similar(request) |
| 354 | |
| 355 | self.assert_test(True, |
| 356 | "Search with nested metadata filter", |
no test coverage detected