Ignore:
Timestamp:
Feb 25, 2010, 10:14:57 AM (12 years ago)
Author:
Ralph Meijer <ralphm@…>
Branch:
default
Message:

Service Discovery fixes for PubSubService?.

  • PubSubService? now properly implements IDisco.
  • Invalid returned values or exceptions raised by getInfo calls on PubSubResource? instances are now logged and ignored.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • wokkel/test/test_pubsub.py

    r87 r88  
    19041904
    19051905
     1906    def test_interfaceIDisco(self):
     1907        """
     1908        Do instances of L{pubsub.PubSubService} provide L{iwokkel.IDisco}?
     1909        """
     1910        verify.verifyObject(iwokkel.IDisco, self.service)
     1911
     1912
    19061913    def test_connectionMade(self):
    19071914        """
     
    20062013        d = self.service.getDiscoInfo(JID('user@example.org/home'),
    20072014                                      JID('pubsub.example.org'), '')
     2015        d.addCallback(cb)
     2016        return d
     2017
     2018
     2019    def test_getDiscoInfoBadResponse(self):
     2020        """
     2021        If getInfo returns invalid response, it should be logged, then ignored.
     2022        """
     2023        def cb(info):
     2024            self.assertEquals([], info)
     2025            self.assertEqual(1, len(self.flushLoggedErrors(TypeError)))
     2026
     2027        def getInfo(requestor, target, nodeIdentifier):
     2028            return defer.succeed('bad response')
     2029
     2030        self.resource.getInfo = getInfo
     2031        d = self.service.getDiscoInfo(JID('user@example.org/home'),
     2032                                      JID('pubsub.example.org'), 'test')
     2033        d.addCallback(cb)
     2034        return d
     2035
     2036
     2037    def test_getDiscoInfoException(self):
     2038        """
     2039        If getInfo returns invalid response, it should be logged, then ignored.
     2040        """
     2041        def cb(info):
     2042            self.assertEquals([], info)
     2043            self.assertEqual(1, len(self.flushLoggedErrors(NotImplementedError)))
     2044
     2045        def getInfo(requestor, target, nodeIdentifier):
     2046            return defer.fail(NotImplementedError())
     2047
     2048        self.resource.getInfo = getInfo
     2049        d = self.service.getDiscoInfo(JID('user@example.org/home'),
     2050                                      JID('pubsub.example.org'), 'test')
    20082051        d.addCallback(cb)
    20092052        return d
Note: See TracChangeset for help on using the changeset viewer.