tests/testthat/test-platform-info.R

test_that("platform_info", {
  withr::local_options(sessioninfo.include_hostname = FALSE)
  pi <- platform_info()
  nms <- c("version", "os", "system", "hostname", "ui", "language",
    "collate", "ctype", "tz", "date", "pandoc", "quarto"
  )
  expect_equal(names(pi), setdiff(nms, "hostname"))

  withr::local_options(sessioninfo.include_hostname = TRUE)
  pi <- platform_info()
  expect_equal(names(pi), nms)

  ## This can be a variety of strings, e.g. "R Under development"
  expect_match(pi$version, "R ")
  expect_true(is_string(pi$os))
  expect_true(is_string(pi$system) && grepl(",", pi$system))
  expect_true(is_string(pi$ui))
  expect_true(is_string(pi$language))
  expect_true(is_string(pi$tz) || identical(pi$tz, NA_character_))
  expect_true(is_string(pi$date))
  expect_equal(pi$date, as.character(as.Date(pi$date)))
})

test_that("print.platform_info", {
  expect_output(print(platform_info()), "setting[ ]+value")
})

test_that("print.platform_info ignores max.print", {
  pi <- platform_info()
  withr::local_options(list(max.print = 1))
  out <- capture_output(print(pi))
  out <- tail(strsplit(out, split = "\r?\n")[[1]], -1)
  expect_length(out, length(pi))
})

test_that("get_quarto_version", {
  local_mocked_bindings(Sys.which = function(...) "")
  expect_snapshot(get_quarto_version())

  local_mocked_bindings(Sys.which = function(...) "/path/to/quarto")
  local_mocked_bindings(system2 = function(...) "1.3.450")
  expect_snapshot(get_quarto_version())
})

Try the sessioninfo package in your browser

Any scripts or data that you put into this service are public.

sessioninfo documentation built on April 3, 2025, 8:48 p.m.