@@ -19,7 +19,6 @@ def cache(vectorizer, redis_url):
19
19
vectorizer = vectorizer , distance_threshold = 0.2 , redis_url = redis_url
20
20
)
21
21
yield cache_instance
22
- cache_instance .clear () # Clear cache after each test
23
22
cache_instance ._index .delete (True ) # Clean up index
24
23
25
24
@@ -37,7 +36,6 @@ def cache_with_ttl(vectorizer, redis_url):
37
36
vectorizer = vectorizer , distance_threshold = 0.2 , ttl = 2 , redis_url = redis_url
38
37
)
39
38
yield cache_instance
40
- cache_instance .clear () # Clear cache after each test
41
39
cache_instance ._index .delete (True ) # Clean up index
42
40
43
41
@@ -54,6 +52,24 @@ def cache_with_redis_client(vectorizer, client, redis_url):
54
52
cache_instance ._index .delete (True ) # Clean up index
55
53
56
54
55
+ # # Test handling invalid input for check method
56
+ def test_bad_ttl (cache ):
57
+ with pytest .raises (ValueError ):
58
+ cache .set_ttl (2.5 )
59
+
60
+
61
+ def test_cache_ttl (cache_with_ttl ):
62
+ assert cache_with_ttl .ttl == 2
63
+ cache_with_ttl .set_ttl (5 )
64
+ assert cache_with_ttl .ttl == 5
65
+
66
+
67
+ def test_set_ttl (cache ):
68
+ assert cache .ttl == None
69
+ cache .set_ttl (5 )
70
+ assert cache .ttl == 5
71
+
72
+
57
73
# Test basic store and check functionality
58
74
def test_store_and_check (cache , vectorizer ):
59
75
prompt = "This is a test prompt."
@@ -95,6 +111,21 @@ def test_ttl_expiration(cache_with_ttl, vectorizer):
95
111
assert len (check_result ) == 0
96
112
97
113
114
+ def test_ttl_expiration_after_update (cache_with_ttl , vectorizer ):
115
+ prompt = "This is a test prompt."
116
+ response = "This is a test response."
117
+ vector = vectorizer .embed (prompt )
118
+ cache_with_ttl .set_ttl (4 )
119
+
120
+ assert cache_with_ttl .ttl == 4
121
+
122
+ cache_with_ttl .store (prompt , response , vector = vector )
123
+ sleep (5 )
124
+
125
+ check_result = cache_with_ttl .check (vector = vector )
126
+ assert len (check_result ) == 0
127
+
128
+
98
129
# Test check behavior with no match
99
130
def test_check_no_match (cache , vectorizer ):
100
131
vector = vectorizer .embed ("Some random sentence." )
@@ -111,12 +142,6 @@ def test_check_invalid_input(cache):
111
142
cache .check (prompt = "test" , return_fields = "bad value" )
112
143
113
144
114
- # Test handling invalid input for check method
115
- def test_bad_ttl (cache ):
116
- with pytest .raises (ValueError ):
117
- cache .set_ttl (2.5 )
118
-
119
-
120
145
# Test storing with metadata
121
146
def test_store_with_metadata (cache , vectorizer ):
122
147
prompt = "This is another test prompt."
0 commit comments