1context("Dependencies") 2 3test_that("Warned about dependency versions", { 4 # Should give a warning about grid version 5 expect_warning(load_all("testImportVersion"), "Need grid >=") 6 unload("testImportVersion") 7 8 # TODO: Add check for NOT giving a warning about compiler version 9 # Not possible with testthat? 10}) 11 12 13test_that("Error on missing dependencies", { 14 # Should give a warning about missing package 15 expect_error(regexp = "Dependency package[(]s[)] 'missingpackage' not available", 16 expect_warning(regexp = "missingpackage not available", 17 load_all("testImportMissing"))) 18 19 # Loading process will be partially done; unload it 20 unload("testImportMissing") 21}) 22 23test_that("Packages in depends are required", { 24 load_all("testDependMissing") 25 expect_true("package:bitops" %in% search()) 26 unload("testDependMissing") 27 detach("package:bitops", unload = TRUE) 28}) 29 30test_that("Parse dependencies", { 31 deps <- parse_deps("\nhttr (< 2.1),\nRCurl (>= 3),\nutils (== 2.12.1),\ntools,\nR (>= 2.10),\nmemoise") 32 expect_equal(nrow(deps), 5) 33 expect_false("R" %in% deps$name) 34 35 expect_equal(deps$compare, c("<", ">=", "==", NA, NA)) 36 expect_equal(deps$version, c("2.1", "3", "2.12.1", NA, NA)) 37 38 39 # Invalid version specifications 40 expect_error(parse_deps("\nhttr (< 2.1),\nRCurl (3.0)")) 41 expect_error(parse_deps("\nhttr (< 2.1),\nRCurl ( 3.0)")) 42 expect_error(parse_deps("\nhttr (< 2.1),\nRCurl (==3.0)")) 43 expect_error(parse_deps("\nhttr (< 2.1),\nRCurl (==3.0 )")) 44 expect_error(parse_deps("\nhttr (< 2.1),\nRCurl ( ==3.0)")) 45 46 # This should be OK (no error) 47 deps <- parse_deps("\nhttr (< 2.1),\nRCurl (== 3.0.1)") 48 expect_equal(deps$compare, c("<", "==")) 49 expect_equal(deps$version, c("2.1", "3.0.1")) 50}) 51 52test_that("Declared dependencies are added to .Depends object", { 53 load_all("testDependsExists") 54 expect_equal(get(".Depends", "package:testDependsExists", inherits = FALSE), 55 "httr") 56 unload("testDependsExists") 57}) 58