Example #1
0
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'
Example #3
0
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"