Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dax/jmc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rousselie <david.rousselie@happycoders.org>2010-06-08 21:30:24 +0400
committerDavid Rousselie <david.rousselie@happycoders.org>2010-06-08 21:30:24 +0400
commit79ecfa71be945acafb6a28b4cbac12abb0138864 (patch)
tree4ae14e64ceb8c30714692712b82bbc124e5487e7
parent2de9857a3c97c31d4e462c5725d8f7b69ca6d516 (diff)
Ignore empty message (sent by clients supporting pubsub)
-rw-r--r--src/jmc/jabber/message.py4
-rw-r--r--src/jmc/jabber/tests/message.py20
2 files changed, 24 insertions, 0 deletions
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",