Nothing
## ----include = FALSE----------------------------------------------------------
library(testthat)
library(dittodb)
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
db_mock_paths("dittodb")
## ----setup db, include = FALSE, eval = FALSE----------------------------------
# # setup the DB used in the rest of the vignette
#
# con <- dbConnect(
# RMariaDB::MariaDB(),
# dbname = "nycflights",
# host = "127.0.0.1",
# username = "travis",
# password = ""
# )
#
# nycflights13_create_sql(con, schema = "nycflights13")
#
# # record interactions
#
# start_db_capturing()
# out <- mean_delays("day")
# out <- mean_delays("month")
# stop_db_capturing()
## ----mean_delays--------------------------------------------------------------
library(DBI)
mean_delays <- function(group_col) {
con <- dbConnect(
RMariaDB::MariaDB(),
dbname = "nycflights"
)
on.exit(dbDisconnect(con))
query <- glue::glue(
"SELECT {group_col}, AVG(arr_delay) as mean_delay from nycflights13.flights ",
"WHERE arr_delay > 0 GROUP BY {group_col}"
)
return(dbGetQuery(con, query))
}
## ----mean_delays_rpostgres, eval = FALSE--------------------------------------
# library(DBI)
#
# mean_delays <- function(group_col) {
# con <- dbConnect(
# RPostgres::Postgres(),
# dbname = "nycflights"
# )
# on.exit(dbDisconnect(con))
#
# query <- glue::glue(
# "SELECT {group_col}, AVG(arr_delay) as mean_delay from nycflights13.flights ",
# "WHERE arr_delay > 0 GROUP BY {group_col}"
# )
#
# return(dbGetQuery(con, query))
# }
## ----mean_delays_rsqlite, eval = FALSE----------------------------------------
# library(DBI)
#
# mean_delays <- function(group_col) {
# con <- dbConnect(
# RSQLite::SQLite(),
# dbname = "nycflights"
# )
# on.exit(dbDisconnect(con))
#
# query <- glue::glue(
# "SELECT {group_col}, AVG(arr_delay) as mean_delay from nycflights13.flights ",
# "WHERE arr_delay > 0 GROUP BY {group_col}"
# )
#
# return(dbGetQuery(con, query))
# }
## ----month, eval = FALSE------------------------------------------------------
# mean_delays("month")
## ----cooking_show, echo = FALSE-----------------------------------------------
with_mock_db(mean_delays("month"))
## ----tests_1, eval = FALSE----------------------------------------------------
# library(testthat)
#
# test_that("mean_delays()", {
# out <- mean_delays("month")
# expect_named(out, c("month", "mean_delay"))
# expect_equal(dim(out), c(12, 2))
# })
## ----recording, eval = FALSE--------------------------------------------------
# start_db_capturing()
# out <- mean_delays("month")
# stop_db_capturing()
## ----with_mock_1--------------------------------------------------------------
with_mock_db(
mean_delays("month")
)
## ----tests_2------------------------------------------------------------------
library(testthat)
library(dittodb)
with_mock_db(
test_that("mean_delays()", {
out <- mean_delays("month")
expect_named(out, c("month", "mean_delay"))
expect_equal(dim(out), c(12, 2))
})
)
## ----recording_days, eval = FALSE---------------------------------------------
# start_db_capturing()
# out <- mean_delays("day")
# stop_db_capturing()
## ----tests_day_2--------------------------------------------------------------
with_mock_db(
test_that("mean_delays()", {
out <- mean_delays("day")
expect_named(out, c("day", "mean_delay"))
expect_equal(dim(out), c(31, 2))
})
)
## ----editing, eval = FALSE----------------------------------------------------
# # read in the recorded fixture
# df_fixt <- source("nycflights/SELECT-16d120.R", keep.source = FALSE)$value
#
# # filter out anything after february and all days after the 9th of the month
# df_fixt <- dplyr::filter(df_fixt, month <= 2 & day < 10)
#
# # save the fixture for use in tests
# dput(df_fixt, file = "nycflights/SELECT-16d120.R", control = c("all", "hexNumeric"))
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.