local_namespace_mock <- function(package, name, replacement) { ns <- asNamespace(package) old <- get(name, envir = ns, inherits = FALSE) was_locked <- bindingIsLocked(name, ns) if (was_locked) { unlockBinding(name, ns) } assign(name, replacement, envir = ns) if (was_locked) { lockBinding(name, ns) } withr::defer( { if (bindingIsLocked(name, ns)) { unlockBinding(name, ns) } assign(name, old, envir = ns) if (was_locked) { lockBinding(name, ns) } }, envir = parent.frame() ) } fake_connection <- function(dbms = "sql server") { connection <- structure(list(), class = "DatabaseConnectorConnection") attr(connection, "dbms") <- dbms connection }