fix(tests): pad timestamp windows in test_messages for clock skew
Three timestamp tests captured `before_request` / `after_request` with `datetime.now(UTC)` on the host and asserted the server's `created_at` fell within. Under Docker, the Postgres container's clock can skew tens of ms from the macOS host, flipping the assertion intermittently under parallel pytest load. Pad each window by 1 second on both sides — wide enough to absorb realistic skew, narrow enough that the test still proves the timestamp is server-current. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f52115a22f
commit
4676f84ddd
|
|
@ -1001,8 +1001,10 @@ async def test_create_message_without_timestamp_uses_default(
|
|||
db_session.add(test_session)
|
||||
await db_session.commit()
|
||||
|
||||
# Record time before request
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
# Pad the window to absorb client/Postgres clock skew under Docker.
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
response = client.post(
|
||||
f"/v3/workspaces/{test_workspace.name}/sessions/{test_session.name}/messages",
|
||||
|
|
@ -1017,8 +1019,9 @@ async def test_create_message_without_timestamp_uses_default(
|
|||
},
|
||||
)
|
||||
|
||||
# Record time after request
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
assert response.status_code == 201
|
||||
data = response.json()
|
||||
|
|
@ -1053,8 +1056,9 @@ async def test_create_batch_messages_with_mixed_timestamps(
|
|||
timestamp1 = datetime.datetime(2023, 1, 1, 12, 0, 0, tzinfo=datetime.timezone.utc)
|
||||
timestamp2 = datetime.datetime(2023, 1, 2, 12, 0, 0, tzinfo=datetime.timezone.utc)
|
||||
|
||||
# Record time before request for default timestamp
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
response = client.post(
|
||||
f"/v3/workspaces/{test_workspace.name}/sessions/{test_session.name}/messages",
|
||||
|
|
@ -1081,7 +1085,9 @@ async def test_create_batch_messages_with_mixed_timestamps(
|
|||
},
|
||||
)
|
||||
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
assert response.status_code == 201
|
||||
data = response.json()
|
||||
|
|
@ -1124,8 +1130,9 @@ async def test_create_message_with_null_timestamp(
|
|||
db_session.add(test_session)
|
||||
await db_session.commit()
|
||||
|
||||
# Record time before request
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
before_request = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
response = client.post(
|
||||
f"/v3/workspaces/{test_workspace.name}/sessions/{test_session.name}/messages",
|
||||
|
|
@ -1141,7 +1148,9 @@ async def test_create_message_with_null_timestamp(
|
|||
},
|
||||
)
|
||||
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc)
|
||||
after_request = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
|
||||
seconds=1
|
||||
)
|
||||
|
||||
assert response.status_code == 201
|
||||
data = response.json()
|
||||
|
|
|
|||
Loading…
Reference in New Issue