From fae85e71d7c63f711b489660ced6ed4eb2f0749f Mon Sep 17 00:00:00 2001 From: subcrip Date: Fri, 29 Mar 2024 20:09:12 +0800 Subject: [PATCH] fix(db): unit test --- src/db.rs | 28 +++++----------------------- src/main.rs | 4 +--- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/db.rs b/src/db.rs index 7ecd995..431f397 100644 --- a/src/db.rs +++ b/src/db.rs @@ -41,41 +41,23 @@ pub mod db_tests { } pub struct DBTestComponents { - d: Option, - dropped: bool, + d: OAuthDatabase, } impl DBTestComponents { - fn default() -> Self { - Self { d: None, dropped: false } - } pub async fn new(mut d: OAuthDatabase) -> Result { d.psql_execute("create table rust_test(name text, age int)", &[]).await?; - Ok(Self { d: Some(d), dropped: false }) + Ok(Self { d }) } pub async fn create(&mut self, item: DBTestEntryType) -> Result<(), tokio_postgres::Error> { - self.d.as_mut().unwrap().psql_execute("insert into rust_test (name, age) values ($1, $2)", &[&item.name, &item.age]).await?; + self.d.psql_execute("insert into rust_test (name, age) values ($1, $2)", &[&item.name, &item.age]).await?; Ok(()) } - async fn destroy(&mut self) -> Result<(), tokio_postgres::Error> { - eprintln!("destroy() called."); - self.d.as_mut().unwrap().psql_execute("drop table rust_test", &[]).await?; - eprintln!("destroy() finished."); + pub async fn destroy(&mut self) -> Result<(), tokio_postgres::Error> { + self.d.psql_execute("drop table rust_test", &[]).await?; Ok(()) } } - - impl Drop for DBTestComponents { - fn drop(&mut self) { - eprintln!("drop() called."); - if !self.dropped { - let mut this = DBTestComponents::default(); - std::mem::swap(&mut this, self); - this.dropped = true; - tokio::spawn(async move {this.destroy().await}); - } - } - } } diff --git a/src/main.rs b/src/main.rs index 155239f..1dbb595 100644 --- a/src/main.rs +++ b/src/main.rs @@ -33,9 +33,7 @@ async fn main() { #[tokio::test(flavor = "multi_thread")] async fn test_entry_level_operations() { use db::db_tests; - eprintln!("1"); let mut b = db_tests::DBTestComponents::new(db::OAuthDatabase::connect("localhost", 5432, "postgres", "configjson", "myoauth").await.unwrap()).await.unwrap(); - eprintln!("2"); assert!(matches!(b.create(db_tests::DBTestEntryType::new("subcrip".to_string(), 19)).await, Ok(()))); - eprintln!("3"); + let _ = b.destroy().await; }