@@ -177,51 +177,44 @@ def test_custom_checkpoint_prefix_isolation_sync(
177177 redis_url , checkpoint_prefix = "app1_checkpoint"
178178 ) as saver1 :
179179 saver1 .setup ()
180- checkpoint1 : Checkpoint = {
181- "v" : 1 ,
182- "id" : checkpoint_id ,
183- "ts" : "2024-01-01T00:00:00Z" ,
184- "channel_values" : {"app" : "app1" , "value" : "from_app1" },
185- "channel_versions" : {"app" : "1" },
186- "versions_seen" : {"agent" : {"app" : "1" }},
187- "pending_sends" : [],
188- }
189- saver1 .put (config , checkpoint1 , simple_metadata , {})
190180
191- # Saver 2 with prefix "app2_checkpoint"
192- with RedisSaver .from_conn_string (
193- redis_url , checkpoint_prefix = "app2_checkpoint"
194- ) as saver2 :
195- saver2 .setup ()
196- checkpoint2 : Checkpoint = {
197- "v" : 1 ,
198- "id" : checkpoint_id ,
199- "ts" : "2024-01-01T00:00:00Z" ,
200- "channel_values" : {"app" : "app2" , "value" : "from_app2" },
201- "channel_versions" : {"app" : "1" },
202- "versions_seen" : {"agent" : {"app" : "1" }},
203- "pending_sends" : [],
204- }
205- saver2 .put (config , checkpoint2 , simple_metadata , {})
206-
207- # Verify isolation - each saver should only see its own data
208- with RedisSaver .from_conn_string (
209- redis_url , checkpoint_prefix = "app1_checkpoint"
210- ) as saver1 :
211- saver1 .setup ()
212- retrieved1 = saver1 .get_tuple (config )
213- assert retrieved1 is not None
214- assert retrieved1 .checkpoint ["channel_values" ]["app" ] == "app1"
215- assert retrieved1 .checkpoint ["channel_values" ]["value" ] == "from_app1"
216-
217- with RedisSaver .from_conn_string (
218- redis_url , checkpoint_prefix = "app2_checkpoint"
219- ) as saver2 :
220- saver2 .setup ()
221- retrieved2 = saver2 .get_tuple (config )
222- assert retrieved2 is not None
223- assert retrieved2 .checkpoint ["channel_values" ]["app" ] == "app2"
224- assert retrieved2 .checkpoint ["channel_values" ]["value" ] == "from_app2"
181+ # Saver 2 with prefix "app2_checkpoint"
182+ with RedisSaver .from_conn_string (
183+ redis_url , checkpoint_prefix = "app2_checkpoint"
184+ ) as saver2 :
185+ saver2 .setup ()
186+
187+ checkpoint1 : Checkpoint = {
188+ "v" : 1 ,
189+ "id" : checkpoint_id ,
190+ "ts" : "2024-01-01T00:00:00Z" ,
191+ "channel_values" : {"app" : "app1" , "value" : "from_app1" },
192+ "channel_versions" : {"app" : "1" },
193+ "versions_seen" : {"agent" : {"app" : "1" }},
194+ "pending_sends" : [],
195+ }
196+ saver1 .put (config , checkpoint1 , simple_metadata , {})
197+
198+ checkpoint2 : Checkpoint = {
199+ "v" : 1 ,
200+ "id" : checkpoint_id ,
201+ "ts" : "2024-01-01T00:00:00Z" ,
202+ "channel_values" : {"app" : "app2" , "value" : "from_app2" },
203+ "channel_versions" : {"app" : "1" },
204+ "versions_seen" : {"agent" : {"app" : "1" }},
205+ "pending_sends" : [],
206+ }
207+ saver2 .put (config , checkpoint2 , simple_metadata , {})
208+
209+ retrieved1 = saver1 .get_tuple (config )
210+ assert retrieved1 is not None
211+ assert retrieved1 .checkpoint ["channel_values" ]["app" ] == "app1"
212+ assert retrieved1 .checkpoint ["channel_values" ]["value" ] == "from_app1"
213+
214+ retrieved2 = saver2 .get_tuple (config )
215+ assert retrieved2 is not None
216+ assert retrieved2 .checkpoint ["channel_values" ]["app" ] == "app2"
217+ assert retrieved2 .checkpoint ["channel_values" ]["value" ] == "from_app2"
225218
226219
227220def test_custom_checkpoint_prefix_with_special_characters (
@@ -435,51 +428,45 @@ async def test_custom_checkpoint_prefix_isolation_async(
435428 redis_url , checkpoint_prefix = "async_app1_checkpoint"
436429 ) as saver1 :
437430 await saver1 .setup ()
438- checkpoint1 : Checkpoint = {
439- "v" : 1 ,
440- "id" : checkpoint_id ,
441- "ts" : "2024-01-01T00:00:00Z" ,
442- "channel_values" : {"app" : "app1" , "value" : "from_app1" },
443- "channel_versions" : {"app" : "1" },
444- "versions_seen" : {"agent" : {"app" : "1" }},
445- "pending_sends" : [],
446- }
447- await saver1 .aput (config , checkpoint1 , simple_metadata , {})
448431
449- # Saver 2 with prefix "async_app2_checkpoint"
450- async with AsyncRedisSaver .from_conn_string (
451- redis_url , checkpoint_prefix = "async_app2_checkpoint"
452- ) as saver2 :
453- await saver2 .setup ()
454- checkpoint2 : Checkpoint = {
455- "v" : 1 ,
456- "id" : checkpoint_id ,
457- "ts" : "2024-01-01T00:00:00Z" ,
458- "channel_values" : {"app" : "app2" , "value" : "from_app2" },
459- "channel_versions" : {"app" : "1" },
460- "versions_seen" : {"agent" : {"app" : "1" }},
461- "pending_sends" : [],
462- }
463- await saver2 .aput (config , checkpoint2 , simple_metadata , {})
464-
465- # Verify isolation - each saver should only see its own data
466- async with AsyncRedisSaver .from_conn_string (
467- redis_url , checkpoint_prefix = "async_app1_checkpoint"
468- ) as saver1 :
469- await saver1 .setup ()
470- retrieved1 = await saver1 .aget_tuple (config )
471- assert retrieved1 is not None
472- assert retrieved1 .checkpoint ["channel_values" ]["app" ] == "app1"
473- assert retrieved1 .checkpoint ["channel_values" ]["value" ] == "from_app1"
474-
475- async with AsyncRedisSaver .from_conn_string (
476- redis_url , checkpoint_prefix = "async_app2_checkpoint"
477- ) as saver2 :
478- await saver2 .setup ()
479- retrieved2 = await saver2 .aget_tuple (config )
480- assert retrieved2 is not None
481- assert retrieved2 .checkpoint ["channel_values" ]["app" ] == "app2"
482- assert retrieved2 .checkpoint ["channel_values" ]["value" ] == "from_app2"
432+ # Saver 2 with prefix "async_app2_checkpoint"
433+ async with AsyncRedisSaver .from_conn_string (
434+ redis_url , checkpoint_prefix = "async_app2_checkpoint"
435+ ) as saver2 :
436+ await saver2 .setup ()
437+
438+ checkpoint1 : Checkpoint = {
439+ "v" : 1 ,
440+ "id" : checkpoint_id ,
441+ "ts" : "2024-01-01T00:00:00Z" ,
442+ "channel_values" : {"app" : "app1" , "value" : "from_app1" },
443+ "channel_versions" : {"app" : "1" },
444+ "versions_seen" : {"agent" : {"app" : "1" }},
445+ "pending_sends" : [],
446+ }
447+ await saver1 .aput (config , checkpoint1 , simple_metadata , {})
448+
449+
450+ checkpoint2 : Checkpoint = {
451+ "v" : 1 ,
452+ "id" : checkpoint_id ,
453+ "ts" : "2024-01-01T00:00:00Z" ,
454+ "channel_values" : {"app" : "app2" , "value" : "from_app2" },
455+ "channel_versions" : {"app" : "1" },
456+ "versions_seen" : {"agent" : {"app" : "1" }},
457+ "pending_sends" : [],
458+ }
459+ await saver2 .aput (config , checkpoint2 , simple_metadata , {})
460+
461+ retrieved1 = await saver1 .aget_tuple (config )
462+ assert retrieved1 is not None
463+ assert retrieved1 .checkpoint ["channel_values" ]["app" ] == "app1"
464+ assert retrieved1 .checkpoint ["channel_values" ]["value" ] == "from_app1"
465+
466+ retrieved2 = await saver2 .aget_tuple (config )
467+ assert retrieved2 is not None
468+ assert retrieved2 .checkpoint ["channel_values" ]["app" ] == "app2"
469+ assert retrieved2 .checkpoint ["channel_values" ]["value" ] == "from_app2"
483470
484471
485472@pytest .mark .asyncio
0 commit comments