def test_local_port(self): port_config = get_port_config([]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(return_value=False) mapper = PortMapper(port_config, upnpc) existing_ports = [2000, 2001, 2003] self.assertEquals([80, 2002, 2004], mapper.find_available_ports_to_try(existing_ports, 80, 3))
def test_open_port(self): port_config = get_port_config([]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(side_effect=[True, True, False, False, False]) mapper = PortMapper(port_config, upnpc) existing_ports = [] self.assertEquals([2001, 2002, 2003], mapper.find_available_ports_to_try(existing_ports, 1999, 3))
def test_first_gap(self): port_config = get_port_config([]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(return_value=False) mapper = PortMapper(port_config, upnpc) existing_ports = [2000, 2001, 2003] ports_to_try = mapper.find_available_ports_to_try(existing_ports, 2000, 3) self.assertEquals([2002, 2004, 2005], ports_to_try)
def test_sync_adds_port(self): port_config = get_port_config([Port(80, 10001)]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(return_value=False) mapper = PortMapper(port_config, upnpc) mapper.sync() read = port_config.get(80) self.assertEquals(80, read.external_port) self.assertTrue(upnpc.add.called)
def test_sync_new_ports(self): port_config = get_port_config([]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(return_value=False) mapper = PortMapper(port_config, upnpc) mapper.sync_new_port(80) read = port_config.get(80) self.assertEquals(80, read.external_port) upnpc.add.assert_called_with(80, 80)
def test_add_success(self): port_config = get_port_config([]) upnpc = MagicMock() upnpc.port_open_on_router = MagicMock(return_value=False) mapper = PortMapper(port_config, upnpc) mapping = mapper.add(80) self.assertIsNotNone(mapping) self.assertEquals(80, mapping.local_port) self.assertEquals(80, mapping.external_port) self.assertTrue(upnpc.add.called) read = port_config.get(80) self.assertEquals(80, read.external_port)
def get_upnpc(external_ip): upnpc = MagicMock() upnpc.external_ip = MagicMock(return_value=external_ip) upnpc.port_open_on_router = MagicMock(return_value=False) return upnpc