Skip to content

Commit d27b4cd

Browse files
GWealecopybara-github
authored andcommitted
test: use portable event timestamps
The session test suite truncated wall-clock timestamps to whole seconds and compared them against higher-precision event timestamps, which flaked, and could fail outright on Windows for pre-epoch conversions. This uses time.time() directly for the not-in-the-future assertions and contemporary whole-second timestamps for the filtering fixtures. Co-authored-by: George Weale <gweale@google.com> PiperOrigin-RevId: 949594574
1 parent cecc1f9 commit d27b4cd

1 file changed

Lines changed: 14 additions & 15 deletions

File tree

tests/unittests/sessions/test_session_service.py

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -354,19 +354,13 @@ async def test_create_get_session(session_service):
354354
assert session.user_id == user_id
355355
assert session.id
356356
assert session.state == state
357-
assert (
358-
session.last_update_time
359-
<= datetime.now().astimezone(timezone.utc).timestamp()
360-
)
357+
assert session.last_update_time <= time.time()
361358

362359
got_session = await session_service.get_session(
363360
app_name=app_name, user_id=user_id, session_id=session.id
364361
)
365362
assert got_session == session
366-
assert (
367-
got_session.last_update_time
368-
<= datetime.now().astimezone(timezone.utc).timestamp()
369-
)
363+
assert got_session.last_update_time <= time.time()
370364

371365
session_id = session.id
372366
await session_service.delete_session(
@@ -1042,11 +1036,12 @@ async def test_get_session_with_config(session_service):
10421036
user_id = 'user'
10431037

10441038
num_test_events = 5
1039+
base_timestamp = int(time.time())
10451040
session = await session_service.create_session(
10461041
app_name=app_name, user_id=user_id
10471042
)
10481043
for i in range(1, num_test_events + 1):
1049-
event = Event(author='user', timestamp=i)
1044+
event = Event(author='user', timestamp=base_timestamp + i)
10501045
await session_service.append_event(session, event)
10511046

10521047
# No config, expect all events to be returned.
@@ -1071,20 +1066,24 @@ async def test_get_session_with_config(session_service):
10711066
)
10721067
events = session.events
10731068
assert len(events) == num_recent_events
1074-
assert events[0].timestamp == num_test_events - num_recent_events + 1
1069+
assert (
1070+
events[0].timestamp
1071+
== base_timestamp + num_test_events - num_recent_events + 1
1072+
)
10751073

1076-
# Only expect events after timestamp 4.0 (inclusive), i.e., 2 events.
1077-
after_timestamp = 4.0
1074+
# Only expect events after the fourth timestamp (inclusive), i.e., 2 events.
1075+
after_event_index = 4
1076+
after_timestamp = base_timestamp + after_event_index
10781077
config = GetSessionConfig(after_timestamp=after_timestamp)
10791078
session = await session_service.get_session(
10801079
app_name=app_name, user_id=user_id, session_id=session.id, config=config
10811080
)
10821081
events = session.events
1083-
assert len(events) == num_test_events - after_timestamp + 1
1082+
assert len(events) == num_test_events - after_event_index + 1
10841083
assert events[0].timestamp == after_timestamp
10851084

10861085
# Expect no events if none are > after_timestamp.
1087-
way_after_timestamp = num_test_events * 10
1086+
way_after_timestamp = base_timestamp + num_test_events * 10
10881087
config = GetSessionConfig(after_timestamp=way_after_timestamp)
10891088
session = await session_service.get_session(
10901089
app_name=app_name, user_id=user_id, session_id=session.id, config=config
@@ -1100,7 +1099,7 @@ async def test_get_session_with_config(session_service):
11001099
app_name=app_name, user_id=user_id, session_id=session.id, config=config
11011100
)
11021101
events = session.events
1103-
assert len(events) == num_test_events - after_timestamp + 1
1102+
assert len(events) == num_test_events - after_event_index + 1
11041103

11051104

11061105
@pytest.mark.asyncio

0 commit comments

Comments
 (0)