comparison src/tmp/wokkel/test/test_rsm.py @ 1816:2a030a830ebd

test (RSM): fix according to modification in sat.tmp.wokkel.rsm in rev 1771 (b77dc676a4df)
author souliane <souliane@mailoo.org>
date Tue, 19 Jan 2016 14:59:13 +0100
parents ec764bfb146d
children
comparison
equal deleted inserted replaced
1815:ec764bfb146d 1816:2a030a830ebd
20 from sat.tmp.wokkel import pubsub 20 from sat.tmp.wokkel import pubsub
21 from sat.tmp.wokkel.rsm import NS_RSM, RSMRequest, RSMResponse, PubSubClient, PubSubService 21 from sat.tmp.wokkel.rsm import NS_RSM, RSMRequest, RSMResponse, PubSubClient, PubSubService
22 22
23 import uuid 23 import uuid
24 24
25 RSMResponse.__eq__ = lambda self, other: self.first == other.first and\
26 self.last == other.last and\
27 self.index == other.index and\
28 self.count == other.count
25 29
26 class RSMRequestTest(unittest.TestCase): 30 class RSMRequestTest(unittest.TestCase):
27 """ 31 """
28 Tests for L{rsm.RSMRequest}. 32 Tests for L{rsm.RSMRequest}.
29 """ 33 """
172 """ 176 """
173 element = domish.Element((pubsub.NS_PUBSUB, 'pubsub')) 177 element = domish.Element((pubsub.NS_PUBSUB, 'pubsub'))
174 element.addElement('items')['max_items'] = u'10' 178 element.addElement('items')['max_items'] = u'10'
175 RSMRequest(3).render(element) 179 RSMRequest(3).render(element)
176 180
177 self.assertEqual(u'3', element.items['max_items']) # changed 181 self.assertEqual(u'10', element.items['max_items']) # not changed
178 182
179 self.assertEqual(NS_RSM, element.set.uri) 183 self.assertEqual(NS_RSM, element.set.uri)
180 self.assertEqual(u'3', ''.join(element.set.max.children)) 184 self.assertEqual(u'3', ''.join(element.set.max.children))
181 self.assertIdentical(None, element.set.after) 185 self.assertIdentical(None, element.set.after)
182 self.assertIdentical(None, element.set.before) 186 self.assertIdentical(None, element.set.before)
185 def test_renderItems(self): 189 def test_renderItems(self):
186 """ 190 """
187 Embed a page request in the element, specify items. 191 Embed a page request in the element, specify items.
188 """ 192 """
189 element = domish.Element(('jabber:iq:search', 'query')) 193 element = domish.Element(('jabber:iq:search', 'query'))
190 RSMRequest(5, 127).render(element) 194 RSMRequest(5, index=127).render(element)
191 self.assertEqual(NS_RSM, element.set.uri) 195 self.assertEqual(NS_RSM, element.set.uri)
192 self.assertEqual(u'5', ''.join(element.set.max.children)) 196 self.assertEqual(u'5', ''.join(element.set.max.children))
193 self.assertIdentical(None, element.set.after) 197 self.assertIdentical(None, element.set.after)
194 self.assertIdentical(None, element.set.before) 198 self.assertIdentical(None, element.set.before)
195 self.assertEqual(u'127', ''.join(element.set.index.children)) 199 self.assertEqual(u'127', ''.join(element.set.index.children))
226 230
227 def test___init__(self): 231 def test___init__(self):
228 """ 232 """
229 Fail to initialize a RSMResponse with wrong attribute values. 233 Fail to initialize a RSMResponse with wrong attribute values.
230 """ 234 """
231 self.assertRaises(AssertionError, RSMResponse, count=u'1')
232 self.assertRaises(AssertionError, RSMResponse, index=127, first=u'127') 235 self.assertRaises(AssertionError, RSMResponse, index=127, first=u'127')
233 self.assertRaises(AssertionError, RSMResponse, index=127, last=u'351') 236 self.assertRaises(AssertionError, RSMResponse, index=127, last=u'351')
234 self.assertRaises(AssertionError, RSMResponse, first=u'127', last=u'351')
235 self.assertRaises(AssertionError, RSMResponse, index=u'127',
236 first=u'127', last=u'351')
237 self.assertRaises(AssertionError, RSMResponse, index=127,
238 first=127, last=u'351')
239 self.assertRaises(AssertionError, RSMResponse, index=127,
240 first=u'127', last=351)
241 237
242 def test_parse(self): 238 def test_parse(self):
243 """ 239 """
244 Parse a response element returning a page. 240 Parse a response element returning a page.
245 """ 241 """
278 def test_render(self): 274 def test_render(self):
279 """ 275 """
280 Embed a page response in the element. 276 Embed a page response in the element.
281 """ 277 """
282 element = domish.Element(('jabber:iq:search', 'query')) 278 element = domish.Element(('jabber:iq:search', 'query'))
283 RSMResponse(800, 20, u'stpeter@jabber.org', 279 RSMResponse(u'stpeter@jabber.org', u'peterpan@neverland.lit', 20, 800).render(element)
284 u'peterpan@neverland.lit').render(element)
285 280
286 self.assertEqual(NS_RSM, element.set.uri) 281 self.assertEqual(NS_RSM, element.set.uri)
287 self.assertEqual(u'800', ''.join(element.set.count.children)) 282 self.assertEqual(u'800', ''.join(element.set.count.children))
288 self.assertEqual(u'stpeter@jabber.org', 283 self.assertEqual(u'stpeter@jabber.org',
289 ''.join(element.set.first.children)) 284 ''.join(element.set.first.children))
294 def test_renderEmptySet(self): 289 def test_renderEmptySet(self):
295 """ 290 """
296 Embed a page response in the element, for empty set. 291 Embed a page response in the element, for empty set.
297 """ 292 """
298 element = domish.Element(('jabber:iq:search', 'query')) 293 element = domish.Element(('jabber:iq:search', 'query'))
299 RSMResponse(800).render(element) 294 RSMResponse(count=800).render(element)
300 295
301 self.assertEqual(NS_RSM, element.set.uri) 296 self.assertEqual(NS_RSM, element.set.uri)
302 self.assertEqual(u'800', ''.join(element.set.count.children)) 297 self.assertEqual(u'800', ''.join(element.set.count.children))
303 self.assertIdentical(None, element.set.first) 298 self.assertIdentical(None, element.set.first)
304 self.assertIdentical(None, element.set.last) 299 self.assertIdentical(None, element.set.last)
322 """ 317 """
323 def cb(response): 318 def cb(response):
324 items, rsm = response 319 items, rsm = response
325 self.assertEquals(2, len(items)) 320 self.assertEquals(2, len(items))
326 self.assertEquals([item1, item2], items) 321 self.assertEquals([item1, item2], items)
327 self.assertDictEqual(rsm, {'count': '800', 'index': '0', 322 self.assertEquals(rsm, RSMResponse('item1', 'item2', 0, 800))
328 'first': 'item1', 'last': 'item2'})
329 323
330 d = self.protocol.items(JID('pubsub.example.org'), 'test', 324 d = self.protocol.items(JID('pubsub.example.org'), 'test',
331 rsm_request=RSMRequest(2)) 325 rsm_request=RSMRequest(2))
332 d.addCallback(cb) 326 d.addCallback(cb)
333 327
354 items['node'] = 'test' 348 items['node'] = 'test'
355 item1 = items.addElement('item') 349 item1 = items.addElement('item')
356 item1['id'] = 'item1' 350 item1['id'] = 'item1'
357 item2 = items.addElement('item') 351 item2 = items.addElement('item')
358 item2['id'] = 'item2' 352 item2['id'] = 'item2'
359 RSMResponse(800, 0, u'item1', u'item2').render(response.pubsub) 353 RSMResponse(u'item1', u'item2', 0, 800).render(response.pubsub)
360 self.stub.send(response) 354 self.stub.send(response)
361 355
362 return d 356 return d
363 357
364 def test_itemsAfter(self): 358 def test_itemsAfter(self):
367 """ 361 """
368 def cb(response): 362 def cb(response):
369 items, rsm = response 363 items, rsm = response
370 self.assertEquals(2, len(items)) 364 self.assertEquals(2, len(items))
371 self.assertEquals([item1, item2], items) 365 self.assertEquals([item1, item2], items)
372 self.assertDictEqual(rsm, {'count': '800', 'index': '2', 366 self.assertEquals(rsm, RSMResponse('item3', 'item4', 2, 800))
373 'first': 'item3', 'last': 'item4'})
374 367
375 d = self.protocol.items(JID('pubsub.example.org'), 'test', 368 d = self.protocol.items(JID('pubsub.example.org'), 'test',
376 rsm_request=RSMRequest(2, after=u'item2')) 369 rsm_request=RSMRequest(2, after=u'item2'))
377 d.addCallback(cb) 370 d.addCallback(cb)
378 371
400 items['node'] = 'test' 393 items['node'] = 'test'
401 item1 = items.addElement('item') 394 item1 = items.addElement('item')
402 item1['id'] = 'item3' 395 item1['id'] = 'item3'
403 item2 = items.addElement('item') 396 item2 = items.addElement('item')
404 item2['id'] = 'item4' 397 item2['id'] = 'item4'
405 RSMResponse(800, 2, u'item3', u'item4').render(response.pubsub) 398 RSMResponse(u'item3', u'item4', 2, 800).render(response.pubsub)
406 self.stub.send(response) 399 self.stub.send(response)
407 400
408 return d 401 return d
409 402
410 def test_itemsBefore(self): 403 def test_itemsBefore(self):
413 """ 406 """
414 def cb(response): 407 def cb(response):
415 items, rsm = response 408 items, rsm = response
416 self.assertEquals(2, len(items)) 409 self.assertEquals(2, len(items))
417 self.assertEquals([item1, item2], items) 410 self.assertEquals([item1, item2], items)
418 self.assertDictEqual(rsm, {'count': '800', 'index': '0', 411 self.assertEquals(rsm, RSMResponse('item1', 'item2', 0, 800))
419 'first': 'item1', 'last': 'item2'})
420 412
421 d = self.protocol.items(JID('pubsub.example.org'), 'test', 413 d = self.protocol.items(JID('pubsub.example.org'), 'test',
422 rsm_request=RSMRequest(2, before=u'item3')) 414 rsm_request=RSMRequest(2, before=u'item3'))
423 d.addCallback(cb) 415 d.addCallback(cb)
424 416
446 items['node'] = 'test' 438 items['node'] = 'test'
447 item1 = items.addElement('item') 439 item1 = items.addElement('item')
448 item1['id'] = 'item1' 440 item1['id'] = 'item1'
449 item2 = items.addElement('item') 441 item2 = items.addElement('item')
450 item2['id'] = 'item2' 442 item2['id'] = 'item2'
451 RSMResponse(800, 0, u'item1', u'item2').render(response.pubsub) 443 RSMResponse(u'item1', u'item2', 0, 800).render(response.pubsub)
452 self.stub.send(response) 444 self.stub.send(response)
453 445
454 return d 446 return d
455 447
456 def test_itemsIndex(self): 448 def test_itemsIndex(self):
459 """ 451 """
460 def cb(response): 452 def cb(response):
461 items, rsm = response 453 items, rsm = response
462 self.assertEquals(3, len(items)) 454 self.assertEquals(3, len(items))
463 self.assertEquals([item1, item2, item3], items) 455 self.assertEquals([item1, item2, item3], items)
464 self.assertDictEqual(rsm, {'count': '800', 'index': '3', 456 self.assertEquals(rsm, RSMResponse('item4', 'item6', 3, 800))
465 'first': 'item4', 'last': 'item6'})
466 457
467 d = self.protocol.items(JID('pubsub.example.org'), 'test', 458 d = self.protocol.items(JID('pubsub.example.org'), 'test',
468 rsm_response=RSMRequest(3, 3)) 459 rsm_request=RSMRequest(3, index=3))
469 d.addCallback(cb) 460 d.addCallback(cb)
470 461
471 iq = self.stub.output[-1] 462 iq = self.stub.output[-1]
472 self.assertEquals('pubsub.example.org', iq.getAttribute('to')) 463 self.assertEquals('pubsub.example.org', iq.getAttribute('to'))
473 self.assertEquals('get', iq.getAttribute('type')) 464 self.assertEquals('get', iq.getAttribute('type'))
494 item1['id'] = 'item4' 485 item1['id'] = 'item4'
495 item2 = items.addElement('item') 486 item2 = items.addElement('item')
496 item2['id'] = 'item5' 487 item2['id'] = 'item5'
497 item3 = items.addElement('item') 488 item3 = items.addElement('item')
498 item3['id'] = 'item6' 489 item3['id'] = 'item6'
499 RSMResponse(800, 3, u'item4', u'item6').render(response.pubsub) 490 RSMResponse(u'item4', u'item6', 3, 800).render(response.pubsub)
500 self.stub.send(response) 491 self.stub.send(response)
501 492
502 return d 493 return d
503 494
504 def test_itemsCount(self): 495 def test_itemsCount(self):
506 Test sending items request to count them. 497 Test sending items request to count them.
507 """ 498 """
508 def cb(response): 499 def cb(response):
509 items, rsm = response 500 items, rsm = response
510 self.assertEquals(0, len(items)) 501 self.assertEquals(0, len(items))
511 self.assertDictEqual(rsm, {'count': '800'}) 502 self.assertEquals(rsm, RSMResponse(count=800))
512 503
513 d = self.protocol.items(JID('pubsub.example.org'), 'test', 504 d = self.protocol.items(JID('pubsub.example.org'), 'test',
514 rsm_request=RSMRequest(0)) 505 rsm_request=RSMRequest(0))
515 d.addCallback(cb) 506 d.addCallback(cb)
516 507
531 set_elt = set_elts[0] 522 set_elt = set_elts[0]
532 self.assertEquals(u'0', ''.join(set_elt.max.children)) 523 self.assertEquals(u'0', ''.join(set_elt.max.children))
533 524
534 response = toResponse(iq, 'result') 525 response = toResponse(iq, 'result')
535 response.addElement((pubsub.NS_PUBSUB, 'pubsub')) 526 response.addElement((pubsub.NS_PUBSUB, 'pubsub'))
536 RSMResponse(800).render(response.pubsub) 527 RSMResponse(count=800).render(response.pubsub)
537 self.stub.send(response) 528 self.stub.send(response)
538 529
539 return d 530 return d
540 531
541 532
562 </set> 553 </set>
563 </iq> 554 </iq>
564 """ 555 """
565 556
566 def items(request): 557 def items(request):
567 rsm = RSMResponse(800, 0, u'item', u'item').toElement() 558 rsm = RSMResponse(u'item', u'item', 0, 800).toElement()
568 return defer.succeed([pubsub.Item('current'), rsm]) 559 return defer.succeed([pubsub.Item('current'), rsm])
569 560
570 def cb(element): 561 def cb(element):
571 self.assertEqual(pubsub.NS_PUBSUB, element.uri) 562 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
572 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri) 563 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)
604 </set> 595 </set>
605 </iq> 596 </iq>
606 """ 597 """
607 598
608 def items(request): 599 def items(request):
609 rsm = RSMResponse(800, 3, u'i1', u'i2').toElement() 600 rsm = RSMResponse(u'i1', u'i2', 3, 800).toElement()
610 return defer.succeed([pubsub.Item('i1'), pubsub.Item('i2'), rsm]) 601 return defer.succeed([pubsub.Item('i1'), pubsub.Item('i2'), rsm])
611 602
612 def cb(element): 603 def cb(element):
613 self.assertEqual(pubsub.NS_PUBSUB, element.uri) 604 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
614 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri) 605 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)
650 </set> 641 </set>
651 </iq> 642 </iq>
652 """ 643 """
653 644
654 def items(request): 645 def items(request):
655 rsm = RSMResponse(800).toElement() 646 rsm = RSMResponse(count=800).toElement()
656 return defer.succeed([rsm]) 647 return defer.succeed([rsm])
657 648
658 def cb(element): 649 def cb(element):
659 self.assertEqual(pubsub.NS_PUBSUB, element.uri) 650 self.assertEqual(pubsub.NS_PUBSUB, element.uri)
660 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri) 651 self.assertEqual(pubsub.NS_PUBSUB, element.items.uri)