diff --git a/.github/workflows/R-CMD-check-daily.yaml b/.github/workflows/R-CMD-check-daily.yaml new file mode 100644 index 0000000..a1d84c9 --- /dev/null +++ b/.github/workflows/R-CMD-check-daily.yaml @@ -0,0 +1,58 @@ +# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. +# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions +on: + schedule: + - cron: "0 7 3 * 0" # Run every morning at 3:07am + +name: R-CMD-check-daily + +jobs: + R-CMD-check-daily: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-pandoc@master + + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") + shell: Rscript {0} + + - name: Cache R packages + if: runner.os != 'Windows' + uses: actions/cache@v1 + with: + path: ${{ env.R_LIBS_USER }} + key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- + + - name: Install system dependencies + if: runner.os == 'Linux' + env: + RHUB_PLATFORM: linux-x86_64-ubuntu-gcc + run: | + Rscript -e "remotes::install_github('r-hub/sysreqs')" + sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") + sudo -s eval "$sysreqs" + + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + remotes::install_cran("covr") + shell: Rscript {0} + + - name: Check + run: | + options(crayon.enabled = TRUE) + rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") + shell: Rscript {0} + + - name: Test coverage + run: covr::codecov() + shell: Rscript {0} diff --git a/.github/workflows/R-CMD-check-dev.yaml b/.github/workflows/R-CMD-check-dev.yaml new file mode 100644 index 0000000..a6869a5 --- /dev/null +++ b/.github/workflows/R-CMD-check-dev.yaml @@ -0,0 +1,65 @@ +# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. +# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions +on: + push: + branches: + - dev + # - main + # - master + # pull_request: + # branches: + # - main + # - master + +name: R-CMD-check-dev + +jobs: + R-CMD-check-dev: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-pandoc@master + + - name: Query dependencies + run: | + install.packages('remotes') + saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) + writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") + shell: Rscript {0} + + - name: Cache R packages + if: runner.os != 'Windows' + uses: actions/cache@v1 + with: + path: ${{ env.R_LIBS_USER }} + key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} + restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- + + - name: Install system dependencies + if: runner.os == 'Linux' + env: + RHUB_PLATFORM: linux-x86_64-ubuntu-gcc + run: | + Rscript -e "remotes::install_github('r-hub/sysreqs')" + sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") + sudo -s eval "$sysreqs" + + - name: Install dependencies + run: | + install.packages(c("remotes", "rcmdcheck")) + remotes::install_deps(dependencies = TRUE) + remotes::install_cran("covr") + shell: Rscript {0} + + - name: Check + run: | + options(crayon.enabled = TRUE) + rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") + shell: Rscript {0} + + - name: Test coverage + run: covr::codecov() + shell: Rscript {0} diff --git a/.github/workflows/R-CMD-check-thorough.yaml b/.github/workflows/R-CMD-check-thorough.yaml new file mode 100644 index 0000000..73854bc --- /dev/null +++ b/.github/workflows/R-CMD-check-thorough.yaml @@ -0,0 +1,109 @@ +# NOTE: This workflow is overkill for most R packages +# check-standard.yaml is likely a better choice +# usethis::use_github_action("check-standard") will install it. +# +# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. +# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions +on: + push: + branches: + - main + - master + # - dev + + pull_request: + branches: + - main + - master + +name: R-CMD-check-thorough + +jobs: + R-CMD-check-thorough: + runs-on: ${{ matrix.config.os }} + + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + - {os: macOS-latest, r: 'release'} + - {os: windows-latest, r: 'devel'} + - {os: windows-latest, r: 'release'} + # - {os: windows-latest, r: '3.6'} + - {os: ubuntu-latest, r: 'devel'} + - {os: ubuntu-latest, r: 'release'} + # - {os: ubuntu-18.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest", http-user-agent: "R/4.0.0 (ubuntu-18.04) R (4.0.0 x86_64-pc-linux-gnu x86_64 linux-gnu) on GitHub Actions" } + # - {os: ubuntu-18.04, r: 'oldrel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest"} + # - {os: ubuntu-18.04, r: '3.5', rspm: "https://packagemanager.rstudio.com/cran/__linux__/bionic/latest"} + + env: + RSPM: ${{ matrix.config.rspm }} + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v2 + + - uses: r-lib/actions/setup-r@v1 + id: install-r + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + + - uses: r-lib/actions/setup-pandoc@v1 + + - name: Install pak and query dependencies + run: | + install.packages("pak", repos = "https://r-lib.github.io/p/pak/dev/") + saveRDS(pak::pkg_deps("local::.", dependencies = TRUE), ".github/r-depends.rds") + shell: Rscript {0} + + - name: Restore R package cache + uses: actions/cache@v2 + with: + path: | + ${{ env.R_LIBS_USER }} + !${{ env.R_LIBS_USER }}/pak + key: ${{ matrix.config.os }}-${{ steps.install-r.outputs.installed-r-version }}-1-${{ hashFiles('.github/r-depends.rds') }} + restore-keys: ${{ matrix.config.os }}-${{ steps.install-r.outputs.installed-r-version }}-1- + + - name: Install system dependencies + if: runner.os == 'Linux' + run: | + pak::local_system_requirements(execute = TRUE) + pak::pkg_system_requirements("rcmdcheck", execute = TRUE) + shell: Rscript {0} + + - name: Install dependencies + run: | + pak::local_install_dev_deps(upgrade = TRUE) + pak::pkg_install("rcmdcheck") + shell: Rscript {0} + + - name: Session info + run: | + options(width = 100) + pkgs <- installed.packages()[, "Package"] + sessioninfo::session_info(pkgs, include_base = TRUE) + shell: Rscript {0} + + - name: Check + env: + _R_CHECK_CRAN_INCOMING_: false + run: | + options(crayon.enabled = TRUE) + rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") + shell: Rscript {0} + + - name: Show testthat output + if: always() + run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true + shell: bash + + - name: Upload check results + if: failure() + uses: actions/upload-artifact@main + with: + name: ${{ matrix.config.os }}-r${{ matrix.config.r }}-results + path: check diff --git a/.gitignore b/.gitignore index 9326638..572b3cb 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ doc Meta .Rproj.user docs +/doc/ +/Meta/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5c15d2f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -# Travis's native R Image (http://docs.travis-ci.com/user/languages/r/) -language: r -cache: packages -warnings_are_errors: true -os: - - linux - # - windows -dist: focal - -jobs: - include: - - name: linux-focal - os: linux - dist: focal - env: R_CODECOV=true - # - name: windows-focal - # os: windows - # dist: focal - # env: R_CODECOV=false - # - name: osx-current - # os: osx - # # addons: - # # homebrew: - # # packages: curl - # # before_install: - # # - brew install curl - # # - brew link --force curl - # latex: false - # r_build_args: '--no-build-vignettes' - # r_check_args: '--ignore-vignettes --no-examples' - -r_github_packages: - - r-lib/covr - -after_success: - - if [[ "${R_CODECOV}" ]]; then Rscript -e 'covr::codecov()'; fi - # - Rscript -e 'covr::coveralls()' diff --git a/CRAN-RELEASE b/CRAN-RELEASE deleted file mode 100644 index 6f916b4..0000000 --- a/CRAN-RELEASE +++ /dev/null @@ -1,2 +0,0 @@ -This package was submitted to CRAN on 2021-02-23. -Once it is accepted, delete this file and tag the release (commit 45dc66d). diff --git a/DESCRIPTION b/DESCRIPTION index 614870e..867dc78 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: dataverse -Version: 0.3.7 +Version: 0.4.0 Title: Client for Dataverse 4+ Repositories Authors@R: c(person(given = "Will", @@ -61,3 +61,4 @@ VignetteBuilder: knitr Encoding: UTF-8 RoxygenNote: 7.1.1 Roxygen: list(markdown = TRUE) +Config/testthat/edition: 3 diff --git a/NEWS.md b/NEWS.md index b102466..3228fde 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,20 @@ +# CHANGES in dataverse 0.3.8 (2021-04-14 CRAN) + +Core Features + +* Adapt to Dataverse 5.4.1 (#94 @kuriwaki) + +Testing + +* Doesn't rely on CRAN for daily tests of API functions (#96) +* Upgrade testthat to 3.0 edition (#97) +* Move to GitHub Actions, and away from Travis-CI. (#98) Three GitHub Actions are defined for testing: + * thorough testing related to PRs and the main branch, + * straight-forward tests for each push to the dev branch, and + * straight-forward tests run daily at 3am + # CHANGES in dataverse 0.3.3 + * More verbose error messages returned on httr failure. (#31 @EdJeeOnGithub) # CHANGES in dataverse 0.3.1 @@ -6,7 +22,7 @@ * Avoids tests in R Check if the dataverse server is not available (#77) * Avoids potential mixup of dataset ordering within a retrieved dataverse (#83) -# CHANGES in dataverse 0.3.0 (2021-01-17, CRAN) +# CHANGES in dataverse 0.3.0 (2021-01-17 CRAN) New Methods @@ -22,7 +38,7 @@ Small updates * Fix getting multiple files by id in `get_file()` (#47 @adam3smith) * Temporary files created by `get_file()` are automatically deleted. -# CHANGES dataverse 0.2.1 (2018-03-05) +# CHANGES dataverse 0.2.1 (2018-03-05 CRAN) * Export `initiate_sword_dataset()`. (h/t Justin de Benedictis-Kessner) * Pass `key`, `server`, and `...` arguments to internal `get_dataverse()` and `get_dataset()` calls. diff --git a/R/get_dataset.R b/R/get_dataset.R index 39b571a..6a2e1cf 100644 --- a/R/get_dataset.R +++ b/R/get_dataset.R @@ -1,6 +1,6 @@ #' @rdname get_dataset #' @title Get dataset -#' @description Retrieve a Dataverse dataset or its metadata +#' @description Retrieve a Dataverse dataset metadata #' #' @details #' \code{get_dataset} retrieves details about a Dataverse dataset. @@ -14,6 +14,8 @@ #' \dQuote{dataverse_dataset} objects, whereas \code{\link{get_dataset}} returns #' metadata and a data.frame of files (rather than a list of file objects). #' +#' To download actual datafiles, see \code{\link{get_file}} or \code{\link{get_dataframe_by_name}}. +#' #' @template ds #' @template version #' @template envvars @@ -21,30 +23,19 @@ #' @return A list of class \dQuote{dataverse_dataset} or a list of a form dependent on the specific metadata block retrieved. \code{dataset_files} returns a list of objects of class \dQuote{dataverse_file}. #' @examples #' \dontrun{ +#' # https://demo.dataverse.org/dataverse/dataverse-client-r #' Sys.setenv("DATAVERSE_SERVER" = "demo.dataverse.org") -#' Sys.setenv("DATAVERSE_KEY" = "c7208dd2-6ec5-469a-bec5-f57e164888d4") -#' -#' # Download file from: https://demo.dataverse.org/file.xhtml?fileId=769385 -#' dv <- get_dataverse("dataverse-client-r") -#' contents <- dataverse_contents(dv) -#' -#' dataset_files(contents[[1]]) # Dataset contains 2 files -#' dataset_metadata(contents[[1]]) # Easier to query later #' -#' set <- get_dataset(contents[[1]]) # 1st dataset w/n dataverse -#' f <- get_file(set$files$id[2]) # 2nd file w/n dataset +#' # download file from: +#' dv <- get_dataverse("dataverse-client-r") +#' contents <- dataverse_contents(dv)[[1]] #' -#' # Check the *binary* representation of the file. -#' length(f) -#' head(f) +#' dataset_files(contents[[1]]) +#' get_dataset(contents[[1]]) +#' dataset_metadata(contents[[1]]) #' -#' # Examine the plain-text representation. -#' tmp <- tempfile(fileext = "svg") -#' writeBin(as.vector(f), tmp) -#' svg_lines <- readLines(tmp) -#' head(svg_lines) #' } -#' @seealso \code{\link{create_dataset}}, \code{\link{update_dataset}}, \code{\link{delete_dataset}}, \code{\link{publish_dataset}}, \code{\link{dataset_files}}, \code{\link{dataset_metadata}} +#' @seealso \code{\link{get_file}} #' @export get_dataset <- function( dataset, diff --git a/R/get_dataverse.R b/R/get_dataverse.R index 9519d78..ff51744 100644 --- a/R/get_dataverse.R +++ b/R/get_dataverse.R @@ -12,31 +12,18 @@ #' #' @examples #' \dontrun{ -#' # view the root dataverse for a server -#' get_dataverse(":root") -#' dataverse_contents(":root") +#' # https://demo.dataverse.org/dataverse/dataverse-client-r +#' Sys.setenv("DATAVERSE_SERVER" = "demo.dataverse.org") #' -#' Sys.setenv("DATAVERSE_SERVER" = "dataverse.harvard.edu") #' # download file from: -#' # https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ARKOTI -#' dv <- get_dataverse("monogan") -#' (contents <- dataverse_contents(dv)) +#' dv <- get_dataverse("dataverse-client-r") #' #' # get a dataset from the dataverse -#' d1 <- get_dataset(contents[[1]]) -#' f <- get_file(d1$files$id[3]) -#' } -#' @seealso To manage Dataverses: -#' \code{\link{create_dataverse}}, -#' \code{\link{delete_dataverse}}, -#' \code{\link{publish_dataverse}}, -#' \code{\link{dataverse_contents}}; -#' -#' To get datasets: -#' \code{\link{get_dataset}}; +#' (d1 <- get_dataset(dataverse_contents(dv)[[1]])) #' -#' To search for Dataverses, datasets, or files: -#' \code{\link{dataverse_search}} +#' # download a file using the metadata +#' get_dataframe_by_name("roster-bulls-1996.tab", d1$datasetPersistentId) +#' } #' #' @export get_dataverse <- function(dataverse, key = Sys.getenv("DATAVERSE_KEY"), server = Sys.getenv("DATAVERSE_SERVER"), check = TRUE, ...) { diff --git a/README.Rmd b/README.Rmd index 8a0b42d..6d46036 100644 --- a/README.Rmd +++ b/README.Rmd @@ -9,7 +9,13 @@ knitr::opts_chunk$set(results = "hold") Sys.setenv("DATAVERSE_SERVER" = "dataverse.harvard.edu") ``` -[![CRAN Version](https://www.r-pkg.org/badges/version/dataverse)](https://cran.r-project.org/package=dataverse) ![Downloads](https://cranlogs.r-pkg.org/badges/dataverse) [![Travis-CI Build Status](https://travis-ci.org/IQSS/dataverse-client-r.png?branch=master)](https://travis-ci.org/IQSS/dataverse-client-r) [![codecov.io](https://codecov.io/github/IQSS/dataverse-client-r/coverage.svg?branch=master)](https://codecov.io/github/IQSS/dataverse-client-r?branch=master) +[![CRAN Version](https://www.r-pkg.org/badges/version/dataverse)](https://cran.r-project.org/package=dataverse) +![Downloads](https://cranlogs.r-pkg.org/badges/dataverse) + +[![R-CMD-check-thorough](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-thorough.yaml/badge.svg?branch=master)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-thorough.yaml) +[![R-CMD-check-daily](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-daily.yaml/badge.svg?branch=master)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-daily.yaml) +[![R-CMD-check-dev](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-dev.yaml/badge.svg)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-dev.yaml) +[![codecov.io](https://codecov.io/github/IQSS/dataverse-client-r/coverage.svg?branch=master)](https://codecov.io/github/IQSS/dataverse-client-r?branch=master) [![Dataverse Project logo](https://dataverse.org/files/dataverseorg/files/dataverse_project_logo-hp.png)](https://dataverse.org) diff --git a/README.md b/README.md index 43285f2..fe41821 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,11 @@ R Client for Dataverse Repositories [![CRAN Version](https://www.r-pkg.org/badges/version/dataverse)](https://cran.r-project.org/package=dataverse) -![Downloads](https://cranlogs.r-pkg.org/badges/dataverse) [![Travis-CI -Build -Status](https://travis-ci.org/IQSS/dataverse-client-r.png?branch=master)](https://travis-ci.org/IQSS/dataverse-client-r) +![Downloads](https://cranlogs.r-pkg.org/badges/dataverse) + +[![R-CMD-check-thorough](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-thorough.yaml/badge.svg?branch=master)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-thorough.yaml) +[![R-CMD-check-daily](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-daily.yaml/badge.svg?branch=master)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-daily.yaml) +[![R-CMD-check-dev](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-dev.yaml/badge.svg)](https://github.com/IQSS/dataverse-client-r/actions/workflows/R-CMD-check-dev.yaml) [![codecov.io](https://codecov.io/github/IQSS/dataverse-client-r/coverage.svg?branch=master)](https://codecov.io/github/IQSS/dataverse-client-r?branch=master) [![Dataverse Project @@ -106,7 +108,7 @@ nlsw <- ## Downloading ingested version of data with readr::read_tsv. To download the original version and remove this message, set original = TRUE. ## - ## ── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────── + ## -- Column specification ------------------------------------------------------------------------------------------------ ## cols( ## idcode = col_double(), ## age = col_double(), diff --git a/man/get_dataset.Rd b/man/get_dataset.Rd index 2611456..f030489 100644 --- a/man/get_dataset.Rd +++ b/man/get_dataset.Rd @@ -58,7 +58,7 @@ or globally using \code{Sys.setenv("DATAVERSE_SERVER" = "dataverse.example.com") A list of class \dQuote{dataverse_dataset} or a list of a form dependent on the specific metadata block retrieved. \code{dataset_files} returns a list of objects of class \dQuote{dataverse_file}. } \description{ -Retrieve a Dataverse dataset or its metadata +Retrieve a Dataverse dataset metadata } \details{ \code{get_dataset} retrieves details about a Dataverse dataset. @@ -71,33 +71,24 @@ you to retrieve just a specific block of metadata, such as citation information. \code{\link{get_dataset}}. The difference is that this returns only a list of \dQuote{dataverse_dataset} objects, whereas \code{\link{get_dataset}} returns metadata and a data.frame of files (rather than a list of file objects). + +To download actual datafiles, see \code{\link{get_file}} or \code{\link{get_dataframe_by_name}}. } \examples{ \dontrun{ +# https://demo.dataverse.org/dataverse/dataverse-client-r Sys.setenv("DATAVERSE_SERVER" = "demo.dataverse.org") -Sys.setenv("DATAVERSE_KEY" = "c7208dd2-6ec5-469a-bec5-f57e164888d4") - -# Download file from: https://demo.dataverse.org/file.xhtml?fileId=769385 -dv <- get_dataverse("dataverse-client-r") -contents <- dataverse_contents(dv) - -dataset_files(contents[[1]]) # Dataset contains 2 files -dataset_metadata(contents[[1]]) # Easier to query later -set <- get_dataset(contents[[1]]) # 1st dataset w/n dataverse -f <- get_file(set$files$id[2]) # 2nd file w/n dataset +# download file from: +dv <- get_dataverse("dataverse-client-r") +contents <- dataverse_contents(dv)[[1]] -# Check the *binary* representation of the file. -length(f) -head(f) +dataset_files(contents[[1]]) +get_dataset(contents[[1]]) +dataset_metadata(contents[[1]]) -# Examine the plain-text representation. -tmp <- tempfile(fileext = "svg") -writeBin(as.vector(f), tmp) -svg_lines <- readLines(tmp) -head(svg_lines) } } \seealso{ -\code{\link{create_dataset}}, \code{\link{update_dataset}}, \code{\link{delete_dataset}}, \code{\link{publish_dataset}}, \code{\link{dataset_files}}, \code{\link{dataset_metadata}} +\code{\link{get_file}} } diff --git a/man/get_dataverse.Rd b/man/get_dataverse.Rd index 832df18..6d0de88 100644 --- a/man/get_dataverse.Rd +++ b/man/get_dataverse.Rd @@ -50,31 +50,17 @@ Retrieve details of a Dataverse } \examples{ \dontrun{ -# view the root dataverse for a server -get_dataverse(":root") -dataverse_contents(":root") +# https://demo.dataverse.org/dataverse/dataverse-client-r +Sys.setenv("DATAVERSE_SERVER" = "demo.dataverse.org") -Sys.setenv("DATAVERSE_SERVER" = "dataverse.harvard.edu") # download file from: -# https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ARKOTI -dv <- get_dataverse("monogan") -(contents <- dataverse_contents(dv)) +dv <- get_dataverse("dataverse-client-r") # get a dataset from the dataverse -d1 <- get_dataset(contents[[1]]) -f <- get_file(d1$files$id[3]) -} -} -\seealso{ -To manage Dataverses: -\code{\link{create_dataverse}}, -\code{\link{delete_dataverse}}, -\code{\link{publish_dataverse}}, -\code{\link{dataverse_contents}}; +(d1 <- get_dataset(dataverse_contents(dv)[[1]])) -To get datasets: -\code{\link{get_dataset}}; +# download a file using the metadata +get_dataframe_by_name("roster-bulls-1996.tab", d1$datasetPersistentId) +} -To search for Dataverses, datasets, or files: -\code{\link{dataverse_search}} } diff --git a/tests/testthat/tests-dataset_files.R b/tests/testthat/tests-dataset_files.R index 9a91831..6da8dd3 100644 --- a/tests/testthat/tests-dataset_files.R +++ b/tests/testthat/tests-dataset_files.R @@ -2,7 +2,8 @@ # https://doi.org/10.70122/FK2/HXJVJU test_that("download tab from DOI and filename", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() dv <- get_dataverse("dataverse-client-r") contents <- dataverse_contents(dv) ds_index <- which(sapply(contents, function(x) x$identifier) == "FK2/HXJVJU") diff --git a/tests/testthat/tests-dataset_metadata.R b/tests/testthat/tests-dataset_metadata.R index 1665b48..174c083 100644 --- a/tests/testthat/tests-dataset_metadata.R +++ b/tests/testthat/tests-dataset_metadata.R @@ -2,7 +2,8 @@ # https://doi.org/10.70122/FK2/HXJVJU test_that("check metadata format", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() dv <- get_dataverse("dataverse-client-r") contents <- dataverse_contents(dv) ds_index <- which(sapply(contents, function(x) x$identifier) == "FK2/HXJVJU") @@ -14,7 +15,8 @@ test_that("check metadata format", { }) test_that("check versions format", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() dv <- get_dataverse("dataverse-client-r") contents <- dataverse_contents(dv) ds_index <- which(sapply(contents, function(x) x$identifier) == "FK2/HXJVJU") diff --git a/tests/testthat/tests-dataverse_contents.R b/tests/testthat/tests-dataverse_contents.R index 05d23f3..a9664d1 100644 --- a/tests/testthat/tests-dataverse_contents.R +++ b/tests/testthat/tests-dataverse_contents.R @@ -1,7 +1,8 @@ # See https://demo.dataverse.org/dataverse/dataverse-client-r test_that("dataverse root", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_length_minimum <- 300 # 397 as of Feb 2020 dv <- get_dataverse(dataverse = ":root") @@ -10,7 +11,8 @@ test_that("dataverse root", { }) test_that("dataverse for 'dataverse-client-r'", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected <- structure( list( id = 1734004L, diff --git a/tests/testthat/tests-get_dataframe-dataframe-basketball.R b/tests/testthat/tests-get_dataframe-dataframe-basketball.R index d435ef2..43b5e62 100644 --- a/tests/testthat/tests-get_dataframe-dataframe-basketball.R +++ b/tests/testthat/tests-get_dataframe-dataframe-basketball.R @@ -2,7 +2,8 @@ # https://doi.org/10.70122/FK2/HXJVJU test_that("roster-by-name", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- readr::read_rds(system.file("dataset-basketball/dataframe-from-tab.rds", package = "dataverse")) @@ -16,7 +17,8 @@ test_that("roster-by-name", { }) test_that("roster-by-doi", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- readr::read_rds(system.file("dataset-basketball/dataframe-from-tab.rds", package = "dataverse")) @@ -29,7 +31,8 @@ test_that("roster-by-doi", { }) test_that("roster-by-id", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- readr::read_rds(system.file("dataset-basketball/dataframe-from-tab.rds", package = "dataverse")) diff --git a/tests/testthat/tests-get_dataframe-original-basketball.R b/tests/testthat/tests-get_dataframe-original-basketball.R index af06a13..df91f6a 100644 --- a/tests/testthat/tests-get_dataframe-original-basketball.R +++ b/tests/testthat/tests-get_dataframe-original-basketball.R @@ -17,7 +17,8 @@ standarize_string <- function (x, start = 1, stop = nchar(x)) { } test_that("roster-by-name", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$roster$raw_value @@ -52,7 +53,8 @@ test_that("roster-by-name", { }) test_that("roster-by-doi", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$roster$raw_value @@ -73,7 +75,8 @@ test_that("roster-by-doi", { }) test_that("roster-by-id", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$roster$raw_value @@ -94,7 +97,8 @@ test_that("roster-by-id", { }) test_that("image-by-name", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$image$raw_value @@ -113,7 +117,8 @@ test_that("image-by-name", { }) test_that("image-by-doi", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$image$raw_value @@ -131,7 +136,8 @@ test_that("image-by-doi", { }) test_that("image-by-id", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected_ds <- retrieve_info_dataset("dataset-basketball/expected-metadata.yml") expected_file <- expected_ds$image$raw_value diff --git a/tests/testthat/tests-get_dataset.R b/tests/testthat/tests-get_dataset.R index cd17883..9d7f977 100644 --- a/tests/testthat/tests-get_dataset.R +++ b/tests/testthat/tests-get_dataset.R @@ -2,7 +2,8 @@ # https://doi.org/10.70122/FK2/HXJVJU test_that("download tab from DOI and filename", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() dv <- get_dataverse("dataverse-client-r") contents <- dataverse_contents(dv) ds_index <- which(sapply(contents, function(x) x$identifier) == "FK2/HXJVJU") diff --git a/tests/testthat/tests-get_dataverse.R b/tests/testthat/tests-get_dataverse.R index 3d76b5e..734cc82 100644 --- a/tests/testthat/tests-get_dataverse.R +++ b/tests/testthat/tests-get_dataverse.R @@ -1,7 +1,8 @@ # See https://demo.dataverse.org/dataverse/dataverse-client-r test_that("dataverse root", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected <- retrieve_info_dataverse("expected-dataverse-root.yml") # The code below can be encapsulated in a separate function, if many dataverses are tested. @@ -15,7 +16,8 @@ test_that("dataverse root", { }) test_that("dataverse for 'dataverse-client-r'", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected <- retrieve_info_dataverse("expected-dataverse.yml") # The code below can be encapsulated in a separate function, if many dataverses are tested. diff --git a/tests/testthat/tests-get_file.R b/tests/testthat/tests-get_file.R index 383e4ed..fa90e6c 100644 --- a/tests/testthat/tests-get_file.R +++ b/tests/testthat/tests-get_file.R @@ -1,10 +1,9 @@ -context("Data Access API") - # See https://demo.dataverse.org/dataverse/dataverse-client-r # https://doi.org/10.70122/FK2/HXJVJU test_that("download tab from DOI and filename", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() actual <- get_file( file = "roster-bulls-1996.tab", dataset = "doi:10.70122/FK2/HXJVJU" @@ -14,7 +13,8 @@ test_that("download tab from DOI and filename", { }) test_that("download tab from file id", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() actual <- get_file( file = 1734005L ) @@ -23,7 +23,8 @@ test_that("download tab from file id", { }) test_that("download multiple files with file id - no folder", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() # file_ids <- get_dataset("doi:10.70122/FK2/LZAJEQ", server = "demo.dataverse.org")[['files']]$id file_ids <- get_dataset("doi:10.70122/FK2/HXJVJU", server = "demo.dataverse.org")[['files']]$id actual <- get_file( @@ -37,10 +38,10 @@ test_that("download multiple files with file id - no folder", { }) test_that("download multiple files with file id - with folders", { - testthat::skip_if_offline("demo.dataverse.org") - # file_ids <- get_dataset("doi:10.70122/FK2/V54HGA", server = "demo.dataverse.org")[['files']]$id + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() file_ids <- get_dataset("doi:10.70122/FK2/HXJVJU", server = "demo.dataverse.org")[['files']]$id - actual <- get_file(file_ids, format="original", server = "demo.dataverse.org") + actual <- get_file(file_ids, format = "original", server = "demo.dataverse.org") expect_true(length(actual) == 2) # two files in the dataset expect_true(is.raw(actual[[2]])) expect_true(object.size(actual[[2]]) > 70) # Should be >70 B diff --git a/tests/testthat/tests-get_file_metadata.R b/tests/testthat/tests-get_file_metadata.R index 29efd19..582990b 100644 --- a/tests/testthat/tests-get_file_metadata.R +++ b/tests/testthat/tests-get_file_metadata.R @@ -1,10 +1,9 @@ -context("Data Access API") - # See https://demo.dataverse.org/dataverse/dataverse-client-r # https://doi.org/10.70122/FK2/HXJVJU test_that("get file metadata from DOI and filename", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() actual <- get_file_metadata( file = "roster-bulls-1996.tab", dataset = "doi:10.70122/FK2/HXJVJU" @@ -14,7 +13,8 @@ test_that("get file metadata from DOI and filename", { }) test_that("get file metadata from file id", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() actual <- get_file_metadata( file = 1734005 ) diff --git a/tests/testthat/tests-list_datasets.R b/tests/testthat/tests-list_datasets.R index 4a341ef..ff27ba4 100644 --- a/tests/testthat/tests-list_datasets.R +++ b/tests/testthat/tests-list_datasets.R @@ -1,7 +1,8 @@ # See https://demo.dataverse.org/dataverse/dataverse-client-r test_that("dataverse root", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected <- structure( list( @@ -29,7 +30,8 @@ test_that("dataverse root", { }) test_that("dataverse for 'dataverse-client-r'", { - testthat::skip_if_offline("demo.dataverse.org") + # testthat::skip_if_offline("demo.dataverse.org") + testthat::skip_on_cran() expected <- structure( list( diff --git a/tests/testthat/tests-native-api.R b/tests/testthat/tests-native-api.R index 99e4517..ff4e267 100644 --- a/tests/testthat/tests-native-api.R +++ b/tests/testthat/tests-native-api.R @@ -1,11 +1,7 @@ -context("Native API (authenticated functions)") - -test_that("placeholder", { - expect_true(TRUE) +test_that("Native API (authenticated functions)", { + expect_true(TRUE) }) -context("Native API (unauthenticated functions)") - -test_that("placeholder", { - expect_true(TRUE) +test_that("Native API (unauthenticated functions)", { + expect_true(TRUE) }) diff --git a/tests/testthat/tests-search.R b/tests/testthat/tests-search.R index 7144b8c..11dfccd 100644 --- a/tests/testthat/tests-search.R +++ b/tests/testthat/tests-search.R @@ -1,36 +1,34 @@ -context("Search API") - test_that("simple search query", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search("Gary King", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search("Gary King", key = "", server = "dataverse.harvard.edu"))) }) test_that("named argument search", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search(author = "Gary King", title = "Ecological Inference", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search(author = "Gary King", title = "Ecological Inference", key = "", server = "dataverse.harvard.edu"))) }) test_that("simple search w/type argument", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search(author = "Gary King", type = "dataset", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search(author = "Gary King", type = "dataset", key = "", server = "dataverse.harvard.edu"))) }) test_that("date range search using fq", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search("*", fq = "dateSort:[2018-01-01T00:00:00Z+TO+2019-01-01T00:00:00Z]", type = "dataset", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search("*", fq = "dateSort:[2018-01-01T00:00:00Z+TO+2019-01-01T00:00:00Z]", type = "dataset", key = "", server = "dataverse.harvard.edu"))) }) test_that("publication year using fq", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search("*", fq = "publicationDate:2018", type = "dataset", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search("*", fq = "publicationDate:2018", type = "dataset", key = "", server = "dataverse.harvard.edu"))) }) test_that("filter dataverses by subject using fq", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_true(is.data.frame(dataverse_search("*", fq = "subject_ss:Social+Sciences", type = "dataverse", key = "", server = "dataverse.harvard.edu"))) + testthat::skip_on_cran() + expect_true(is.data.frame(dataverse_search("*", fq = "subject_ss:Social+Sciences", type = "dataverse", key = "", server = "dataverse.harvard.edu"))) }) test_that("empty fq search", { - testthat::skip_if_offline("dataverse.harvard.edu") - expect_length(dataverse_search("*", fq = "dateSort:[2019-02-01T00:00:00Z+TO+2019-01-01T00:00:00Z]", type = "dataset", key = "", server = "dataverse.harvard.edu"), 0) + testthat::skip_on_cran() + expect_length(dataverse_search("*", fq = "dateSort:[2019-02-01T00:00:00Z+TO+2019-01-01T00:00:00Z]", type = "dataset", key = "", server = "dataverse.harvard.edu"), 0) }) diff --git a/tests/testthat/tests-sword.R b/tests/testthat/tests-sword.R index f549c5d..5c826b6 100644 --- a/tests/testthat/tests-sword.R +++ b/tests/testthat/tests-sword.R @@ -1,7 +1,3 @@ -context("SWORD API") - -# use demo server: demo.dataverse.org - -test_that("placeholder", { +test_that("SWORD API", { expect_true(TRUE) })