source:
ralphm-patches/blah.patch
@
45:51ac2274f989
Last change on this file since 45:51ac2274f989 was 45:51ac2274f989, checked in by Ralph Meijer <ralphm@…>, 11 years ago | |
---|---|
File size: 4.1 KB |
-
wokkel/generic.py
# HG changeset patch # Parent a0345fbc24e0350063691188c77dc64fbba743e8 diff -r a0345fbc24e0 -r a10c0972bda4 wokkel/generic.py
a b 39 39 @return: The DOM structure, or C{None} on empty or incomplete input. 40 40 @rtype: L{domish.Element} 41 41 """ 42 roots = []43 42 results = [] 44 43 elementStream = domish.elementStream() 45 elementStream.DocumentStartEvent = roots.append46 elementStream.ElementEvent = lambda elem: r oots[0].addChild(elem)47 elementStream.DocumentEndEvent = lambda: results.append(roots[0])48 elementStream.parse( string)44 elementStream.DocumentStartEvent = lambda _: None 45 elementStream.ElementEvent = lambda elem: results.append(elem) 46 elementStream.DocumentEndEvent = lambda: None 47 elementStream.parse('<dummy>%s</dummy>' % string) 49 48 return results and results[0] or None 50 49 51 50 -
wokkel/pubsub.py
diff -r a0345fbc24e0 -r a10c0972bda4 wokkel/pubsub.py
a b 159 159 """ 160 160 Publish subscribe item. 161 161 162 @ivar itemIdentifier: optional item identifier162 @ivar itemIdentifier: Optional item identifier. 163 163 @type itemIdentifier: L{unicode} 164 @ivar payload: optional item payload. Either as a domish element, or as164 @ivar payload: Optional item payload. Either as a L{domish.Element}, or as 165 165 serialized XML. 166 @type payload: object providing L{domish.IElement} or L{unicode}. 166 @type payload: Object providing L{domish.IElement} or L{unicode}. 167 @ivar timestamp: Optional timestamp when the item was published as 8601 168 string. Timestamps that include a time component must have a time zone 169 indicated. 170 @type timestamp: C{unicode} 171 @ivar publisher: Optional entity that published this item. 172 @type publisher: L{JID} 167 173 """ 168 174 169 def __init__(self, itemIdentifier=None, payload=None): 175 def __init__(self, itemIdentifier=None, payload=None, 176 timestamp=None, publisher=None): 170 177 self.itemIdentifier = itemIdentifier 171 178 self.payload = payload 179 self.timestamp = timestamp 180 self.publisher = publisher 172 181 173 182 174 183 def toElement(self, namespace=NS_PUBSUB): … … 191 200 192 201 if self.payload is not None: 193 202 if isinstance(self.payload, basestring): 194 self.addRawXml(self.payload)203 element.addRawXml(self.payload) 195 204 else: 196 self.addChild(self.payload)205 element.addChild(self.payload) 197 206 198 207 return element 199 208 … … 1329 1338 message = self._createNotification('items', service, 1330 1339 nodeIdentifier, subscriber, 1331 1340 subscriptions) 1332 message.event.items.children = items 1341 for item in items: 1342 message.event.items.addChild(item.toElement()) 1333 1343 self.send(message) 1334 1344 1335 1345 -
wokkel/test/test_pubsub.py
diff -r a0345fbc24e0 -r a10c0972bda4 wokkel/test/test_pubsub.py
a b 115 115 116 116 117 117 118 class ItemTest(unittest.TestCase): 119 120 def test_toElement(self): 121 item = pubsub.Item(itemIdentifier='test') 122 element = item.toElement() 123 self.assertEquals('test', element.getAttribute('id')) 124 125 126 def test_toElementPayload(self): 127 payload = domish.Element(('testns', 'test')) 128 item = pubsub.Item(itemIdentifier='test', payload=payload) 129 element = item.toElement() 130 self.assertNotIdentical(None, element.test) 131 self.assertEquals('testns', element.test.uri) 132 133 134 def test_toElementPayloadRawXML(self): 135 payload = u"<test xmlns='testns'/>" 136 item = pubsub.Item(itemIdentifier='test', payload=payload) 137 element = item.toElement() 138 self.assertEquals(1, len(element.children)) 139 self.assertEquals(payload, element.children[0]) 140 141 118 142 class PubSubClientTest(unittest.TestCase): 119 143 timeout = 2 120 144
Note: See TracBrowser
for help on using the repository browser.