def test_sync_server_side_client_ip(): port_config = get_port_config([Port(80, 80, 'TCP'), Port(81, 81, 'TCP')]) port_drill = PortDrill(port_config, MockPortMapper(external_ip='10.1.1.1'), MockPortProber()) responses.add(responses.POST, "http://api.domain.com/domain/update", status=200, body="{'message': 'Domain was updated'}", content_type="application/json") user_platform_config = get_user_platform_config() user_platform_config.update_redirect('domain.com', 'http://api.domain.com') user_platform_config.update_domain('boris', 'some_update_token') dns = RedirectService(user_platform_config, test_version) dns.sync(port_drill, 'some_update_token', 'http', False, 'TCP') expected_request = ''' { "web_local_port": 80, "web_port": 80, "web_protocol": "http", "platform_version": "test", "token": "some_update_token", "map_local_address": true, "local_ip": "127.0.0.1" } ''' assertSingleRequest(expected_request)
def test_port_drill(): port_config = get_port_config([Port(80, 80, 'TCP')]) port_drill = PortDrill(port_config, MockPortMapper(external_ip='192.167.44.52'), NoneProber()) port_drill.sync_existing_ports() mapping = port_drill.get(80, 'TCP') assert mapping.external_port == 80 assert port_drill.external_ip() == '192.167.44.52'
def test_sync_server_error(): port_config = get_port_config([Port(80, 10000, 'TCP')]) port_drill = PortDrill(port_config, MockPortMapper(external_ip='192.167.44.52'), MockPortProber()) responses.add(responses.POST, "http://api.domain.com/domain/update", status=400, body='{"message": "Unknown update token"}', content_type="application/json") user_platform_config = get_user_platform_config() user_platform_config.update_redirect('domain.com', 'http://api.domain.com') user_platform_config.update_domain('boris', 'some_update_token') dns = RedirectService(user_platform_config, test_version) with pytest.raises(PassthroughJsonError) as context: dns.sync(port_drill, 'some_update_token', 'http', False, 'TCP') assert context.value.message == "Unknown update token"