84 lines
2.6 KiB
R
84 lines
2.6 KiB
R
test_reading_from_a_connection_works <- function() {
|
|
filename <- tempfile()
|
|
cat("foo: 123", file=filename, sep="\n")
|
|
foo <- file(filename, 'r')
|
|
x <- yaml.load_file(foo)
|
|
close(foo)
|
|
unlink(filename)
|
|
checkEquals(123L, x$foo)
|
|
}
|
|
|
|
test_reading_from_specified_filename_works <- function() {
|
|
filename <- tempfile()
|
|
cat("foo: 123", file=filename, sep="\n")
|
|
x <- yaml.load_file(filename)
|
|
unlink(filename)
|
|
checkEquals(123L, x$foo)
|
|
}
|
|
|
|
test_reading_a_complicated_document_works <- function() {
|
|
filename <- system.file(file.path("tests", "files", "test.yml"), package = "yaml")
|
|
x <- yaml.load_file(filename)
|
|
expected <- list(
|
|
foo = list(one = 1, two = 2),
|
|
bar = list(three = 3, four = 4),
|
|
baz = list(list(one = 1, two = 2), list(three = 3, four = 4)),
|
|
quux = list(one = 1, two = 2, three = 3, four = 4, five = 5, six = 6),
|
|
corge = list(
|
|
list(one = 1, two = 2, three = 3, four = 4, five = 5, six = 6),
|
|
list(xyzzy = list(one = 1, two = 2, three = 3, four = 4, five = 5, six = 6))
|
|
)
|
|
)
|
|
checkEquals(expected, x)
|
|
}
|
|
|
|
test_expressions_are_not_implicitly_converted_with_warning <- function() {
|
|
warnings <- captureWarnings({
|
|
filename <- tempfile()
|
|
cat("!expr 123 + 456", file=filename, sep="\n")
|
|
foo <- file(filename, 'r')
|
|
x <- yaml.load_file(foo)
|
|
close(foo)
|
|
unlink(filename)
|
|
})
|
|
checkEquals("character", class(x))
|
|
checkEquals("123 + 456", x)
|
|
checkEquals("Evaluating R expressions (!expr) requires explicit `eval.expr=TRUE` option (see yaml.load help)", warnings)
|
|
}
|
|
|
|
test_expressions_are_explicitly_converted_without_warning <- function() {
|
|
warnings <- captureWarnings({
|
|
filename <- tempfile()
|
|
cat("!expr 123 + 456", file=filename, sep="\n")
|
|
foo <- file(filename, 'r')
|
|
x <- yaml.load_file(foo, eval.expr = TRUE)
|
|
close(foo)
|
|
unlink(filename)
|
|
})
|
|
checkEquals("numeric", class(x))
|
|
checkEquals(579, x)
|
|
checkEquals(0, length(warnings))
|
|
}
|
|
|
|
test_expressions_are_unconverted <- function() {
|
|
filename <- tempfile()
|
|
cat("!expr 123 + 456", file=filename, sep="\n")
|
|
foo <- file(filename, 'r')
|
|
x <- yaml.load_file(foo, eval.expr = FALSE)
|
|
close(foo)
|
|
unlink(filename)
|
|
|
|
checkEquals("character", class(x))
|
|
checkEquals("123 + 456", x)
|
|
}
|
|
|
|
test_merge_specification_example_with_merge_override <- function() {
|
|
filename <- system.file(file.path("tests", "files", "merge.yml"), package = "yaml")
|
|
x <- yaml.load_file(filename, merge.precedence = "override")
|
|
expected <- list(x = 1, y = 2, r = 10, label = "center/big")
|
|
checkNamedListEquals(expected, x[[5]])
|
|
checkNamedListEquals(expected, x[[6]])
|
|
checkNamedListEquals(expected, x[[7]])
|
|
checkNamedListEquals(expected, x[[8]])
|
|
}
|