From 79ecfa71be945acafb6a28b4cbac12abb0138864 Mon Sep 17 00:00:00 2001 From: David Rousselie Date: Tue, 8 Jun 2010 19:30:24 +0200 Subject: Ignore empty message (sent by clients supporting pubsub) --- src/jmc/jabber/message.py | 4 ++++ src/jmc/jabber/tests/message.py | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/jmc/jabber/message.py b/src/jmc/jabber/message.py index 65b453a..184f1cf 100644 --- a/src/jmc/jabber/message.py +++ b/src/jmc/jabber/message.py @@ -82,6 +82,8 @@ class SendMailMessageHandler(MailHandler): def handle(self, stanza, lang_class, data): message = stanza + if message.get_body() is None or message.get_body() == "": + return [] accounts = data to_node = message.get_to().node to_email = to_node.replace('%', '@', 1) @@ -141,6 +143,8 @@ class RootSendMailMessageHandler(SendMailMessageHandler): def handle(self, stanza, lang_class, data): message = stanza + if message.get_body() is None or message.get_body() == "": + return [] accounts = data (message_body, (to_email, diff --git a/src/jmc/jabber/tests/message.py b/src/jmc/jabber/tests/message.py index 734440f..18f2055 100644 --- a/src/jmc/jabber/tests/message.py +++ b/src/jmc/jabber/tests/message.py @@ -120,6 +120,16 @@ class SendMailMessageHandler_TestCase(unittest.TestCase): self.assertEquals(mock_account.email[4], {u"Bcc": "bcc@test.com", u"Cc": "cc@test.com"}) + def test_handle_ignore_empty_message_body(self): + mock_account = MockSMTPAccount() + message = Message(from_jid="user1@test.com", + to_jid="real_dest%test.com@jmc.test.com", + subject="real subject", + body=None) + result = self.handler.handle(\ + message, Lang.en, [mock_account]) + self.assertEquals(len(result), 0) + class RootSendMailMessageHandler_TestCase(JCLTestCase): def setUp(self): JCLTestCase.setUp(self, tables=[Account, GlobalSMTPAccount, @@ -211,6 +221,16 @@ class RootSendMailMessageHandler_TestCase(JCLTestCase): self.assertEquals(mock_account.email[4], {u"Bcc": "bcc@test.com", u"Cc": "cc@test.com"}) + def test_handle_ignore_empty_message_body(self): + mock_account = MockSMTPAccount() + message = Message(from_jid="user1@test.com", + to_jid="jmc.test.com", + subject="real subject", + body=None) + result = self.handler.handle(\ + message, Lang.en, [mock_account]) + self.assertEquals(len(result), 0) + def test_handle_email_not_found_in_header(self): message = Message(from_jid="user1@test.com", to_jid="jmc.test.com", -- cgit v1.2.3