Nothing
test_that("set minimal setting in initialisation", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock()
mock_put_retention_policy <- mock()
mock_put_log_events <- mock()
mock_get_log_events <- mock()
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
)
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.Date = function() "2023-10-20",
sample = function(...) "abcde123",
.package = "base"
)
app <- AppenderAWSCloudWatchLog$new(
"lgrExtra"
)
private <- app$.__enclos_env__$private
expect_equal(mock_arg(mock_paws_management_cwl), list(list()))
expect_equal(mock_arg(mock_create_log_group), list(logGroupName = "lgrExtra"))
expect_equal(private$.flush_threshold, 200)
expect_equal(private$.flush_on_rotate, TRUE)
expect_equal(private$.flush_on_exit, TRUE)
expect_equal(private$.log_group_name, "lgrExtra")
expect_equal(private$.log_stream_name, "lgrExtra/2023-10-20/abcde123")
expect_equal(private$.layout, lgr::LayoutFormat$new(fmt = "%L: %m", colors = list()))
expect_equal(private$.log_group_retention_days, NULL)
})
test_that("set minimal setting in initialisation", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock()
mock_put_retention_policy <- mock()
mock_put_log_events <- mock()
mock_get_log_events <- mock()
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
)
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.time = function() 123456,
sample = function(...) "abcde123",
.package = "base"
)
l1 <- lgr::LayoutFormat$new(fmt = "%L: %m", colors = list())
app <- AppenderAWSCloudWatchLog$new(
log_group_name = "lgrExtra",
log_stream_name = "foobar",
log_group_retention_days = 30,
paws_config = list(var1 = "zoo"),
threshold = 2,
layout = l1,
buffer_size = 0,
flush_threshold = "warn",
flush_on_exit = TRUE,
flush_on_rotate = TRUE
)
private <- app$.__enclos_env__$private
expect_equal(mock_arg(mock_paws_management_cwl), list(list(var1 = "zoo")))
expect_equal(mock_arg(mock_create_log_group), list(logGroupName = "lgrExtra"))
expect_equal(mock_arg(mock_put_retention_policy), list(logGroupName = "lgrExtra", retentionInDays = 30))
expect_equal(private$.flush_threshold, 300)
expect_equal(private$.flush_on_rotate, TRUE)
expect_equal(private$.flush_on_exit, TRUE)
expect_equal(private$.log_group_name, "lgrExtra")
expect_equal(private$.log_stream_name, "foobar/abcde123")
expect_equal(private$.layout, l1)
expect_equal(private$.log_group_retention_days, 30)
})
test_that("check logs are correctly formatted to send to cloudwatch", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock(cycle = T)
mock_put_retention_policy <- mock(cycle = T)
mock_put_log_events <- mock(list(nextSequenceToken = "123"), cycle = T)
mock_get_log_events <- mock(cycle = T)
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
), cycle = T
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.time = function() 123456,
sample = function(...) "abcde123",
.package = "base"
)
app <- AppenderAWSCloudWatchLog$new(
"lgrExtra"
)
lg <- lgr::get_logger("lgrExtra")$add_appender(app)$set_propagate(FALSE)
lg$info("FOO")
lg$info("BAR")
expect_equal(mock_args(mock_put_log_events), list(
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : FOO"
)
)
),
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : BAR"
)
),
sequenceToken = "123"
)
))
})
test_that("check batch logs are correctly formatted to send to cloudwatch", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock(cycle = T)
mock_put_retention_policy <- mock(cycle = T)
mock_put_log_events <- mock(list(nextSequenceToken = "123"), cycle = T)
mock_get_log_events <- mock(cycle = T)
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
), cycle = T
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.time = function() 123456,
sample = function(...) "abcde123",
.package = "base"
)
app <- AppenderAWSCloudWatchLog$new(
"lgrExtra", buffer_size = 1
)
lg <- lgr::get_logger("lgrExtra")$add_appender(app)$set_propagate(FALSE)
lg$info("FOO")
lg$info("BAR")
lg$info("CHO")
lg$info("ZOO")
expect_equal(mock_args(mock_put_log_events), list(
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : FOO"
),
list(
timestamp = 123456000,
message = "INFO : BAR"
)
)
),
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : CHO"
),
list(
timestamp = 123456000,
message = "INFO : ZOO"
)
),
sequenceToken = "123"
)
))
})
test_that("check batch logs are correctly formatted to send to cloudwatch", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock(cycle = T)
mock_put_retention_policy <- mock(cycle = T)
mock_put_log_events <- mock(list(nextSequenceToken = "123"), cycle = T)
mock_get_log_events <- mock(cycle = T)
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
), cycle = T
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.time = function() 123456,
sample = function(...) "abcde123",
.package = "base"
)
app <- AppenderAWSCloudWatchLog$new(
"lgrExtra", buffer_size = 1
)
lg <- lgr::get_logger("lgrExtra")$add_appender(app)$set_propagate(FALSE)
lg$info("FOO")
lg$info("BAR")
lg$info("CHO")
lg$info("ZOO")
expect_equal(mock_args(mock_put_log_events), list(
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : FOO"
),
list(
timestamp = 123456000,
message = "INFO : BAR"
)
)
),
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
logEvents = list(
list(
timestamp = 123456000,
message = "INFO : CHO"
),
list(
timestamp = 123456000,
message = "INFO : ZOO"
)
),
sequenceToken = "123"
)
))
})
test_that("check get logs from cloudwatch", {
skip_if_not_installed("paws.management")
mock_create_log_group <- mock(cycle = T)
mock_put_retention_policy <- mock(cycle = T)
mock_put_log_events <- mock(list(nextSequenceToken = "123"), cycle = T)
mock_get_log_events <- mock(
list(
events = list(
list(
timestamp = 123,
message = "INFO : FOO",
ingestionTime = 123
)
),
nextForwardToken = "token1",
nextBackwardToken = "token1"
),
list(
events = list(
list(
timestamp = 123,
message = "INFO : BAR",
ingestionTime = 123
)
),
nextForwardToken = "token2",
nextBackwardToken = "token2"
),
list(
events = list(),
nextForwardToken = "token3",
nextBackwardToken = "token3"
))
mock_paws_management_cwl <- mock(
list(
create_log_group = mock_create_log_group,
put_retention_policy = mock_put_retention_policy,
put_log_events = mock_put_log_events,
get_log_events = mock_get_log_events
), cycle = T
)
local_mocked_bindings(
cloudwatchlogs = mock_paws_management_cwl,
.package = "paws.management"
)
local_mocked_bindings(
Sys.time = function() 123456,
sample = function(...) "abcde123",
.package = "base"
)
app <- AppenderAWSCloudWatchLog$new(
"lgrExtra", buffer_size = 1
)
expect_equal(app$data, list("INFO : FOO", "INFO : BAR"))
expect_equal(mock_args(mock_get_log_events), list(
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
startTime = 0,
startFromHead = TRUE
),
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
startTime = 0,
startFromHead = TRUE,
nextToken = "token1"
),
list(
logGroupName = "lgrExtra",
logStreamName = "lgrExtra/1970-01-02/abcde123",
startTime = 0,
startFromHead = TRUE,
nextToken = "token2"
)
))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.