Changeset 97:f11253bd8b69
- Timestamp:
- Mar 7, 2011, 7:40:16 PM (11 years ago)
- Branch:
- default
- Location:
- wokkel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/pubsub.py
r96 r97 139 139 140 140 141 def toElement(self ):141 def toElement(self, defaultUri=None): 142 142 """ 143 143 Return the DOM representation of this subscription. … … 145 145 @rtype: L{domish.Element} 146 146 """ 147 element = domish.Element(( None, 'subscription'))147 element = domish.Element((defaultUri, 'subscription')) 148 148 if self.nodeIdentifier: 149 149 element['node'] = self.nodeIdentifier … … 359 359 if self.items: 360 360 for item in self.items: 361 item.uri = NS_PUBSUB 361 362 verbElement.addChild(item) 362 363 … … 1214 1215 def _toResponse_subscribe(self, result, resource, request): 1215 1216 response = domish.Element((NS_PUBSUB, "pubsub")) 1216 response.addChild(result.toElement( ))1217 response.addChild(result.toElement(NS_PUBSUB)) 1217 1218 return response 1218 1219 … … 1222 1223 subscriptions = response.addElement('subscriptions') 1223 1224 for subscription in result: 1224 subscriptions.addChild(subscription.toElement( ))1225 subscriptions.addChild(subscription.toElement(NS_PUBSUB)) 1225 1226 return response 1226 1227 … … 1308 1309 1309 1310 for item in result: 1311 item.uri = NS_PUBSUB 1310 1312 items.addChild(item) 1311 1313 … … 1358 1360 nodeIdentifier, subscriber, 1359 1361 subscriptions) 1360 message.event.items.children = items 1362 for item in items: 1363 item.uri = NS_PUBSUB_EVENT 1364 message.event.items.addChild(item) 1361 1365 self.send(message) 1362 1366 -
wokkel/test/test_pubsub.py
r96 r97 463 463 child = children[0] 464 464 self.assertEquals('test', child['node']) 465 466 items = [] 467 for element in child.elements(): 468 if element.name == 'item' and element.uri in (NS_PUBSUB, None): 469 items.append(element) 470 465 items = list(domish.generateElementsQNamed(child.children, 466 'item', NS_PUBSUB)) 471 467 self.assertEquals(1, len(items)) 472 468 self.assertIdentical(item, items[0]) … … 2218 2214 self.assertEqual(NS_PUBSUB, element.uri) 2219 2215 subscription = element.subscription 2220 self.assert In(subscription.uri, (None, NS_PUBSUB))2216 self.assertEqual(NS_PUBSUB, subscription.uri) 2221 2217 self.assertEqual('test', subscription['node']) 2222 2218 self.assertEqual('user@example.org/Home', subscription['jid']) … … 2431 2427 subscription = children[0] 2432 2428 self.assertEqual('subscription', subscription.name) 2433 self.assert In(subscription.uri, (None, NS_PUBSUB))2429 self.assertEqual(NS_PUBSUB, subscription.uri, NS_PUBSUB) 2434 2430 self.assertEqual('user@example.org', subscription['jid']) 2435 2431 self.assertEqual('test', subscription['node']) … … 2981 2977 self.assertTrue(domish.IElement.providedBy(item)) 2982 2978 self.assertEqual('item', item.name) 2983 self.assert In(item.uri, (NS_PUBSUB, None))2979 self.assertEqual(NS_PUBSUB, item.uri) 2984 2980 self.assertEqual('current', item['id']) 2985 2981 … … 3061 3057 verify.verifyObject(iwokkel.IPubSubResource, self.resource) 3062 3058 return self.handleRequest(xml) 3059 3060 3061 def test_notifyPublish(self): 3062 """ 3063 Publish notifications are sent to the subscribers. 3064 """ 3065 subscriber = JID('user@example.org') 3066 subscriptions = [pubsub.Subscription('test', subscriber, 'subscribed')] 3067 items = [pubsub.Item('current')] 3068 notifications = [(subscriber, subscriptions, items)] 3069 self.service.notifyPublish(JID('pubsub.example.org'), 'test', 3070 notifications) 3071 message = self.stub.output[-1] 3072 3073 self.assertEquals('message', message.name) 3074 self.assertIdentical(None, message.uri) 3075 self.assertEquals('user@example.org', message['to']) 3076 self.assertEquals('pubsub.example.org', message['from']) 3077 self.assertTrue(message.event) 3078 self.assertEquals(NS_PUBSUB_EVENT, message.event.uri) 3079 self.assertTrue(message.event.items) 3080 self.assertEquals(NS_PUBSUB_EVENT, message.event.items.uri) 3081 self.assertTrue(message.event.items.hasAttribute('node')) 3082 self.assertEquals('test', message.event.items['node']) 3083 itemElements = list(domish.generateElementsQNamed( 3084 message.event.items.children, 'item', NS_PUBSUB_EVENT)) 3085 self.assertEquals(1, len(itemElements)) 3086 self.assertEquals('current', itemElements[0].getAttribute('id')) 3087 3088 3089 def test_notifyPublishCollection(self): 3090 """ 3091 Publish notifications are sent to the subscribers of collections. 3092 3093 The node the item was published to is on the C{items} element, while 3094 the subscribed-to node is in the C{'Collections'} SHIM header. 3095 """ 3096 subscriber = JID('user@example.org') 3097 subscriptions = [pubsub.Subscription('', subscriber, 'subscribed')] 3098 items = [pubsub.Item('current')] 3099 notifications = [(subscriber, subscriptions, items)] 3100 self.service.notifyPublish(JID('pubsub.example.org'), 'test', 3101 notifications) 3102 message = self.stub.output[-1] 3103 3104 self.assertTrue(message.event.items.hasAttribute('node')) 3105 self.assertEquals('test', message.event.items['node']) 3106 headers = shim.extractHeaders(message) 3107 self.assertIn('Collection', headers) 3108 self.assertIn('', headers['Collection']) 3063 3109 3064 3110
Note: See TracChangeset
for help on using the changeset viewer.