# run only in interactive sessions due to occasion change of responses from API if (interactive()) { library("testthat") test_that("check if property are returned correctly when more than 1 id and one property", { testthat::skip_if_offline() expect_equal(object = { tw_disable_cache() tw_get_property( id = c( "Q180099", "Q228822" ), p = "P31" ) %>% dplyr::pull(value) }, expected = c( c("Q5", "Q5") )) }) test_that("check if property are returned correctly and in the same as order as given when 1 id and more than one property", { testthat::skip_if_offline() expect_equal(object = { tw_disable_cache() tw_get_property( id = "Q180099", p = c("P31", "P27") ) %>% dplyr::pull(value) }, expected = c( c("Q5", "Q30") )) expect_equal(object = { tw_disable_cache() tw_get_property( id = "Q180099", p = c("P27", "P31") ) %>% dplyr::pull(value) }, expected = c( c("Q30", "Q5") )) }) test_that("check if tw_get_property with invalid identifiers", { testthat::skip_if_offline() expect_true(object = { tw_disable_cache() tw_get_property( id = "non_qid_string", p = "P27" ) %>% is.null() }) expect_true(object = { tw_disable_cache() tw_get_property_same_length( id = "non_qid_string", p = "P27" ) %>% is.na() }) }) test_that("check if property labels are returned correctly", { testthat::skip_if_offline() expect_equal(object = { tw_get_property_label(property = "P31") }, expected = c( "instance of" )) expect_equal(object = { tw_get_property_label(property = c("P31", "P361")) }, expected = c( "instance of", "part of" )) }) test_that("check if property labels are returned correctly with cache", { testthat::skip_if_offline() expect_equal(object = { tw_set_cache_folder(path = tempdir()) tw_enable_cache() tw_get_property_label(property = "P31") }, expected = c( "instance of" )) expect_equal(object = { tw_set_cache_folder(path = tempdir()) tw_get_property_label(property = c("P31", "P361")) }, expected = c( "instance of", "part of" )) expect_equal(object = { tw_set_cache_folder(path = tempdir()) tw_get_property_label(property = c("P31", "P361", "non_id_string", NA)) }, expected = c( "instance of", "part of", NA, NA )) }) test_that("check if property descriptions are returned correctly", { testthat::skip_if_offline() expect_true(object = { tw_disable_cache() result <- tw_get_property_description(property = "P31") stringr::str_starts(string = result, pattern = "that class of") }) expect_equal(object = { tw_disable_cache() tw_get_property_description(property = c("P31", "P361")) %>% stringr::word(end = 3) }, expected = c( "that class of", "object of which" )) }) test_that("check if property descriptions are returned correctly with cache", { testthat::skip_if_offline() expect_true(object = { tw_set_cache_folder(path = tempdir()) tw_enable_cache() result <- tw_get_property_description(property = "P31") stringr::str_starts(string = result, pattern = "that class of which") }) expect_equal(object = { tw_disable_cache() tw_get_property_description(property = c("P31", "P361")) %>% stringr::word(end = 3) }, expected = c( "that class of", "object of which" )) }) test_that("check if property are returned correctly when multiple NA included", { testthat::skip_if_offline() expect_equal(object = { tw_get_property_same_length( id = c("Q180099", NA, "Q228822", NA), p = "P31", only_first = FALSE ) %>% unlist() %>% is.na() %>% sum() }, expected = 2) }) }