-
Notifications
You must be signed in to change notification settings - Fork 286
/
Copy pathtest-data.R
108 lines (83 loc) · 2.82 KB
/
test-data.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
test_that("use_data() errors for a non-package project", {
create_local_project()
expect_usethis_error(use_data(letters), "not an R package")
})
test_that("use_data() stores new, non-internal data", {
pkg <- create_local_package()
letters2 <- letters
month.abb2 <- month.abb
expect_false(desc::desc_has_fields("LazyData"))
use_data(letters2, month.abb2)
expect_true(desc::desc_has_fields("LazyData"))
rm(letters2, month.abb2)
load(proj_path("data", "letters2.rda"))
load(proj_path("data", "month.abb2.rda"))
expect_identical(letters2, letters)
expect_identical(month.abb2, month.abb)
})
test_that("use_data() honors `overwrite` for non-internal data", {
pkg <- create_local_package()
letters2 <- letters
use_data(letters2)
expect_usethis_error(use_data(letters2), ".*data/letters2.rda.* already exist")
letters2 <- rev(letters)
use_data(letters2, overwrite = TRUE)
load(proj_path("data", "letters2.rda"))
expect_identical(letters2, rev(letters))
})
test_that("use_data() stores new internal data", {
pkg <- create_local_package()
letters2 <- letters
month.abb2 <- month.abb
use_data(letters2, month.abb2, internal = TRUE)
rm(letters2, month.abb2)
load(proj_path("R", "sysdata.rda"))
expect_identical(letters2, letters)
expect_identical(month.abb2, month.abb)
})
test_that("use_data() honors `overwrite` for internal data", {
pkg <- create_local_package()
letters2 <- letters
use_data(letters2, internal = TRUE)
rm(letters2)
expect_usethis_error(
use_data(letters2, internal = TRUE),
".*R/sysdata.rda.* already exist"
)
letters2 <- rev(letters)
use_data(letters2, internal = TRUE, overwrite = TRUE)
load(proj_path("R", "sysdata.rda"))
expect_identical(letters2, rev(letters))
})
test_that("use_data() writes version 3 by default", {
create_local_package()
x <- letters
use_data(x, internal = TRUE, compress = FALSE)
expect_identical(
rawToChar(readBin(proj_path("R", "sysdata.rda"), n = 4, what = "raw")),
"RDX3"
)
})
test_that("use_data() can enforce `ascii = TRUE`", {
create_local_package()
x <- "h\u00EF"
use_data(x)
expect_false(tools::checkRdaFiles("data/x.rda")[["ASCII"]])
use_data(x, ascii = TRUE, overwrite = TRUE)
expect_true(tools::checkRdaFiles("data/x.rda")[["ASCII"]])
})
test_that("use_data_raw() does setup", {
create_local_package()
use_data_raw(open = FALSE)
expect_proj_file(path("data-raw", "DATASET.R"))
use_data_raw("daisy", open = FALSE)
expect_proj_file(path("data-raw", "daisy.R"))
expect_true(is_build_ignored("^data-raw$"))
})
test_that("use_data() does not decrease minimum version of R itself", {
create_local_package()
use_package("R", "depends", "4.1")
original_minimum_r_version <- pkg_minimum_r_version()
use_data(letters)
expect_true(pkg_minimum_r_version() >= original_minimum_r_version)
})