Skip to content
This repository has been archived by the owner on Sep 9, 2022. It is now read-only.

Commit

Permalink
fix #14 - fix internal error message parsingn to account for changes …
Browse files Browse the repository at this point in the history
…in MAS error formats
  • Loading branch information
sckott committed Jan 27, 2020
1 parent a347a08 commit c5987e3
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 10 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Description: The 'Microsoft Academic Knowledge' API provides programmatic access
(<https://academic.microsoft.com/>). Includes methods matching all 'Microsoft
Academic' API routes, including search, graph search, text similarity, and
interpret natural language query string.
Version: 0.4.3.94
Version: 0.4.4.91
Authors@R: c(
person("Scott", "Chamberlain", email = "myrmecocystus+r@gmail.com",
role = c("aut", "cre"), comment = c(ORCID = "0000-0003-1444-9135")),
Expand Down
30 changes: 25 additions & 5 deletions R/zzz.R
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,34 @@ raise_for_status2 <- function(res) {

parse_error_msg <- function(res) {
txt <- res$parse("UTF-8")
er_vec <- unlist(jsonlite::fromJSON(txt))
er_vec <- jsonlite::fromJSON(txt)
er_vec <- all_to_lower(er_vec)
# er_vec names used to be capitilized (e.g., "Error.Code", not "error.code").
# convert to lowercase just in case API goes back to using caps.
names(er_vec) <- tolower(names(er_vec))
list(
# names(er_vec) <- tolower(names(er_vec))
tmp <- list(
# the error.code element refers to a short error message, not the HTTP
# status code
message = er_vec[["error.code"]],
explanation = er_vec[["error.message"]]
message = er_vec$error$code,
explanation = er_vec$error$message
)
if (!is.null(er_vec$error$innererrors)) {
tmp$explanation <- er_vec$error$innererrors$message[1]
}
return(tmp)
}

# x = list(A = list(B = 6), C = list(D = 7, E = list(F = list(G = 7))))
# all_to_lower(x)
all_to_lower <- function(x) {
if (!is.null(names(x))) {
names(x) <- tolower(names(x))
}
if (is.list(x)) {
x <- lapply(x, all_to_lower)
}
if (is.data.frame(x)) {
names(x) <- tolower(names(x))
}
x
}
65 changes: 62 additions & 3 deletions tests/fixtures/ma_error.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,69 @@ http_interactions:
request-context: appId=cid-v1:8d5cbad1-6ca8-4d39-8271-8f3a8d671eae
access-control-expose-headers: Request-Context
x-powered-by: ASP.NET
date: Mon, 27 Jan 2020 19:49:57 GMT
date: Mon, 27 Jan 2020 19:53:50 GMT
body:
encoding: ASCII-8BIT
file: no
string: eyJFcnJvciI6eyJJZCI6IjUxZTllZGU2LTY1MTktNDQyNC04NjZiLTliM2EyNTZlZjhiMCIsIkNvZGUiOiJTeXN0ZW0uQWdncmVnYXRlRXhjZXB0aW9uIiwiTWVzc2FnZSI6Ik9uZSBvciBtb3JlIGVycm9ycyBvY2N1cnJlZC4iLCJUYXJnZXQiOiJLbm93bGVkZ2VFeHBsb3JhdGlvblNlcnZpY2VIb3N0IiwiSW5uZXJFcnJvcnMiOlt7IklkIjoiMGNiZGVmNDgtM2M0MS00MDQ5LWIzZDEtNWJhYTIwMTliNzUxIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiI4YjVlNGFmOC1jYjViLTQwYmUtOTJlMi00ZTBkMTcxNjUzODEiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImU2NGQ5YzJjLTliZTktNDQ3My04NzEwLWU1ZGM2YmViYTE0NCIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiM2VlYWY4MjAtNmZjNC00ZWVhLTgyNmItZGFjM2JkMWFiZjljIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJhODlhZTAzNC1lYTYwLTRiNTMtYmQyZC02MmY1NzBmOGUxNjQiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImMwNTE4ZGQ2LTdlYTYtNGE5OS1hYzU5LTY1NGQ0ZjA4ODAzZSIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiNGYwMWRmYzEtZWRmNy00YTEyLWI5MmEtMDU2ZGM0YzA2NGZkIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiI0ZjdjNzgwOS0yYThkLTQ0M2YtOWY5Yi0yNzQzZWI5NWVkNmEiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6IjY1YTkwMzA5LTAyOGEtNDBkZi1hZTM1LTZhMWM2MWQzOGVlZCIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiNWI5MzAyMzktYWU0Mi00MWVmLWI4NjgtZTNjNzAyZmNmYzZhIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiI4NjNhMDU5MC0wNzI4LTQ1ZWUtYjcwZC03YWI4OTQ2ZjU4N2MiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImEwNGFhYmU0LWM5MzEtNDZmMS04M2QyLWMxYWZiMjkyM2ZhOCIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiZTYyNDdjZDgtYTA4YS00OWRmLWEyM2ItZjEwMjAwYTlmOTYyIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJhNGM4ODUxOC0yMjNjLTRlNWMtYmZjZC04YTU1MTc2MWEyNTAiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImU5Yjc4MWI0LWZlM2MtNGY1Yi1iNzUxLTk2ZTYyYTU3YWUyZSIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiMWVjZTk4NDktZGUzZS00ZjgxLWJhYmEtNWRjMjg1MGUzMjdhIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9XX19
recorded_at: 2020-01-27 19:49:58 GMT
string: eyJFcnJvciI6eyJJZCI6ImY1Y2FkYTJjLTg2MjItNDNiMi1iYmM4LTNjMDNmNzc5MzIzMiIsIkNvZGUiOiJTeXN0ZW0uQWdncmVnYXRlRXhjZXB0aW9uIiwiTWVzc2FnZSI6Ik9uZSBvciBtb3JlIGVycm9ycyBvY2N1cnJlZC4iLCJUYXJnZXQiOiJLbm93bGVkZ2VFeHBsb3JhdGlvblNlcnZpY2VIb3N0IiwiSW5uZXJFcnJvcnMiOlt7IklkIjoiODMyY2FjNDktOGRmNS00ZTA2LWJkODgtNDQzZTcwYmZlYjUwIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiIyNjI0NzVhZC04YmRlLTQzY2YtYmVhZi0zZjdhNzBiYjU2M2EiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6IjE0NDM5NTVmLWVlMTUtNGVjYS05ZDkwLTc4OGM5YmFlOTA3MyIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiMmUyZjI2NzQtMjlkNC00YWIzLTg1ZjQtOGVmM2Y0MTVkZmEzIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJkYWExNzY5MC1mOGViLTQ1YzQtODZlYy01NjU2NzU0NzMxM2UiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImViOGIyMWIzLTI4NTktNDQ4ZC04OWI2LWFlMTM1ZjAyNTFhNSIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiYzFjYjRiOTItMTJmNi00NGI3LThmN2EtYTY5YTZlYWY0NzkzIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJiODgyMTk0NC1mOGExLTQ2N2YtYTA4ZC1hMTA2YWZhZjA2MTgiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6IjViMmU2NmY3LTcwZDItNGM3Zi1hYjgyLWZkZDdiMGU2ZWU2MyIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiYzVkM2VkYWUtNjM2My00MzRiLWI3Y2MtNzcyNmUzYzFjMzk2IiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJlNGI3NTEyMS0xY2Q2LTRjM2QtYmFkNi1lOTU1MDk5YmNkNjYiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6IjFhODJhMWYyLTUyODEtNDRiZC04OTNlLWRiNTcxMDY5NDg2MiIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiM2QwYzJlMGQtMDZlYi00MDFkLTg2OTYtNjMzMDhkNTI2MWEyIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9LHsiSWQiOiJmMjRiNGFhYy1jZGUwLTQ1MTYtODVjMC05OTM5MjBmMTAxMWEiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6IlF1ZXJ5IHBhcnNpbmcgZXJyb3IgaW4gc3RyaW5nIFwiaGktdGhlcmVcIiBhdCBwb3NpdGlvbiAyOiBVbmtub3duIGZ1bmN0aW9uL2F0dHJpYnV0ZSAnaGknIn0seyJJZCI6ImY1MTJiNTg1LTI3NTktNDBlNy1iYmI5LTk0YjZhNTNiYmM3ZSIsIkNvZGUiOiJTeXN0ZW0uQXJndW1lbnRFeGNlcHRpb24iLCJNZXNzYWdlIjoiUXVlcnkgcGFyc2luZyBlcnJvciBpbiBzdHJpbmcgXCJoaS10aGVyZVwiIGF0IHBvc2l0aW9uIDI6IFVua25vd24gZnVuY3Rpb24vYXR0cmlidXRlICdoaScifSx7IklkIjoiZmFlY2M0MzEtOGQzYy00MzcyLTlhOGEtMWU1ZDdhNjdmOGFhIiwiQ29kZSI6IlN5c3RlbS5Bcmd1bWVudEV4Y2VwdGlvbiIsIk1lc3NhZ2UiOiJRdWVyeSBwYXJzaW5nIGVycm9yIGluIHN0cmluZyBcImhpLXRoZXJlXCIgYXQgcG9zaXRpb24gMjogVW5rbm93biBmdW5jdGlvbi9hdHRyaWJ1dGUgJ2hpJyJ9XX19
recorded_at: 2020-01-27 19:53:51 GMT
recorded_with: vcr/0.4.0, webmockr/0.5.0
- request:
method: get
uri: https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?expr=Y%3D%5B2010%2C%202012%29&count=10&offset=bad-offset&attributes=Id%2CAA.AuN%2CJ.JN%2CTi%2CY%2CE%2CCC&model=latest
body:
encoding: ''
string: ''
headers:
User-Agent: libcurl/7.54.0 r-curl/4.3 crul/0.9.0
Accept-Encoding: gzip, deflate
Accept: application/json, text/xml, application/xml, */*
Ocp-Apim-Subscription-Key: <<<microdemic_api_key>>>
response:
status:
status_code: '400'
message: Bad Request
explanation: Bad request syntax or unsupported method
headers:
status: HTTP/1.1 400 Bad Request
content-length: '265'
content-type: application/json
access-control-allow-origin: '*'
request-context: appId=cid-v1:8d5cbad1-6ca8-4d39-8271-8f3a8d671eae
access-control-expose-headers: Request-Context
x-powered-by: ASP.NET
date: Mon, 27 Jan 2020 19:53:50 GMT
body:
encoding: ASCII-8BIT
file: no
string: eyJFcnJvciI6eyJJZCI6IjViYzgyNWQ1LWY4ZjQtNDE1OS04OGUxLTgzMGQyZjJiOTNlOSIsIkNvZGUiOiJTeXN0ZW0uQWdncmVnYXRlRXhjZXB0aW9uIiwiTWVzc2FnZSI6Ik9uZSBvciBtb3JlIGVycm9ycyBvY2N1cnJlZC4iLCJJbm5lckVycm9ycyI6W3siSWQiOiJkMGMyNWVkOC02OGE1LTQyZjMtYTVmNi05YjYwYTliYmIyZTIiLCJDb2RlIjoiU3lzdGVtLkFyZ3VtZW50RXhjZXB0aW9uIiwiTWVzc2FnZSI6Ik9mZnNldCBtdXN0IGJlIGFuIGludGVnZXIifV19fQ==
recorded_at: 2020-01-27 19:53:51 GMT
recorded_with: vcr/0.4.0, webmockr/0.5.0
- request:
method: get
uri: https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?expr=Y%3D%5B2010%2C%202012%29&count=10&offset=0&attributes=Id%2CAA.AuN%2CJ.JN%2CTi%2CY%2CE%2CCC&model=latest
body:
encoding: ''
string: ''
headers:
User-Agent: libcurl/7.54.0 r-curl/4.3 crul/0.9.0
Accept-Encoding: gzip, deflate
Accept: application/json, text/xml, application/xml, */*
Ocp-Apim-Subscription-Key: bad-key
response:
status:
status_code: '401'
message: Unauthorized
explanation: No permission -- see authorization schemes
headers:
status: HTTP/1.1 401 Access Denied
content-length: '180'
content-type: application/json
www-authenticate: AzureApiManagementKey realm="https://api.labs.cognitive.microsoft.com/academic/v1.0",name="Ocp-Apim-Subscription-Key",type="header"
date: Mon, 27 Jan 2020 19:53:50 GMT
body:
encoding: ASCII-8BIT
file: no
string: eyJlcnJvciI6eyJjb2RlIjoiVW5zcGVjaWZpZWQiLCJtZXNzYWdlIjoiQWNjZXNzIGRlbmllZCBkdWUgdG8gaW52YWxpZCBzdWJzY3JpcHRpb24ga2V5LiBNYWtlIHN1cmUgeW91IGFyZSBzdWJzY3JpYmVkIHRvIGFuIEFQSSB5b3UgYXJlIHRyeWluZyB0byBjYWxsIGFuZCBwcm92aWRlIHRoZSByaWdodCBrZXkuIn19
recorded_at: 2020-01-27 19:53:51 GMT
recorded_with: vcr/0.4.0, webmockr/0.5.0
10 changes: 9 additions & 1 deletion tests/testthat/test-error-msgs.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ test_that("Detailed error messages are provided when possible", {
skip_on_cran()

vcr::use_cassette("ma_error", {
expect_error(ma_search(query = "hi-there"))
# error: Query parsing error in string "hi-there" at position 2: Unknown
# function/attribute 'hi'
expect_error(ma_search("hi-there"))
# error: Offset must be an integer
expect_error(ma_evaluate("Y=[2010, 2012)", offset = "bad-offset"))
# error: Access denied due to invalid subscription key. Make sure you
# are subscribed to an API you are trying to call and provide the right
# key.
expect_error(ma_search("Y=[2010, 2012)", key = "bad-key"))
}, preserve_exact_body_bytes = TRUE)
})

0 comments on commit c5987e3

Please sign in to comment.