context("decision-logic")
test_that("utility functions work", {
expect_match(get_con_description(stdout()), "stdout")
expect_false(is_interactive())
expect_false(is_in_knitr())
})
test_that("logfile choices work",
with_mock(
get_chunk_label = function() "knitrchunk",
is_in_knitr = function() TRUE,
get_con_description = function(con){
class(con) <- "connection"
con_desc <- unlist(summary.connection(con))["description"]
close.connection(con)
file.remove(con_desc)
con_desc
},
all_options <- list(kpb.log_file = "testing_1.log"),
expect_match(get_con_description(set_logfile(all_options)), "testing_1.log"),
all_options <- list(kpb.log_pattern = "hi"),
expect_match(get_con_description(set_logfile(all_options)), "hiknitrchunk.log"),
all_options <- list(),
{
expect_match(get_con_description(set_logfile(all_options)), "kpb_output.log")
}
)
)
test_that("basic decisions work",
{with_mock(
is_interactive = function() TRUE,
is_in_knitr = function() TRUE,
expect_match(get_con_description(make_kpb_output_decisions()), "stderr")
)
with_mock(
is_interactive = function() TRUE,
is_in_knitr = function() FALSE,
expect_match(get_con_description(make_kpb_output_decisions()), "stdout")
)
with_mock(
is_interactive = function() FALSE,
is_in_knitr = function() TRUE,
expect_match(get_con_description(make_kpb_output_decisions()), "stderr")
)
with_mock(
is_interactive = function() FALSE,
is_in_knitr = function() FALSE,
expect_match(get_con_description(make_kpb_output_decisions()), "stdout")
)
with_mock(
is_interactive = function() FALSE,
is_in_knitr = function() FALSE,
withr::with_options(list(kpb.suppress_noninteractive = TRUE),
expect_null(make_kpb_output_decisions()))
)
with_mock(
is_interactive = function() FALSE,
is_in_knitr = function() TRUE,
withr::with_options(list(kpb.suppress_noninteractive = TRUE),
expect_null(make_kpb_output_decisions()))
)
}
)
#
test_that("logfile options work",
{
with_mock(
is_interactive = function() TRUE,
is_in_knitr = function() FALSE,
withr::with_options(list(kpb.use_logfile = TRUE),
{
withr::with_output_sink("logfile_message.txt",
make_kpb_output_decisions())
expect_match(paste(scan("logfile_message.txt", sep = "", what = character(), blank.lines.skip = FALSE), collapse = " "), " Progress is being logged in: kpb_output.log")
}
))
file.remove("logfile_message.txt")
file.remove("kpb_output.log")
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.