Nothing
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
context(paste(Sys.getenv("PRESTO_TYPE", "Presto"), "dbGetInfo"))
test_that("dbGetInfo works with live database", {
conn <- setup_live_connection()
connection.info <- dbGetInfo(conn)
expect_is(connection.info, "list")
expect_equal(length(connection.info), 5)
expect_true(setequal(
names(connection.info),
c("host", "port", "user", "catalog", "schema")
))
result <- dbSendQuery(conn, "SELECT 1")
result.info <- dbGetInfo(result)
expect_equal(
result.info[c("statement", "row.count", "has.completed")],
list(
statement = "SELECT 1",
row.count = as.integer(0),
has.completed = FALSE
)
)
expect_is(result.info[["stats"]], "list")
expect_false(is.null(result.info[["stats"]][["state"]]))
expect_true(dbClearResult(result))
})
test_that("dbGetInfo works with mock", {
conn <- setup_mock_connection()
connection.info <- dbGetInfo(conn)
expect_equal(
dbGetInfo(conn),
list(
host = "http://localhost",
port = as.integer(8000),
user = Sys.getenv("USER"),
catalog = "catalog",
schema = "test"
)
)
with_mock(
`httr::POST` = mock_httr_replies(
mock_httr_response(
"http://localhost:8000/v1/statement",
status_code = 200,
state = "QUEUED",
request_body = "SELECT n FROM two_rows",
next_uri = "http://localhost:8000/query_1/1",
query_id = "query_1"
)
),
`httr::GET` = mock_httr_replies(
mock_httr_response(
"http://localhost:8000/query_1/1",
status_code = 200,
data = data.frame(n = 1, stringsAsFactors = FALSE),
state = "FINISHED",
next_uri = "http://localhost:8000/query_1/2"
),
mock_httr_response(
"http://localhost:8000/query_1/2",
status_code = 200,
data = data.frame(n = 2, stringsAsFactors = FALSE),
state = "FINISHED"
)
),
{
result <- dbSendQuery(conn, "SELECT n FROM two_rows")
expect_equal(
dbGetInfo(result),
list(
query.id = "query_1",
statement = "SELECT n FROM two_rows",
row.count = as.integer(0),
has.completed = FALSE,
stats = list(state = "QUEUED")
)
)
expect_equal(dbFetch(result), tibble::tibble(n = 1))
expect_equal(
dbGetInfo(result),
list(
query.id = "query_1",
statement = "SELECT n FROM two_rows",
row.count = as.integer(1),
has.completed = FALSE,
stats = list(state = "FINISHED")
)
)
expect_equal(dbFetch(result), tibble::tibble(n = 2))
expect_equal(
dbGetInfo(result),
list(
query.id = "query_1",
statement = "SELECT n FROM two_rows",
row.count = as.integer(2),
has.completed = TRUE,
stats = list(state = "FINISHED")
)
)
}
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.