Skip to content

Commit

Permalink
Improve tests and wording
Browse files Browse the repository at this point in the history
  • Loading branch information
wlandau-lilly committed Dec 7, 2024
1 parent 9cf3631 commit 7ec7e95
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 24 deletions.
18 changes: 10 additions & 8 deletions R/interpret_status.R
Original file line number Diff line number Diff line change
Expand Up @@ -77,36 +77,38 @@ interpret_dependencies <- function(issue, package) {
direct <- names(dependencies)[lengths(dependencies) < 1L]
indirect <- setdiff(names(dependencies), direct)
text <- paste0(
"One or more dependencies have issues. Packages ",
"One or more strong R package dependencies have issues: ",
paste(names(dependencies), collapse = ", "),
" are causing problems upstream. "
"."
)
if (length(direct)) {
text <- paste0(
text,
ifelse(length(direct) == 1L, "Dependency ", "Dependencies "),
ifelse(length(direct) == 1L, " Dependency ", " Dependencies "),
paste(direct, collapse = ", "),
ifelse(length(direct) == 1L, " is ", " are "),
"explicitly mentioned in 'Depends:', 'Imports:', or 'LinkingTo:' ",
"in the DESCRIPTION of ",
"in the DESCRIPTION file of ",
package,
".<br><br>"
"."
)
}
if (length(indirect)) {
text <- paste0(
text,
ifelse(length(indirect) == 1L, "Package ", "Packages "),
ifelse(length(indirect) == 1L, " Dependency ", " Dependencies "),
paste(indirect, collapse = ", "),
ifelse(length(indirect) == 1L, " is ", " are "),
"not part of 'Depends:', 'Imports:', or 'LinkingTo:' ",
"in the DESCRIPTION of ",
"in the DESCRIPTION file of ",
package,
", but ",
ifelse(length(indirect) == 1L, "it is", "they are"),
" upstream of one or more direct dependencies:<br>",
" upstream of one or more strong direct dependencies:<br>",
as.character(yaml_html(dependencies[indirect]))
)
} else {
text <- paste0(text, "<br><br>")
}
text
}
Expand Down
78 changes: 62 additions & 16 deletions tests/testthat/test-interpret_status.R
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ test_that("interpret_status() checks etc.", {
issues$tidypolars$dependencies <- list(x = "y")
expect_true(
grepl(
"One or more dependencies have issues",
"One or more strong R package dependencies have issues",
interpret_status("tidypolars", issues)
)
)
Expand All @@ -132,21 +132,6 @@ test_that("interpret_status() checks etc.", {
interpret_status("constantversion", issues)
)
)
issues$bad <- list(
checks = issues$audio.whisper$checks,
descriptions = list(
license = issues$targetsketch$descriptions$license,
remotes = issues$tidypolars$descriptions$remotes
),
dependencies = list(nanonext = "mirai"),
versions = issues$constantversion$versions
)
expect_true(
grepl(
"One or more dependencies have issues",
interpret_status("bad", issues)
)
)
})

test_that("interpret_status() with complicated dependency problems", {
Expand Down Expand Up @@ -245,3 +230,64 @@ test_that("interpret_status() with complicated dependency problems", {
)
)
})

test_that("interpret_status(): check these interactively", {
skip_if_offline()
issues <- list(
bad = list(
checks = list(
url = "https://github.com/12103194809",
issues = list(
`linux x86_64 R-4.5.0` = "WARNING",
`mac aarch64 R-4.4.2` = "WARNING",
`mac x86_64 R-4.4.2` = "WARNING",
`win x86_64 R-4.4.2` = "WARNING"
)
),
descriptions = list(
license = "non-standard",
advisories <- c("link1", "link2", "link3"),
remotes = "markvanderloo/tinytest/pkg"
),
dependencies = list(
nanonext = "mirai",
mirai = list(),
a = list(),
b = c("x", "yasdf", "z")
),
versions = list(
version_current = "1.0.0",
hash_current = "hash_1.0.0-modified",
version_highest = "1.0.0",
hash_highest = "hash_1.0.0"
)
)
)
issues$bad2 <- issues$bad
issues$bad2$dependencies <- list(
nanonext = "mirai",
b = c("x", "yasdf", "z")
)
issues$bad3 <- issues$bad
issues$bad3$dependencies <- list(
nanonext = list(),
b = list()
)
issues$bad4 <- issues$bad
issues$bad4$dependencies <- list(
nanonext = "mirai"
)
issues$bad5 <- issues$bad
issues$bad5$dependencies <- list(
nanonext = list()
)
temp <- tempfile(fileext = ".html")
on.exit(unlink(temp))
for (package in names(issues)) {
text <- interpret_status(package, issues)
expect_true(grepl("found issues", text))
writeLines(text, temp)
# browseURL(temp) # nolint
# browser() # nolint
}
})

0 comments on commit 7ec7e95

Please sign in to comment.