test_that("desc_add_author", { d <- temp_desc() on.exit(unlink(d)) x <- desc_add_author(file = d, "Bunny", "Bugs", "bugs.bunny@acme.com") expect_match(desc_get(file = d, "Authors@R"), "Bunny") }) test_that("desc_add_me", { withr::local_envvar( FULLNAME = "First Last", EMAIL = "first.last@dom.com" ) d <- temp_desc() on.exit(unlink(d)) desc_add_me(file = d) expect_match(desc_get(file = d, "Authors@R"), "First") expect_match(desc_get(file = d, "Authors@R"), "first.last@dom.com") }) test_that("desc_add_author_gh", { withr::local_options( desc.gh_user = list(name = "Jeroen Ooms", email = "notanemail") ) d <- temp_desc() on.exit(unlink(d)) desc_add_author_gh(file = d, username = "jeroen") expect_match(desc_get(file = d, "Authors@R"), "Jeroen") expect_match(desc_get(file = d, "Authors@R"), "notanemail") }) test_that("desc_add_role", { d <- temp_desc() on.exit(unlink(d)) x <- desc_add_role(file = d, "ctb", given = "Manuel") expect_match( as.character(desc_get_author(file = d, role = "ctb")), "Manuel" ) }) test_that("desc_add_to_collate et al.", { d <- temp_desc() on.exit(unlink(d)) expect_true("roxygenize.R" %in% desc_get_collate(file = d)) x <- desc_del_from_collate(file = d, "roxygenize.R") expect_false("roxygenize.R" %in% desc_get_collate(file = d)) x <- desc_add_to_collate(file = d, "roxygenize.R") expect_true("roxygenize.R" %in% desc_get_collate(file = d)) }) test_that("desc_get_maintainer, desc_change_maintainer", { d <- temp_desc() on.exit(unlink(d)) expect_match( as.character(desc_get_maintainer(file = d)), "Hadley" ) x <- desc_change_maintainer(file = d, given = "Peter") expect_match( as.character(desc_get_maintainer(file = d)), "Peter" ) }) test_that("desc_set, desc_get, desc_del", { d <- temp_desc() on.exit(unlink(d)) expect_equal( desc_get(file = d, c("Package", "Version")), c(Package = "roxygen2", Version = "4.1.1.9000") ) desc_set(file = d, Package = "foobar") expect_equal( desc_get(file = d, c("Package", "Version")), c(Package = "foobar", Version = "4.1.1.9000") ) }) test_that("desc_del_author", { d <- temp_desc() on.exit(unlink(d)) desc_del_author(file = d, given = "Peter") expect_false( any(grepl("Peter", as.character(desc_get_authors(file = d)))) ) }) test_that("desc_del_collate", { d <- temp_desc() on.exit(unlink(d)) desc_del_collate(file = d) expect_equal( desc_get(file = d, "Collate"), c(Collate = NA_character_) ) }) test_that("desc_del_dep", { d <- temp_desc() on.exit(unlink(d)) expect_true( "testthat" %in% desc_get_deps(file = d)$package ) desc_del_dep(file = d, "testthat") expect_false( "testthat" %in% desc_get_deps(file = d)$package ) }) test_that("desc_del_deps", { d <- temp_desc() on.exit(unlink(d)) desc_del_deps(file = d) expect_equal(nrow(desc_get_deps(file = d)), 0) }) test_that("desc_del_role", { d <- temp_desc() on.exit(unlink(d)) desc_del_role(file = d, "aut", given = "Manuel") expect_false( any(grepl("Manuel", desc_get_author(file = d, role = "aut"))) ) }) test_that("desc_fields", { d <- temp_desc() on.exit(unlink(d)) expect_true( all(c("Package", "Title", "Version", "URL", "Collate") %in% desc_fields(file = d)) ) }) test_that("desc_has_fields", { d <- temp_desc() on.exit(unlink(d)) expect_equal( desc_has_fields(file = d, c("Package", "foobar", "Collate")), c(TRUE, FALSE, TRUE) ) }) test_that("desc_normalize", { d <- temp_desc() on.exit(unlink(d)) desc <- description$new(d) desc_normalize(file = d) desc$normalize() d2 <- tempfile() on.exit(unlink(d2), add = TRUE) desc$write(d2) expect_equal(readLines(d), readLines(d2)) }) test_that("desc_print", { d <- temp_desc() on.exit(unlink(d)) capt <- capture.output(description$new(test_path("D2"))$print()) expect_output( desc_print(file = d), paste(capt, collapse = "\n"), fixed = TRUE ) }) test_that("desc_reformat_fields", { d <- temp_desc() on.exit(unlink(d)) desc_reformat_fields(file = d) expect_equal( desc_get(file = d, "Description"), description$new(test_path("D2"))$reformat_fields()$get("Description") ) }) test_that("desc_reorder_fields", { d <- temp_desc() on.exit(unlink(d)) desc_reorder_fields(file = d) expect_equal( desc_fields(file = d), c("Package", "Title", "Version", "Authors@R", "Description", "License", "URL", "Depends", "Imports", "Suggests", "LinkingTo", "VignetteBuilder", "Remotes", "Encoding", "RoxygenNote", "Collate") ) }) test_that("desc_set_authors", { d <- temp_desc(test_path("D1")) on.exit(unlink(d)) desc_set_authors(file = d, desc_get_authors(file = test_path("D2"))) expect_equal( desc_get_authors(file = d), desc_get_authors(test_path("D2")) ) }) test_that("desc_set_collate", { d <- temp_desc() on.exit(unlink(d)) desc_set_collate(file = d, c("foo.R", "bar.R")) expect_equal( desc_get_collate(file = d), c("foo.R", "bar.R") ) }) test_that("desc_set_dep", { d <- temp_desc() on.exit(unlink(d)) desc_set_dep(file = d, "foobar", type = "Suggests") expect_true( "foobar" %in% desc_get_deps(file = d)$package ) }) test_that("desc_set_deps", { d <- temp_desc() on.exit(unlink(d)) desc_set_deps(file = d, desc_get_deps(file = test_path("D1"))) expect_equal( desc_get_deps(file = d), desc_get_deps(file = test_path("D1")) ) }) test_that("desc_to_latex", { expect_equal( desc_to_latex(file = test_path("D2")), description$new(test_path("D2"))$to_latex() ) }) test_that("desc_validate", { expect_warning( desc_validate(file = test_path("D1")), "not implemented" ) }) test_that("can write back automatically found DESCRIPTION file", { dir.create(tmp <- tempfile()) file.copy(file.path("files", "DESCRIPTION"), tmp) withr::with_dir( tmp, desc_set_dep("somepackage", "Suggests") ) expect_true("somepackage" %in% desc_get_deps(file = tmp)$package) })