Skip to content

Commit 56c9168

Browse files
committed
isolate tests
1 parent 38d9cba commit 56c9168

File tree

2 files changed

+66
-54
lines changed

2 files changed

+66
-54
lines changed

redisvl/extensions/router/semantic.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,9 @@ def get_route_references(
763763
if reference_ids:
764764
queries = cls._make_filter_queries(reference_ids)
765765
else:
766-
_, keys = index.client.scan(match=f"{index.prefix}:{route_name}:*")
766+
_, keys = index.client.scan(
767+
cursor=0, match=f"{index.prefix}:{route_name}:*"
768+
)
767769
queries = cls._make_filter_queries(
768770
[key.split(":")[-1] for key in convert_bytes(keys)]
769771
)
@@ -818,7 +820,14 @@ def delete_route_references(
818820
for reference_id in reference_ids
819821
]
820822
else:
821-
_, keys = index.client.scan(match=f"{index.prefix}:{route_name}:*")
823+
_, keys = index.client.scan(
824+
cursor=0, match=f"{index.prefix}:{route_name}:*"
825+
)
822826
keys = convert_bytes(keys)
823827

828+
if not keys:
829+
raise ValueError(
830+
f"No references found for route {route_name} in router {router_name}"
831+
)
832+
824833
return index.drop_keys(keys)

tests/integration/test_semantic_router.py

+55-52
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ def test_vectorizer_dtype_mismatch(routes, redis_url):
332332
)
333333

334334

335-
def test_invalid_vectorizer(routes, redis_url):
335+
def test_invalid_vectorizer(redis_url):
336336
with pytest.raises(TypeError):
337337
SemanticRouter(
338338
name="test_invalid_vectorizer",
@@ -473,53 +473,69 @@ def test_add_route_references_cls(redis_url, routes):
473473

474474
def test_add_route_references_cls_missing_inputs(redis_url):
475475

476-
# Add new references to an existing route
477476
with pytest.raises(ValueError):
478477
SemanticRouter.add_route_references(
479478
route_name="farewell",
480479
references=["peace out"],
481-
router_name="test-router",
482480
vectorizer=HFTextVectorizer(),
483481
)
484482

485-
with pytest.raises(ValueError):
486-
SemanticRouter.add_route_references(
487-
route_name="farewell",
488-
references=["peace out"],
489-
redis_url=redis_url,
490-
vectorizer=HFTextVectorizer(),
491-
)
492483

484+
def test_get_route_references(redis_url):
485+
routes = [
486+
Route(
487+
name="test",
488+
references=["hello", "hi"],
489+
metadata={"type": "test"},
490+
distance_threshold=0.3,
491+
),
492+
]
493+
494+
# Get references for a specific route
495+
router = SemanticRouter(
496+
name="get-router",
497+
routes=routes,
498+
routing_config=RoutingConfig(max_k=2),
499+
redis_url=redis_url,
500+
)
493501

494-
def test_get_route_references(semantic_router):
495502
# Get references for a specific route
496-
refs = semantic_router.get_route_references(route_name="greeting")
503+
refs = router.get_route_references(route_name="test")
497504

498505
# Should return at least the initial references
499506
assert len(refs) >= 2
500507

501508
# Reference IDs should be present
502509
reference_id = refs[0]["reference_id"]
503510
# Get references by ID
504-
id_refs = semantic_router.get_route_references(reference_ids=[reference_id])
511+
id_refs = router.get_route_references(reference_ids=[reference_id])
505512
assert len(id_refs) == 1
506513

507514
with pytest.raises(ValueError):
508-
semantic_router.get_route_references()
515+
router.get_route_references()
509516

510517

511-
def test_get_route_references_cls(routes, redis_url):
518+
def test_get_route_references_cls(redis_url):
519+
routes = [
520+
Route(
521+
name="test",
522+
references=["hello", "hi"],
523+
metadata={"type": "test"},
524+
distance_threshold=0.3,
525+
),
526+
]
527+
512528
# Get references for a specific route
513529
_ = SemanticRouter(
514-
name="new-router",
530+
name="get-router",
515531
routes=routes,
516532
routing_config=RoutingConfig(max_k=2),
517533
redis_url=redis_url,
518534
)
519535

520536
refs = SemanticRouter.get_route_references(
521-
route_name="greeting",
522-
router_name="new-router",
537+
route_name="test",
538+
router_name="get-router",
523539
redis_url=redis_url,
524540
)
525541

@@ -536,52 +552,39 @@ def test_get_route_references_cls(routes, redis_url):
536552
SemanticRouter.get_route_references()
537553

538554

539-
def test_delete_route_references(semantic_router):
540-
redis_version = semantic_router._index.client.info()["redis_version"]
541-
if not compare_versions(redis_version, "7.0.0"):
542-
pytest.skip("Not using a late enough version of Redis")
543-
544-
# Delete specific reference
545-
deleted_count = semantic_router.delete_route_references(
546-
route_name="greeting",
547-
)
548-
549-
assert deleted_count == 2
550-
551-
# Verify the reference is gone
552-
refs = semantic_router.get_route_references(route_name="farewell")
553-
ref_id = refs[0]["reference_id"]
554-
deleted = semantic_router.delete_route_references(
555-
route_name="farewell", reference_ids=[ref_id]
556-
)
557-
assert deleted == 1
558-
555+
def test_delete_route_references(redis_url):
556+
routes = [
557+
Route(
558+
name="test",
559+
references=["hello", "hi"],
560+
metadata={"type": "test"},
561+
distance_threshold=0.3,
562+
),
563+
Route(
564+
name="test2",
565+
references=["by", "boy"],
566+
metadata={"type": "test"},
567+
distance_threshold=0.3,
568+
),
569+
]
559570

560-
def test_delete_route_references_cls(routes, redis_url):
561571
# Get references for a specific route
562-
_ = SemanticRouter(
563-
name="new-router",
572+
router = SemanticRouter(
573+
name="delete-router",
564574
routes=routes,
565575
routing_config=RoutingConfig(max_k=2),
566576
redis_url=redis_url,
567577
)
568578

569579
# Delete specific reference
570-
deleted_count = SemanticRouter.delete_route_references(
571-
route_name="greeting",
572-
router_name="new-router",
573-
redis_url=redis_url,
580+
deleted_count = router.delete_route_references(
581+
route_name="test",
574582
)
575583

576584
assert deleted_count == 2
577585

578586
# Verify the reference is gone
579-
refs = SemanticRouter.get_route_references(route_name="farewell")
587+
refs = router.get_route_references(route_name="test2")
580588
ref_id = refs[0]["reference_id"]
581-
deleted = SemanticRouter.delete_route_references(
582-
route_name="farewell",
583-
reference_ids=[ref_id],
584-
router_name="new-router",
585-
redis_url=redis_url,
586-
)
589+
deleted = router.delete_route_references(route_name="test2", reference_ids=[ref_id])
587590
assert deleted == 1

0 commit comments

Comments
 (0)