11import json
22import time
3+ from datetime import timedelta
34from concurrent .futures import ThreadPoolExecutor
45from typing import Sequence
56
@@ -531,8 +532,6 @@ def test_delete_dataset_run_with_folder_names():
531532
532533def test_get_dataset_with_version ():
533534 """Test that get_dataset correctly filters items by version timestamp."""
534- from datetime import datetime , timezone
535- import time
536535
537536 langfuse = Langfuse (debug = False )
538537
@@ -543,11 +542,16 @@ def test_get_dataset_with_version():
543542 # Create first item
544543 item1 = langfuse .create_dataset_item (dataset_name = name , input = {"version" : "v1" })
545544 langfuse .flush ()
546- time .sleep (3 ) # Ensure persistence and clear temporal separation
545+ time .sleep (3 ) # Ensure persistence
546+
547+ # Fetch dataset to get the actual server-assigned timestamp of item1
548+ dataset_after_item1 = langfuse .get_dataset (name )
549+ assert len (dataset_after_item1 .items ) == 1
550+ item1_created_at = dataset_after_item1 .items [0 ].created_at
547551
548- # Capture timestamp AFTER first item, BEFORE second item
549- query_timestamp = datetime . now ( timezone . utc )
550- time .sleep (3 ) # Ensure second item is created AFTER query_timestamp
552+ # Use a timestamp 1 second after item1's actual creation time
553+ query_timestamp = item1_created_at + timedelta ( seconds = 1 )
554+ time .sleep (3 ) # Ensure temporal separation
551555
552556 # Create second item
553557 langfuse .create_dataset_item (dataset_name = name , input = {"version" : "v2" })
0 commit comments