Beispiel #1
0
def test__get_existing_logger_logger_present(mock_logger, mock_session):
    expected = ProviderLogHandler("g", "s", mock_session)
    mock_logger.handlers = [logging.Handler(), expected]
    with patch(
            "cloudformation_cli_python_lib.log_delivery.logging.getLogger",
            return_value=mock_logger,
    ):
        actual = ProviderLogHandler._get_existing_logger()
    assert actual == expected
Beispiel #2
0
def test_setup_existing_logger(setup_patches, mock_session):
    existing = ProviderLogHandler("g", "s", mock_session)
    mock_session.reset_mock()
    payload, p_logger, p__get_logger = setup_patches
    with p_logger as mock_log, p__get_logger as mock_get:
        mock_get.return_value = existing
        ProviderLogHandler.setup(payload, mock_session)
    mock_session.client.assert_called_once_with("logs")
    mock_log.return_value.addHandler.assert_not_called()
Beispiel #3
0
def test_setup_with_provider_creds_and_stack_id_and_logical_resource_id(
        setup_patches, mock_session):
    payload, p_logger, p__get_logger = setup_patches
    with p_logger as mock_log, p__get_logger as mock_get:
        mock_get.return_value = None
        ProviderLogHandler.setup(payload, mock_session)
    mock_session.client.assert_called_once_with("logs")
    mock_log.return_value.addHandler.assert_called_once()
    plh = mock_log.return_value.addHandler.call_args[0][0]
    assert payload.stackId in plh.stream
    assert payload.requestData.logicalResourceId in plh.stream
Beispiel #4
0
def test_setup_with_provider_creds_without_stack_id(setup_patches,
                                                    mock_session):
    payload, p_logger, p__get_logger = setup_patches
    payload.stackId = None
    with p_logger as mock_log, p__get_logger as mock_get:
        mock_get.return_value = None
        ProviderLogHandler.setup(payload, mock_session)
    mock_session.client.assert_called_once_with("logs")
    mock_log.return_value.addHandler.assert_called_once()
    plh = mock_log.return_value.addHandler.call_args[0][0]
    assert payload.awsAccountId in plh.stream
    assert payload.region in plh.stream
Beispiel #5
0
def test_setup_without_session_should_not_set_up(mock_logger):
    patch_logger = patch(
        "cloudformation_cli_python_lib.log_delivery.logging.getLogger",
        return_value=mock_logger,
    )
    patch___init__ = patch(
        "cloudformation_cli_python_lib.log_delivery.ProviderLogHandler.__init__",
        autospec=True,
    )
    with patch_logger as mock_log, patch___init__ as mock___init__:
        ProviderLogHandler.setup(make_payload(), None)
    mock___init__.assert_not_called()
    mock_log.return_value.addHandler.assert_not_called()
Beispiel #6
0
def test_setup_without_log_group_should_not_set_up(mock_logger, mock_session):
    patch_logger = patch(
        "cloudformation_cli_python_lib.log_delivery.logging.getLogger",
        return_value=mock_logger,
    )
    patch___init__ = patch(
        "cloudformation_cli_python_lib.log_delivery.ProviderLogHandler.__init__",
        autospec=True,
    )
    with patch_logger as mock_log, patch___init__ as mock___init__:
        payload = make_payload()
        payload.requestData.providerLogGroupName = ""
        ProviderLogHandler.setup(payload, mock_session)
    mock___init__.assert_not_called()
    mock_session.assert_not_called()
    mock_log.return_value.addHandler.assert_not_called()
Beispiel #7
0
def test__get_existing_logger_no_logger_present(mock_logger):
    mock_logger.handlers = [logging.Handler()]
    with patch(
            "cloudformation_cli_python_lib.log_delivery.logging.getLogger",
            return_value=mock_logger,
    ):
        actual = ProviderLogHandler._get_existing_logger()
    assert actual is None
Beispiel #8
0
def mock_provider_handler():
    plh = ProviderLogHandler(
        group="test-group",
        stream="test-stream",
        session=SessionProxy(
            Session(aws_access_key_id="",
                    aws_secret_access_key="",
                    aws_session_token="")),
    )
    # not mocking the whole client because that replaces generated exception classes to
    # be replaced with mocks
    for method in ["create_log_group", "create_log_stream", "put_log_events"]:
        setattr(plh.client, method, Mock(auto_spec=True))
    return plh