mirror of
https://github.com/zulip/zulip.git
synced 2025-11-12 09:58:06 +00:00
queue: Round-trip events through orjson in tests.
This ensures that tests don't rely on non-JSON'able datatypes being able to be put in an event.
This commit is contained in:
committed by
Tim Abbott
parent
b3862c5008
commit
1eb4b65b5a
@@ -225,4 +225,15 @@ def send_event_rollback_unsafe(
|
||||
def send_event_on_commit(
|
||||
realm: Realm, event: Mapping[str, Any], users: Iterable[int] | Iterable[Mapping[str, Any]]
|
||||
) -> None:
|
||||
if not settings.USING_RABBITMQ:
|
||||
# In tests, round-trip the event through JSON, as happens with
|
||||
# RabbitMQ. zerver.lib.queue also enforces this, but the
|
||||
# on-commit nature of the event sending makes it difficult to
|
||||
# trace which event was at fault -- so we also check it
|
||||
# immediately, here.
|
||||
try:
|
||||
event = orjson.loads(orjson.dumps(event))
|
||||
except TypeError:
|
||||
print(event)
|
||||
raise
|
||||
transaction.on_commit(lambda: send_event_rollback_unsafe(realm, event, users))
|
||||
|
||||
Reference in New Issue
Block a user