from asgiref.sync import async_to_sync from django.test import SimpleTestCase from core.clients import transport from core.transports.capabilities import ( capability_snapshot, supports, unsupported_reason, ) class TransportCapabilitiesTests(SimpleTestCase): def test_signal_reactions_supported(self): self.assertTrue(supports("signal", "reactions")) def test_instagram_reactions_not_supported(self): self.assertFalse(supports("instagram", "reactions")) self.assertIn( "instagram does not support reactions", unsupported_reason("instagram", "reactions"), ) def test_snapshot_has_schema_version(self): snapshot = capability_snapshot() self.assertIn("schema_version", snapshot) self.assertIn("services", snapshot) def test_transport_send_fails_fast_when_unsupported(self): result = async_to_sync(transport.send_message_raw)( "xmpp", "person@example.com", text="hello", ) self.assertFalse(result)