diff --git a/Cargo.lock b/Cargo.lock index 5c97b471045..981b6f6c756 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1153,6 +1153,7 @@ dependencies = [ "chrono", "crates_io_test_db", "diesel", + "diesel-async", "flate2", "insta", "minijinja", @@ -1160,6 +1161,7 @@ dependencies = [ "serde_json", "tar", "tempfile", + "tokio", "toml", "tracing", "zip", diff --git a/crates/crates_io_database_dump/Cargo.toml b/crates/crates_io_database_dump/Cargo.toml index 9638c4aa464..a1e5b726507 100644 --- a/crates/crates_io_database_dump/Cargo.toml +++ b/crates/crates_io_database_dump/Cargo.toml @@ -23,4 +23,6 @@ zip = { version = "=2.2.0", default-features = false, features = ["deflate"] } [dev-dependencies] crates_io_test_db = { path = "../crates_io_test_db" } diesel = "=2.2.4" +diesel-async = { version = "=0.5.1", features = ["postgres"] } insta = { version = "=1.41.1", features = ["glob"] } +tokio = { version = "=1.41.1", features = ["macros", "rt"] } diff --git a/crates/crates_io_database_dump/src/gen_scripts.rs b/crates/crates_io_database_dump/src/gen_scripts.rs index 56ef913a929..3d6224eb974 100644 --- a/crates/crates_io_database_dump/src/gen_scripts.rs +++ b/crates/crates_io_database_dump/src/gen_scripts.rs @@ -120,17 +120,18 @@ mod tests { use super::*; use crates_io_test_db::TestDatabase; use diesel::prelude::*; + use diesel_async::{AsyncPgConnection, RunQueryDsl}; use std::collections::HashSet; use std::iter::FromIterator; /// Test whether the visibility configuration matches the schema of the /// test database. - #[test] - fn check_visibility_config() { + #[tokio::test] + async fn check_visibility_config() { let test_db = TestDatabase::new(); - let mut conn = test_db.connect(); + let mut conn = test_db.async_connect().await; - let db_columns = HashSet::::from_iter(get_db_columns(&mut conn)); + let db_columns = HashSet::::from_iter(get_db_columns(&mut conn).await); let vis_columns = VisibilityConfig::get() .0 .iter() @@ -186,13 +187,14 @@ mod tests { column_name: String, } - fn get_db_columns(conn: &mut PgConnection) -> Vec { + async fn get_db_columns(conn: &mut AsyncPgConnection) -> Vec { use information_schema::columns; columns::table .select((columns::table_name, columns::column_name)) .filter(columns::table_schema.eq("public")) .order_by((columns::table_name, columns::ordinal_position)) .load(conn) + .await .unwrap() } }