Mercurial > libervia-backend
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) |