comparison src/plugins/plugin_xep_0033.py @ 787:dd656d745d6a

test: added tests for XEP-0033
author souliane <souliane@mailoo.org>
date Sun, 05 Jan 2014 13:05:31 +0100
parents ff9a52077b36
children 1fe00f0c9a91
comparison
equal deleted inserted replaced
786:c3acc1298a2f 787:dd656d745d6a
94 entries = [entry.split(':') for entry in mess_data['extra']['address'].split('\n') if entry != ''] 94 entries = [entry.split(':') for entry in mess_data['extra']['address'].split('\n') if entry != '']
95 for type_, jid_ in entries: 95 for type_, jid_ in entries:
96 element.addChild(domish.Element((None, 'address'), None, {'type': type_, 'jid': jid_})) 96 element.addChild(domish.Element((None, 'address'), None, {'type': type_, 'jid': jid_}))
97 # when the prosody plugin is completed, we can immediately return mess_data from here 97 # when the prosody plugin is completed, we can immediately return mess_data from here
98 self.sendAndStoreMessage(mess_data, entries, profile) 98 self.sendAndStoreMessage(mess_data, entries, profile)
99 return Failure(MessageSentAndStored("XEP-0033 took over")) 99 return Failure(MessageSentAndStored("XEP-0033 took over", mess_data))
100 d = self.host.requestServerDisco(NS_ADDRESS, profile_key=profile) 100 d = self.host.requestServerDisco(NS_ADDRESS, profile_key=profile)
101 d.addCallbacks(discoCallback, lambda dummy: discoCallback(None)) 101 d.addCallbacks(discoCallback, lambda dummy: discoCallback(None))
102 return d 102 return d
103 103
104 treatments.addCallback(treatment) 104 treatments.addCallback(treatment)
149 def messageReceivedTrigger(self, message, post_treat, profile): 149 def messageReceivedTrigger(self, message, post_treat, profile):
150 """In order to save the addressing information in the history""" 150 """In order to save the addressing information in the history"""
151 def post_treat_addr(data, addresses): 151 def post_treat_addr(data, addresses):
152 data['extra']['addresses'] = "" 152 data['extra']['addresses'] = ""
153 for address in addresses: 153 for address in addresses:
154 data['extra']['addresses'] += '%s:%s\n' % (address['type'], address['jid']) 154 # Depending how message has been constructed, we could get here
155 # some noise like "\n " instead of an address element.
156 if isinstance(address, domish.Element):
157 data['extra']['addresses'] += '%s:%s\n' % (address['type'], address['jid'])
155 return data 158 return data
156 159
157 try: 160 try:
158 addresses = message.elements(NS_ADDRESS, 'addresses').next() 161 addresses = message.elements(NS_ADDRESS, 'addresses').next()
159 post_treat.addCallback(post_treat_addr, addresses.children) 162 post_treat.addCallback(post_treat_addr, addresses.children)