示例#1
0
    def test_discover(self):
        mapper = MockPortMapper(available=True)
        manager = PortMapperManager(mappers=[mapper])

        manager.discover()
        assert manager.available
        assert manager._active_mapper is mapper
示例#2
0
    def test_discover_failure(self):
        mapper = MockPortMapper(available=False)
        manager = PortMapperManager(mappers=[mapper])

        manager.discover()
        assert not manager._active_mapper
        assert not manager.available
示例#3
0
    def test_update_node_without_mapping(self):
        mapper = MockPortMapper()
        manager = PortMapperManager(mappers=[mapper])

        manager.update_node(self.node)
        assert self.node.pub_port == 50102
        assert self.node.p2p_pub_port == 50103
示例#4
0
    def test_quit_not_available(self):
        mapper = MockPortMapper()
        manager = PortMapperManager(mappers=[mapper])
        manager.remove_mapping = Mock()

        manager.quit()
        assert not manager.remove_mapping.called
示例#5
0
    def test_create_mapping_failure(self):
        mapper = MockPortMapper(available=True)
        mapper.create_mapping = Mock(side_effect=Exception)
        manager = PortMapperManager(mappers=[mapper])

        manager._active_mapper = mapper
        assert manager.create_mapping(40102) is None
示例#6
0
    def test_create_mapping(self):
        mapper = MockPortMapper(available=True)
        mapper.create_mapping = Mock(return_value=50102)
        manager = PortMapperManager(mappers=[mapper])

        manager._active_mapper = mapper
        assert manager.create_mapping(40102) == 50102
示例#7
0
    def test_update_node(self):
        mapper = MockPortMapper()
        manager = PortMapperManager(mappers=[mapper])
        manager._mapping = {'TCP': {40102: 60102, 40103: 60103, 3282: 6282}}

        manager.update_node(self.node)
        assert self.node.pub_port == 60102
        assert self.node.p2p_pub_port == 60103
示例#8
0
    def test_discover_calls(self):
        mappers = [
            MockPortMapper(available=False, discover_raises=Exception),
            MockPortMapper(available=False),
            MockPortMapper(available=False),
        ]

        manager = PortMapperManager(mappers=mappers)
        manager.discover()
        assert all(mapper.discover_calls == 1 for mapper in mappers)
示例#9
0
    def test_network(self):
        network_dict = {
            'local_ip_address': '192.168.0.10',
            'external_ip_address': '1.2.3.4',
            'connection_type': dict(),
            'status_info': dict()
        }

        mapper = MockPortMapper(network=network_dict)
        manager = PortMapperManager(mappers=[mapper])

        assert manager.network == dict()
        manager._active_mapper = mapper
        assert manager.network == network_dict
示例#10
0
    def test_remove_mapping(self):
        mapper = MockPortMapper(available=True)
        mapper.remove_mapping = Mock(return_value=True)

        manager = PortMapperManager(mappers=[mapper])
        manager._active_mapper = mapper
        manager._mapping = {
            'TCP': {
                40102: 40102,
                40103: 40103,
                3282: 3282
            },
            'UDP': {},
        }
        assert manager.remove_mapping(40102, 40102) is True
示例#11
0
    def test_quit(self):
        mapper = MockPortMapper()
        manager = PortMapperManager(mappers=[mapper])
        manager.remove_mapping = Mock()
        manager._active_mapper = mapper
        manager._mapping = {
            'TCP': {
                40102: 40102,
                40103: 40103,
                3282: 3282
            },
            'UDP': {
                40102: 40102,
                40103: 40103,
                3282: 3282
            },
        }

        manager.quit()
        assert manager.remove_mapping.call_count == sum(
            len(m) for m in manager._mapping.values())
示例#12
0
 def test_create_mapping_not_available(self):
     manager = PortMapperManager(mappers=[MockPortMapper()])
     assert manager.create_mapping(40102) is None
示例#13
0
 def test_exception(self):
     mapper = MockPortMapper()
     mapper.get_mapping = Mock(side_effect=Exception('Test exception'))
     manager = PortMapperManager(mappers=[mapper])
     manager._active_mapper = mapper
     assert not manager.get_mapping(40102)
示例#14
0
 def test_not_available(self):
     mapper = MockPortMapper()
     manager = PortMapperManager(mappers=[mapper])
     assert not manager.get_mapping(40102)
     assert mapper.get_mapping_calls == 0
示例#15
0
 def test_available(self):
     mapper = MockPortMapper()
     manager = PortMapperManager(mappers=[mapper])
     assert not manager.available
     manager._active_mapper = Mock()
     assert manager.available
示例#16
0
    def test_mapping(self):
        mapper = MockPortMapper()
        manager = PortMapperManager(mappers=[mapper])

        assert manager.mapping == manager._mapping
        assert manager.mapping is not manager._mapping
示例#17
0
 def test_remove_mapping_not_available(self):
     mapper = MockPortMapper()
     manager = PortMapperManager(mappers=[mapper])
     assert manager.remove_mapping(40102, 40102) is False