test(matrix): fold plaintext-room case into the encrypted-drop warn test
Keep two invariant tests: the warn-once test now also carries a plaintext room in the same sync (must not warn) and asserts the MATRIX_E2EE_MODE hint; the crypto-attached test stays. Drops the standalone plaintext test.
This commit is contained in:
@@ -1191,17 +1191,21 @@ class TestMatrixSyncLoop:
|
||||
adapter._client = fake_client
|
||||
|
||||
sync_data = {
|
||||
"rooms": {"join": {"!enc:example.org": {
|
||||
"timeline": {"events": [{"type": "m.room.encrypted", "event_id": "$e1"}]}}}},
|
||||
"rooms": {"join": {
|
||||
"!enc:example.org": {"timeline": {"events": [
|
||||
{"type": "m.room.encrypted", "event_id": "$e1"}]}},
|
||||
"!plain:example.org": {"timeline": {"events": [
|
||||
{"type": "m.room.message", "event_id": "$m1"}]}},
|
||||
}},
|
||||
"next_batch": "s1",
|
||||
}
|
||||
with caplog.at_level(logging.WARNING, logger="plugins.platforms.matrix.adapter"):
|
||||
await adapter._absorb_sync(fake_client, sync_data)
|
||||
await adapter._absorb_sync(fake_client, sync_data) # rate-limited: one warning per room
|
||||
|
||||
warnings = [r for r in caplog.records
|
||||
if "!enc:example.org" in r.getMessage() and "encrypted" in r.getMessage()]
|
||||
warnings = [r.getMessage() for r in caplog.records if "encrypted" in r.getMessage()]
|
||||
assert len(warnings) == 1
|
||||
assert "!enc:example.org" in warnings[0] and "MATRIX_E2EE_MODE" in warnings[0]
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_absorb_sync_no_encrypted_warning_when_crypto_attached(self, caplog):
|
||||
@@ -1223,26 +1227,6 @@ class TestMatrixSyncLoop:
|
||||
|
||||
assert not [r for r in caplog.records if "encrypted" in r.getMessage()]
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_absorb_sync_no_warning_for_plaintext_events_without_crypto(
|
||||
self, caplog
|
||||
):
|
||||
"""Plain rooms must not trip the encrypted-drop warning."""
|
||||
adapter = _make_adapter()
|
||||
adapter._closing = False
|
||||
fake_client = self._cryptoless_client()
|
||||
adapter._client = fake_client
|
||||
|
||||
sync_data = {
|
||||
"rooms": {"join": {"!plain:example.org": {
|
||||
"timeline": {"events": [{"type": "m.room.message", "event_id": "$m1"}]}}}},
|
||||
"next_batch": "s1",
|
||||
}
|
||||
with caplog.at_level(logging.WARNING, logger="plugins.platforms.matrix.adapter"):
|
||||
await adapter._absorb_sync(fake_client, sync_data)
|
||||
|
||||
assert not [r for r in caplog.records if "encrypted" in r.getMessage()]
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_sync_loop_dispatches_registered_room_message_handler(self):
|
||||
"""Inbound sync data should flow through handle_sync into message handling."""
|
||||
|
||||
Reference in New Issue
Block a user