Files
galaxy/app/src/persistence/testing.rs
T

47 lines
2.2 KiB
Rust

//! Module with integration test-only util methods setting up sqlite.
use diesel::{ExpressionMethods, QueryDsl, RunQueryDsl};
use super::{schema, sqlite::init_db};
/// Updates the 'user' and 'host' columns for stored blocks to the given values.
///
/// This is used at runtime to update the user and host values to real values based on the running
/// machine in integration tests that rely on accuracy of these values.
pub fn set_user_and_hostname_for_blocks(user: String, hostname: String) {
let mut conn = init_db().expect("Should be able to establish sqlite connection.");
// Update the 'user' and 'host' columns to their real values (based on the machine on which this test is running)
// for blocks that were stored with the placeholder 'local:user' and 'local:host' values.
//
// This allows us to use real (rather than mocked out) logic for matching restored
// blocks to the appropriate session based on session hostnamebased on system hostname.
diesel::update(schema::blocks::dsl::blocks.filter(schema::blocks::user.eq("local:user")))
.set((
schema::blocks::user.eq(user),
schema::blocks::host.eq(hostname),
))
.execute(&mut conn)
.expect("Failed to update user and hostname for restored blocks.");
}
pub fn set_user_and_hostname_for_commands(user: String, hostname: String) {
let mut conn = init_db().expect("Should be able to establish sqlite connection.");
// Update the 'user' and 'host' columns to their real values (based on the machine on which
// this test is running) for commands that were stored with the placeholder 'local:user' and
// 'local:host' values.
//
// This allows us to use real (rather than mocked out) logic for matching history commands to
// the appropriate session based on session hostnamebased on system hostname.
diesel::update(
schema::commands::dsl::commands.filter(schema::commands::username.eq("local:user")),
)
.set((
schema::commands::username.eq(user),
schema::commands::hostname.eq(hostname),
))
.execute(&mut conn)
.expect("Failed to update user and hostname for persisted commands.");
}