Ignore empty message (sent by clients supporting pubsub)

This commit is contained in:
David Rousselie
2010-06-08 19:30:24 +02:00
parent 2de9857a3c
commit 79ecfa71be
2 changed files with 24 additions and 0 deletions

View File

@@ -82,6 +82,8 @@ class SendMailMessageHandler(MailHandler):
def handle(self, stanza, lang_class, data): def handle(self, stanza, lang_class, data):
message = stanza message = stanza
if message.get_body() is None or message.get_body() == "":
return []
accounts = data accounts = data
to_node = message.get_to().node to_node = message.get_to().node
to_email = to_node.replace('%', '@', 1) to_email = to_node.replace('%', '@', 1)
@@ -141,6 +143,8 @@ class RootSendMailMessageHandler(SendMailMessageHandler):
def handle(self, stanza, lang_class, data): def handle(self, stanza, lang_class, data):
message = stanza message = stanza
if message.get_body() is None or message.get_body() == "":
return []
accounts = data accounts = data
(message_body, (message_body,
(to_email, (to_email,

View File

@@ -120,6 +120,16 @@ class SendMailMessageHandler_TestCase(unittest.TestCase):
self.assertEquals(mock_account.email[4], {u"Bcc": "bcc@test.com", self.assertEquals(mock_account.email[4], {u"Bcc": "bcc@test.com",
u"Cc": "cc@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): class RootSendMailMessageHandler_TestCase(JCLTestCase):
def setUp(self): def setUp(self):
JCLTestCase.setUp(self, tables=[Account, GlobalSMTPAccount, 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", self.assertEquals(mock_account.email[4], {u"Bcc": "bcc@test.com",
u"Cc": "cc@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): def test_handle_email_not_found_in_header(self):
message = Message(from_jid="user1@test.com", message = Message(from_jid="user1@test.com",
to_jid="jmc.test.com", to_jid="jmc.test.com",