Exemplo n.º 1
0
def test_run_server():
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )
    MockSocket.mocked_data = browser_azure_data.valid_response

    result: str = bacp.run_server(listen_socket=MockSocket(),
                                  idp_response_timeout=10,
                                  state=browser_azure_data.state)
    assert result == browser_azure_data.code
def test_run_server_parses_saml_response(http_response):
    MockSocket.mocked_data = http_response
    with patch("socket.socket", return_value=MockSocket()):
        browser_saml_credentials: BrowserSamlCredentialsProvider = BrowserSamlCredentialsProvider(
        )
        parsed_saml_response: str = browser_saml_credentials.run_server(
            listen_port=0, idp_response_timeout=5)
        assert parsed_saml_response == saml_response_data.encoded_saml_response.decode(
            "utf-8")
Exemplo n.º 3
0
def test_run_server_invalid_data(data):
    data, expected_exception = data
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )
    MockSocket.mocked_data = data

    with pytest.raises(InterfaceError) as ex:
        bacp.run_server(listen_socket=MockSocket(),
                        idp_response_timeout=10,
                        state=browser_azure_data.state)
    assert expected_exception in str(ex.value)
def test_run_server_calls_get_success_response_http_msg(mocker):
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )
    MockSocket.mocked_data = browser_azure_data.valid_response
    listen_socket: MockSocket = MockSocket()
    spy = mocker.spy(bacp, "close_window_http_resp")

    result: str = bacp.run_server(listen_socket=listen_socket,
                                  idp_response_timeout=10,
                                  state=browser_azure_data.state)
    assert spy.called is True
    assert spy.call_count == 1
Exemplo n.º 5
0
def test_fetch_authorization_errors_should_fail(mocker):
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )

    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.open_browser",
        return_value=None)
    with patch(
            "redshift_connector.plugin.BrowserAzureCredentialsProvider.run_server"
    ) as mocked_server:
        mocked_server.side_effect = Exception("bad mistake")

        with pytest.raises(Exception, match="bad mistake"):
            bacp.fetch_authorization_token(listen_socket=MockSocket())
Exemplo n.º 6
0
def test_fetch_authorization_token_returns_authorization_token(mocker):
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )
    mock_authorization_token: str = "my_authorization_token"

    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.open_browser",
        return_value=None)
    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.run_server",
        return_value=mock_authorization_token)

    assert bacp.fetch_authorization_token(
        listen_socket=MockSocket()) == mock_authorization_token
Exemplo n.º 7
0
def test_get_saml_assertion_uses_listen_port(mocker):
    bacp: BrowserAzureCredentialsProvider = make_valid_browser_azure_credential_provider(
    )
    mocked_token: str = "test_token"
    mocked_saml_assertion: str = "test_saml_assertion"
    mocked_socket = MockSocket()
    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.get_listen_socket",
        return_value=mocked_socket)
    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.fetch_authorization_token",
        return_value=mocked_token)
    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.fetch_saml_response",
        return_value=mocked_saml_assertion,
    )
    mocker.patch(
        "redshift_connector.plugin.BrowserAzureCredentialsProvider.wrap_and_encode_assertion",
        return_value=None)

    get_listen_socket_spy = mocker.spy(BrowserAzureCredentialsProvider,
                                       "get_listen_socket")
    fetch_auth_spy = mocker.spy(BrowserAzureCredentialsProvider,
                                "fetch_authorization_token")
    fetch_saml_spy = mocker.spy(BrowserAzureCredentialsProvider,
                                "fetch_saml_response")
    wrap_and_encode_spy = mocker.spy(BrowserAzureCredentialsProvider,
                                     "wrap_and_encode_assertion")

    bacp.get_saml_assertion()

    assert bacp.redirectUri == "http://localhost:{port}/redshift/".format(
        port=bacp.listen_port)

    assert get_listen_socket_spy.called
    assert get_listen_socket_spy.call_count == 1

    assert fetch_auth_spy.called
    assert fetch_auth_spy.call_count == 1
    assert fetch_auth_spy.call_args[0][0] == mocked_socket

    assert fetch_saml_spy.called
    assert fetch_saml_spy.call_count == 1
    assert fetch_saml_spy.call_args[0][0] == mocked_token

    assert wrap_and_encode_spy.called
    assert wrap_and_encode_spy.call_count == 1
    assert wrap_and_encode_spy.call_args[0][0] == mocked_saml_assertion