Increase platform abstraction cohesion
This commit is contained in:
@@ -267,6 +267,76 @@ class SignalInboundReplyLinkTests(TransactionTestCase):
|
||||
"Expected sync reaction to be applied via destination-number fallback resolution.",
|
||||
)
|
||||
|
||||
def test_process_raw_inbound_event_applies_edit(self):
|
||||
fake_ur = Mock()
|
||||
fake_ur.message_received = AsyncMock(return_value=None)
|
||||
fake_ur.xmpp = Mock()
|
||||
fake_ur.xmpp.client = Mock()
|
||||
fake_ur.xmpp.client.apply_external_reaction = AsyncMock(return_value=None)
|
||||
client = SignalClient.__new__(SignalClient)
|
||||
client.service = "signal"
|
||||
client.ur = fake_ur
|
||||
client.log = Mock()
|
||||
client.client = Mock()
|
||||
client.client.bot_uuid = ""
|
||||
client.client.phone_number = ""
|
||||
client._resolve_signal_identifiers = AsyncMock(return_value=[self.identifier])
|
||||
client._auto_link_single_user_signal_identifier = AsyncMock(return_value=[])
|
||||
|
||||
payload = {
|
||||
"envelope": {
|
||||
"sourceNumber": "+15550002000",
|
||||
"sourceUuid": "756078fd-d447-426d-a620-581a86d64f51",
|
||||
"timestamp": 1772545466000,
|
||||
"dataMessage": {
|
||||
"editMessage": {
|
||||
"targetSentTimestamp": 1772545458187,
|
||||
"dataMessage": {"message": "anchor edited"},
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
async_to_sync(client._process_raw_inbound_event)(json.dumps(payload))
|
||||
|
||||
self.anchor.refresh_from_db()
|
||||
self.assertEqual("anchor edited", str(self.anchor.text or ""))
|
||||
edits = list((self.anchor.receipt_payload or {}).get("edit_history") or [])
|
||||
self.assertEqual(1, len(edits))
|
||||
|
||||
def test_process_raw_inbound_event_applies_delete_tombstone_flag(self):
|
||||
fake_ur = Mock()
|
||||
fake_ur.message_received = AsyncMock(return_value=None)
|
||||
fake_ur.xmpp = Mock()
|
||||
fake_ur.xmpp.client = Mock()
|
||||
fake_ur.xmpp.client.apply_external_reaction = AsyncMock(return_value=None)
|
||||
client = SignalClient.__new__(SignalClient)
|
||||
client.service = "signal"
|
||||
client.ur = fake_ur
|
||||
client.log = Mock()
|
||||
client.client = Mock()
|
||||
client.client.bot_uuid = ""
|
||||
client.client.phone_number = ""
|
||||
client._resolve_signal_identifiers = AsyncMock(return_value=[self.identifier])
|
||||
client._auto_link_single_user_signal_identifier = AsyncMock(return_value=[])
|
||||
|
||||
payload = {
|
||||
"envelope": {
|
||||
"sourceNumber": "+15550002000",
|
||||
"sourceUuid": "756078fd-d447-426d-a620-581a86d64f51",
|
||||
"timestamp": 1772545467000,
|
||||
"dataMessage": {
|
||||
"delete": {
|
||||
"targetSentTimestamp": 1772545458187,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
async_to_sync(client._process_raw_inbound_event)(json.dumps(payload))
|
||||
|
||||
self.anchor.refresh_from_db()
|
||||
self.assertTrue(bool((self.anchor.receipt_payload or {}).get("is_deleted")))
|
||||
self.assertTrue(bool((self.anchor.receipt_payload or {}).get("deleted") or {}))
|
||||
|
||||
|
||||
class SignalRuntimeCommandWritebackTests(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
Reference in New Issue
Block a user