예제 #1
0
    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)
예제 #2
0
    def test_sync_cleans_duplicate_mappings(self):
        port_config = get_port_config([Port(80, 2000)])

        upnpc = MagicMock()
        upnpc.get_external_ports = MagicMock(return_value=[2000, 2001])

        mapper = PortMapper(port_config, upnpc)
        mapper.sync()

        read = port_config.get(80)
        self.assertEquals(2000, read.external_port)

        upnpc.remove.assert_called_with(2001)