tests/testthat/test-packages.R

test_that("list_packages returns the right output formats.", {
  skip_on_cran()
  skip_if_offline()
  output <- list_packages(1)
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$last_refreshed, "Date")
})

test_that("list_packages errors if offline", {
  with_mocked_bindings(
    has_internet = function() FALSE,
    .package = "curl",
    code = expect_error(list_packages(1), "does not work offline")
  )
})

context("test-search_packages")

test_that("search_packages has the correct return format.", {
  skip_on_cran()
  skip_if_offline()
  output <- search_packages("dsjhjsghkldg")
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")

  output <- search_packages("ttc", limit = 1)
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")

  output <- search_packages("ttc-subway-shapefiles", limit = 1)
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")
})

test_that("search_packages errors if offline", {
  with_mocked_bindings(
    has_internet = function() FALSE,
    .package = "curl",
    code = expect_error(search_packages("ttc", limit = 1), "does not work offline")
  )
})

context("test-show_package")

test_that("show_package has the correct return format.", {
  skip_on_cran()
  skip_if_offline()
  output <- show_package("c01c6d71-de1f-493d-91ba-364ce64884ac")
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")

  output <- show_package("https://open.toronto.ca/dataset/apartment-building-evaluation/")
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")

  output <- show_package("ttc-subway-shapefiles")
  expect_is(output, "tbl_df")
  expect_equal(sum(names(output) == package_cols), 10)
  expect_equal(names(output)[which(names(output) != package_cols)], "publisher")
  expect_is(output$title, "character")
  expect_is(output$id, "character")
  expect_is(output$topics, "character")
  expect_is(output$civic_issues, "character")
  expect_is(output$publisher, "character")
  expect_is(output$excerpt, "character")
  expect_is(output$dataset_category, "character")
  expect_is(output$formats, "character")
  expect_is(output$refresh_rate, "character")
  expect_is(output$num_resources, "integer")
  expect_is(output$last_refreshed, "Date")
})

test_that("show_package errors if offline", {
  with_mocked_bindings(
    has_internet = function() FALSE,
    .package = "curl",
    code = expect_error(show_package("c01c6d71-de1f-493d-91ba-364ce64884ac"), "does not work offline")
  )
})
sharlagelfand/opendatatoronto documentation built on April 12, 2025, 7:52 p.m.