tests/testthat/test-tw_get_wikipedia_category_members.R

# run only in interactive sessions due to issues with API timeouts
if (interactive()) {
  library("dplyr", warn.conflicts = FALSE)
  library("tidywikidatar")

  tw_set_language(language = "en")

  tw_enable_cache()
  tw_set_cache_folder(path = fs::path(
    fs::path_temp(),
    "tw_data_testing"
  ))
  tw_create_cache_folder(ask = FALSE)



  testthat::test_that("tw_get_wikipedia_category_members() works with sub-categories", {
    testthat::expect_true({
      sub_category_members_df <- tw_get_wikipedia_category_members(
        url = "https://en.wikipedia.org/wiki/Category:American_women_anthropologists",
        category = NULL,
        language = "en",
        cache = TRUE,
        type = "subcat"
      )

      nrow(sub_category_members_df) > 1
    })
  })


  testthat::test_that("tw_get_wikipedia_category_members() works when category, not url is given", {
    testthat::expect_true({
      category_members_df <- tw_get_wikipedia_category_members(
        category = "Category:Puerto Rican women anthropologists",
        language = "en",
        cache = TRUE
      )

      nrow(category_members_df) > 0
    })
  })

  testthat::test_that("tw_get_wikipedia_category_members() works when url, not category is given", {
    testthat::expect_true({
      category_members_df <- tw_get_wikipedia_category_members(
        url = "https://en.wikipedia.org/wiki/Category:Puerto Rican women anthropologists",
        category = NULL,
        type = "page",
        language = "en",
        cache = TRUE
      )

      nrow(category_members_df) > 0
    })
  })
}

Try the tidywikidatar package in your browser

Any scripts or data that you put into this service are public.

tidywikidatar documentation built on March 31, 2023, 9:08 p.m.