Separate message send from message creation
darcs-hash:20070619160816-86b55-e9c4bf58036e00438f4af470c24c1fda806aed36.gz
This commit is contained in:
@@ -332,7 +332,7 @@ class JCLComponent(Component, object):
|
|||||||
lambda name, from_jid, account_type, lang_class: \
|
lambda name, from_jid, account_type, lang_class: \
|
||||||
self.account_manager.account_type_disco_get_info(),
|
self.account_manager.account_type_disco_get_info(),
|
||||||
lambda name, from_jid, account_type, lang_class: \
|
lambda name, from_jid, account_type, lang_class: \
|
||||||
self.account_manager.root_disco_get_info(
|
self.account_manager.root_disco_get_info(\
|
||||||
self.name,
|
self.name,
|
||||||
self.disco_identity.category,
|
self.disco_identity.category,
|
||||||
self.disco_identity.type))
|
self.disco_identity.type))
|
||||||
|
|||||||
@@ -92,23 +92,32 @@ class Sender(object):
|
|||||||
class MessageSender(Sender):
|
class MessageSender(Sender):
|
||||||
"""Send data as Jabber Message"""
|
"""Send data as Jabber Message"""
|
||||||
|
|
||||||
def send(self, to_account, subject, body):
|
def create_message(self, to_account, data):
|
||||||
"""Implement abstract method from Sender class and send data as Jabber message"""
|
"""Create message to send"""
|
||||||
self.component.stream.send(Message(from_jid=to_account.jid,
|
subject, body = data
|
||||||
|
return Message(from_jid=to_account.jid,
|
||||||
to_jid=to_account.user_jid,
|
to_jid=to_account.user_jid,
|
||||||
subject=subject,
|
subject=subject,
|
||||||
body=body))
|
body=body)
|
||||||
|
|
||||||
class HeadlineSender(Sender):
|
def send(self, to_account, data):
|
||||||
|
"""Implement abstract method from Sender class and send
|
||||||
|
data as Jabber message.
|
||||||
|
"""
|
||||||
|
self.component.stream.send(self.create_message(to_account,
|
||||||
|
data))
|
||||||
|
|
||||||
|
class HeadlineSender(MessageSender):
|
||||||
"""Send data as Jabber Headline"""
|
"""Send data as Jabber Headline"""
|
||||||
|
|
||||||
def send(self, to_account, subject, body):
|
def create_message(self, to_account, data):
|
||||||
"""Implement abstract method from Sender class and send data as Jabber headline"""
|
"""Create headline to send"""
|
||||||
self.component.stream.send(Message(from_jid=to_account.jid,
|
subject, body = data
|
||||||
|
return Message(from_jid=to_account.jid,
|
||||||
to_jid=to_account.user_jid,
|
to_jid=to_account.user_jid,
|
||||||
subject=subject,
|
subject=subject,
|
||||||
stanza_type="headline",
|
stanza_type="headline",
|
||||||
body=body))
|
body=body)
|
||||||
|
|
||||||
class FeederHandler(Handler):
|
class FeederHandler(Handler):
|
||||||
"""Filter (nothing by default) and call sender for each message from
|
"""Filter (nothing by default) and call sender for each message from
|
||||||
@@ -133,7 +142,7 @@ class FeederHandler(Handler):
|
|||||||
Do nothing by default.
|
Do nothing by default.
|
||||||
"""
|
"""
|
||||||
for _account in accounts:
|
for _account in accounts:
|
||||||
for subject, body in self.feeder.feed(_account):
|
for data in self.feeder.feed(_account):
|
||||||
self.sender.send(_account, subject, body)
|
self.sender.send(_account, data)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|||||||
@@ -55,8 +55,8 @@ class SenderMock(object):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.sent = []
|
self.sent = []
|
||||||
|
|
||||||
def send(self, _account, subject, body):
|
def send(self, _account, data):
|
||||||
self.sent.append((_account, subject, body))
|
self.sent.append((_account, data))
|
||||||
|
|
||||||
class FeederComponent_TestCase(JCLComponent_TestCase):
|
class FeederComponent_TestCase(JCLComponent_TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
@@ -214,7 +214,7 @@ class MessageSender_TestCase(unittest.TestCase):
|
|||||||
account11 = Account(user_jid = "user1@test.com", \
|
account11 = Account(user_jid = "user1@test.com", \
|
||||||
name = "account11", \
|
name = "account11", \
|
||||||
jid = "account11@jcl.test.com")
|
jid = "account11@jcl.test.com")
|
||||||
self.sender.send(account11, "subject", "Body message")
|
self.sender.send(account11, ("subject", "Body message"))
|
||||||
self.assertEquals(len(self.comp.stream.sent), 1)
|
self.assertEquals(len(self.comp.stream.sent), 1)
|
||||||
message = self.comp.stream.sent[0]
|
message = self.comp.stream.sent[0]
|
||||||
self.assertEquals(message.get_from(), account11.jid)
|
self.assertEquals(message.get_from(), account11.jid)
|
||||||
@@ -277,8 +277,8 @@ class FeederHandler_TestCase(unittest.TestCase):
|
|||||||
accounts = self.handler.handle(None, None, [account11, account12])
|
accounts = self.handler.handle(None, None, [account11, account12])
|
||||||
sent = self.handler.sender.sent
|
sent = self.handler.sender.sent
|
||||||
self.assertEquals(len(sent), 2)
|
self.assertEquals(len(sent), 2)
|
||||||
self.assertEquals(sent[0], (account11, "subject", "body"))
|
self.assertEquals(sent[0], (account11, ("subject", "body")))
|
||||||
self.assertEquals(sent[1], (account12, "subject", "body"))
|
self.assertEquals(sent[1], (account12, ("subject", "body")))
|
||||||
del account.hub.threadConnection
|
del account.hub.threadConnection
|
||||||
|
|
||||||
def suite():
|
def suite():
|
||||||
|
|||||||
Reference in New Issue
Block a user