diff --git a/R/github-functions.R b/R/github-functions.R index 0364eed..99fc0a5 100644 --- a/R/github-functions.R +++ b/R/github-functions.R @@ -19,10 +19,12 @@ getPkgVersFromFile <- function(file) { file <- sapply(strsplit(file, "\\.tgz"), "[[", 1) pkg <- sapply(strsplit(file, "_"), "[[", 1) vers <- sapply(strsplit(file, "_"), "[[", 2) - df <- data.frame(package = pkg, version = vers, stringsAsFactors = FALSE) - df[order(df$package),] + df <- data.frame(package = pkg, version = vers, stringsAsFactors = FALSE, row.names = NULL) + df <- df[order(df$package),] + row.names(df) <- seq_len(nrow(df)) + df } else { - NULL + data.frame(package = character(0), version = character(0)) } } diff --git a/tests/testthat/mock_data/pdb.rds b/tests/testthat/mock_data/pdb.rds new file mode 100644 index 0000000..91331cc Binary files /dev/null and b/tests/testthat/mock_data/pdb.rds differ diff --git a/tests/testthat/test-1-github-functions.R b/tests/testthat/test-1-github-functions.R new file mode 100644 index 0000000..e34854f --- /dev/null +++ b/tests/testthat/test-1-github-functions.R @@ -0,0 +1,46 @@ +if (interactive()) library(testthat) + +# Copyright (c) Andrie de Vries 2018 + +context("github-functions") + +test_that("package file extension is computed correctly", { + expect_equal(pkgFileExt("source"), ".tar.gz") + expect_equal(pkgFileExt("win.binary"), ".zip") + expect_equal(pkgFileExt("mac.binary"), ".tgz") + expect_error(pkgFileExt("nonsense")) +}) + +test_that("package verson is extracted correctly", { + ff <- c( + "KernSmooth_2.23-15.tar.gz", + "MASS_7.3-47.tar.gz", + "Matrix_1.2-12.tar.gz", + "boot_1.3-20.tar.gz" + ) + expect_equal( + getPkgVersFromFile(ff), + data.frame( + package = c("boot", "KernSmooth", "MASS", "Matrix"), + version = c("1.3-20", "2.23-15", "7.3-47", "1.2-12"), + stringsAsFactors = FALSE, + row.names = NULL + ) + ) + + expect_equal( + getPkgVersFromFile("nonsense"), + data.frame(package = character(0), version = character(0)) + ) + +}) + +test_that("readDescription reads file", { + sf <- system.file("DESCRIPTION", package = "miniCRAN") + desc <- readDescription(sf) + + expect_is(desc, "list") + expect_true( + all(c("Imports", "Suggests", "Package") %in% names(desc)) + ) +}) diff --git a/tests/testthat/test-6-getCranDescription.R b/tests/testthat/test-6-getCranDescription.R index 7e5606c..3dd0bc2 100644 --- a/tests/testthat/test-6-getCranDescription.R +++ b/tests/testthat/test-6-getCranDescription.R @@ -4,6 +4,10 @@ context("get CRAN description") test_that("can read CRAN description", { skip_on_cran() + mockery::stub(getCranDescription, + what = "tools::CRAN_package_db", + function(...) readRDS("mock_data/pdb.rds") + ) p <- getCranDescription("miniCRAN", repos = c(CRAN = getOption("minicran.mran"))) expect_is(p, "data.frame") expect_equal(p$Package[1], "miniCRAN")