示例#1
0
 def setUp(self):
     self.registry = TransportRegistry()
示例#2
0
 def setUp(self):
     self.registry = TransportRegistry()
示例#3
0
class TestTransportRegistry(TestCase):

    def setUp(self):
        self.registry = TransportRegistry()

    def test_add(self):
        transport = MockTransport('mock-transport')
        assert self.registry.add(transport)
        assert not self.registry.add(transport)
        assert transport.name in self.registry.get_known_transports()

    def test_find_transports(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=['1.0'])
        self.registry.add(transport1)
        self.registry.add(transport2)
        transports = self.registry.find_transports('0.9')
        assert len(transports) == 1
        assert transport1.name in transports
        transports = self.registry.find_transports('1.0')
        assert len(transports) == 2
        assert transport1.name in transports
        assert transport2.name in transports

    def test_get_known_transports(self):
        assert len(self.registry.get_known_transports()) == 0
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=[])
        self.registry.add(transport1)
        self.registry.add(transport2)
        transports = self.registry.get_known_transports()
        assert len(transports) == 2
        assert transport1.name in transports
        assert transport2.name in transports

    def test_get_transport(self):
        transport = MockTransport('mock-transport')
        self.registry.add(transport)
        assert self.registry.get_transport(transport.name) is transport
        assert self.registry.get_transport('bad-transport') is None
        assert self.registry.get_transport(transport.name.upper()) is None

    def test_negotiate_transport(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=['1.0'])
        self.registry.add(transport1)
        self.registry.add(transport2)
        assert self.registry.negotiate_transport([], '0.9') is None
        assert self.registry.negotiate_transport(['bad-transport'], '0.9') is None
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '0.9') is transport1
        assert self.registry.negotiate_transport([transport2.name, transport1.name], '0.9') is transport1
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.0') is transport1
        assert self.registry.negotiate_transport([transport2.name, transport1.name], '1.0') is transport2
        assert self.registry.remove(transport1.name) is transport1
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.0') is transport2
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.1') is None

    def test_remove(self):
        transport = MockTransport('mock-transport')
        assert self.registry.remove('bad-transport') is None
        self.registry.add(transport)
        assert len(self.registry.get_known_transports()) == 1
        assert self.registry.remove(transport.name.upper()) is None
        assert self.registry.remove(transport.name) is transport
        assert self.registry.remove(transport.name) is None
        assert len(self.registry.get_known_transports()) == 0

    def test_reset(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2')
        self.registry.reset()
        self.registry.add(transport1)
        self.registry.add(transport2)
        assert not transport1.is_reset
        assert not transport2.is_reset
        self.registry.reset()
        assert transport1.is_reset
        assert transport2.is_reset
示例#4
0
class TestTransportRegistry(TestCase):

    def setUp(self):
        self.registry = TransportRegistry()

    def test_add(self):
        transport = MockTransport('mock-transport')
        assert self.registry.add(transport)
        assert not self.registry.add(transport)
        assert transport.name in self.registry.get_known_transports()

    def test_find_transports(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=['1.0'])
        self.registry.add(transport1)
        self.registry.add(transport2)
        transports = self.registry.find_transports('0.9')
        assert len(transports) == 1
        assert transport1.name in transports
        transports = self.registry.find_transports('1.0')
        assert len(transports) == 2
        assert transport1.name in transports
        assert transport2.name in transports

    def test_get_known_transports(self):
        assert len(self.registry.get_known_transports()) == 0
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=[])
        self.registry.add(transport1)
        self.registry.add(transport2)
        transports = self.registry.get_known_transports()
        assert len(transports) == 2
        assert transport1.name in transports
        assert transport2.name in transports

    def test_get_transport(self):
        transport = MockTransport('mock-transport')
        self.registry.add(transport)
        assert self.registry.get_transport(transport.name) is transport
        assert self.registry.get_transport('bad-transport') is None
        assert self.registry.get_transport(transport.name.upper()) is None

    def test_negotiate_transport(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2', only_versions=['1.0'])
        self.registry.add(transport1)
        self.registry.add(transport2)
        assert self.registry.negotiate_transport([], '0.9') is None
        assert self.registry.negotiate_transport(['bad-transport'], '0.9') is None
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '0.9') is transport1
        assert self.registry.negotiate_transport([transport2.name, transport1.name], '0.9') is transport1
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.0') is transport1
        assert self.registry.negotiate_transport([transport2.name, transport1.name], '1.0') is transport2
        assert self.registry.remove(transport1.name) is transport1
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.0') is transport2
        assert self.registry.negotiate_transport([transport1.name, transport2.name], '1.1') is None

    def test_remove(self):
        transport = MockTransport('mock-transport')
        assert self.registry.remove('bad-transport') is None
        self.registry.add(transport)
        assert len(self.registry.get_known_transports()) == 1
        assert self.registry.remove(transport.name.upper()) is None
        assert self.registry.remove(transport.name) is transport
        assert self.registry.remove(transport.name) is None
        assert len(self.registry.get_known_transports()) == 0

    def test_reset(self):
        transport1 = MockTransport('mock-transport-1')
        transport2 = MockTransport('mock-transport-2')
        self.registry.reset()
        self.registry.add(transport1)
        self.registry.add(transport2)
        assert not transport1.is_reset
        assert not transport2.is_reset
        self.registry.reset()
        assert transport1.is_reset
        assert transport2.is_reset