Nothing
context("knitr")
test_that("An R Markdown document can be rendered using reticulate", {
skip_on_cran()
skip_on_os("windows")
skip_if_not_installed("rmarkdown")
skip_if(py_version() < "3") # plotly _repr_html_ test fails in py2
modules <- c("numpy", "matplotlib", "pandas", "plotly",
"tabulate", "IPython")
for (module in modules) {
if (!py_module_available(module)) {
fmt <- "module '%s' not available; skipping"
skip(sprintf(fmt, module))
}
}
owd <- setwd(test_path("resources"))
status <- rmarkdown::render("eng-reticulate-example.Rmd", quiet = TRUE)
setwd(owd)
expect_true(file.exists(status), "example.Rmd rendered successfully")
})
test_that("Figures saved in correct place with custom root.dir", {
skip_on_cran()
skip_if_not_installed("rmarkdown")
skip_if(py_version() < "3.8") # end_lineno attr added in 3.8
rmd_filepath <- normalizePath(file.path(test_path("resources"),
"test-custom-root-dir.Rmd"))
dir.create(dir <- tempfile("reticulate-knitr-test-dir"))
owd <- setwd(dir)
file.copy(rmd_filepath, ".")
output <- knitr::knit("test-custom-root-dir.Rmd", quiet = TRUE)
expect_true(file.exists(output), "test-custom-root-dir.Rmd rendered successfully")
setwd(owd)
})
test_that("In Rmd chunks, comments and output attach to code correctly", {
skip_on_cran()
skip_if_not_installed("rmarkdown")
skip_if(py_version() < "3.8") # end_lineno attr added in 3.8
local_edition(3) # needed for expect_snapshot_file()
# TODO: update the full testsuite to testthat edition 3
owd <- setwd(test_path("resources"))
rmarkdown::render("test-chunking.Rmd", quiet = TRUE)
expect_snapshot_file("test-chunking.md")
setwd(owd)
})
test_that("knitr 'warning=FALSE' option", {
skip_on_cran()
skip_if_not_installed("rmarkdown")
local_edition(3) # needed for expect_snapshot_file()
owd <- setwd(test_path("resources"))
rmarkdown::render("knitr-warn.Rmd", quiet = TRUE)
setwd(owd)
rendered <- test_path("resources", "knitr-warn.md")
res <- paste0(readLines(rendered), collapse = "\n")
expect_snapshot_file(rendered)
expect_no_match(res, "UserWarning", fixed = TRUE)
})
test_that("Output streams are remaped when kniting", {
skip_on_cran()
skip_if_not_installed("rmarkdown")
local_edition(3)
owd <- setwd(test_path("resources"))
rmarkdown::render("knitr-print.Rmd", quiet = TRUE)
setwd(owd)
rendered <- test_path("resources", "knitr-print.md")
expect_snapshot_file(rendered)
# if remaping is set by default we have no way to check that the options
# is correctly reset
skip_if(!is.na(Sys.getenv("RETICULATE_REMAP_OUTPUT_STREAMS", unset = NA)))
bt <- reticulate::import_builtins()
x <- py_capture_output(out <- capture.output({
bt$print("hello world")
}))
expect_length(out, 0)
# make sure it works from a background session
callr::r(function(path) {
setwd(path)
rmarkdown::render(
"knitr-print.Rmd",
output_file = "knitr-print2.md",
quiet = TRUE
)
}, args = list(path = test_path("resources")))
expect_snapshot_file(test_path("resources", "knitr-print2.md"))
})
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.