context("data version strings") test_that("assert_data_version", { f <- tempdir() f <- file.path(f, "foo.Rmd") con <- file(f) writeLines("```{r}\n tbl = table(sample(1:10,1000,replace=TRUE)) \n```\n", con = con ) close(con) pname <- basename(tempfile()) suppressWarnings(datapackage.skeleton( name = pname, path = normalizePath(tempdir()), force = TRUE, r_object_names = "tbl", code_files = f )) package_build(file.path(tempdir(), pname)) devtools::load_all(file.path(tempdir(), pname)) suppressWarnings(expect_true( data_version(pkg = pname) == numeric_version("0.1.0") )) expect_true( assert_data_version( data_package_name = pname, version_string = "0.1.0", acceptable = "equal" ) ) expect_true( assert_data_version( data_package_name = pname, version_string = "0.1.0", acceptable = "equal_or_greater" ) ) expect_true( assert_data_version( data_package_name = pname, version_string = "0.0.0", acceptable = "equal_or_greater" ) ) expect_true( assert_data_version( data_package_name = pname, version_string = "0.0.11", acceptable = "equal_or_greater" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "1.0.0", acceptable = "equal_or_greater" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "1.1.0", acceptable = "equal_or_greater" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "0.1.1", acceptable = "equal_or_greater" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "0.1.1", acceptable = "equal" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "1.0.0", acceptable = "equal" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "1.1.0", acceptable = "equal" ) ) expect_error( assert_data_version( data_package_name = pname, version_string = "0.2.0", acceptable = "equal_or_greater" ) ) expect_true( assert_data_version( data_package_name = pname, version_string = "0.0.10000001", acceptable = "equal_or_greater" ) ) expect_error(keepDataObjects()) })