swap to rstest

This commit is contained in:
Elijah McMorris 2024-08-25 20:30:42 -07:00
parent 58938e8f71
commit d508518beb
Signed by: NexVeridian
SSH key fingerprint: SHA256:bsA1SKZxuEcEVHAy3gY1HUeM5ykRJl0U0kQHQn0hMg8
5 changed files with 535 additions and 581 deletions

2
.gitignore vendored
View file

@ -105,3 +105,5 @@ venv.bak/
/data /data
/target /target
filter.surql

1060
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0"
anyhow = "1.0" anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
surrealdb = { version = "1.5", features = ["protocol-ws", "kv-mem"] } surrealdb-alpha = { version = "2.0.9", features = ["protocol-ws", "kv-mem"] }
tokio = { version = "1.39", features = ["time"] } tokio = { version = "1.39", features = ["time"] }
futures = "0.3" futures = "0.3"
wikidata = "1.1" wikidata = "1.1"
@ -18,7 +18,8 @@ indicatif = "0.17"
rand = "0.8" rand = "0.8"
[dev-dependencies] [dev-dependencies]
surrealdb = { version = "1.5", features = ["kv-mem"] } rstest = "0.22"
surrealdb-alpha = { version = "2.0.9", features = ["kv-mem"] }
criterion = { version = "0.5", features = ["async_tokio"] } criterion = { version = "0.5", features = ["async_tokio"] }
pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] } pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] }

View file

@ -1,4 +1,5 @@
use anyhow::{Error, Ok, Result}; use anyhow::{Error, Ok, Result};
use rstest::rstest;
use std::{env, io::BufRead}; use std::{env, io::BufRead};
use surrealdb::{engine::local::Db, Surreal}; use surrealdb::{engine::local::Db, Surreal};
@ -47,24 +48,18 @@ async fn entity() {
assert_eq!(51.0, entity_query(&db).await.unwrap().unwrap()) assert_eq!(51.0, entity_query(&db).await.unwrap().unwrap())
} }
async fn entity_threaded_insert(create_version: CreateVersion) -> Result<Surreal<Db>, Error> { #[rstest]
#[case(CreateVersion::Single)]
#[case(CreateVersion::Bulk)]
#[tokio::test]
async fn entity_threaded(#[case] version: CreateVersion) -> Result<(), Error> {
let db = inti_db().await?; let db = inti_db().await?;
let reader = File_Format::new("json").reader("tests/data/Entity.json")?; let reader = init_reader("json", "Entity");
create_db_entities_threaded(Some(db.clone()), reader, None, 1_000, 100, create_version).await?; create_db_entities_threaded(Some(db.clone()), reader, None, 1_000, 100, version).await?;
Ok(db)
}
#[tokio::test] assert_eq!(51.0, entity_query(&db).await?.unwrap());
async fn entity_threaded() { Ok(())
let db = entity_threaded_insert(CreateVersion::Single).await.unwrap();
assert_eq!(51.0, entity_query(&db).await.unwrap().unwrap())
}
#[tokio::test]
async fn entity_threaded_bulk_insert() {
let db = entity_threaded_insert(CreateVersion::Bulk).await.unwrap();
assert_eq!(51.0, entity_query(&db).await.unwrap().unwrap())
} }
async fn property_query(db: &Surreal<Db>) -> Result<Option<f32>, Error> { async fn property_query(db: &Surreal<Db>) -> Result<Option<f32>, Error> {
@ -89,24 +84,16 @@ async fn property() {
assert_eq!(2.0, property_query(&db).await.unwrap().unwrap()) assert_eq!(2.0, property_query(&db).await.unwrap().unwrap())
} }
async fn property_threaded_insert(create_version: CreateVersion) -> Result<Surreal<Db>, Error> { #[rstest]
#[case(CreateVersion::Single)]
#[case(CreateVersion::Bulk)]
#[tokio::test]
async fn property_threaded(#[case] version: CreateVersion) -> Result<(), Error> {
let db = inti_db().await?; let db = inti_db().await?;
let reader = init_reader("json", "Property"); let reader = init_reader("json", "Property");
create_db_entities_threaded(Some(db.clone()), reader, None, 1_000, 100, create_version).await?; create_db_entities_threaded(Some(db.clone()), reader, None, 1_000, 100, version).await?;
Ok(db)
}
#[tokio::test] assert_eq!(2.0, property_query(&db).await?.unwrap());
async fn property_threaded_single_insert() { Ok(())
let db = property_threaded_insert(CreateVersion::Single)
.await
.unwrap();
assert_eq!(2.0, property_query(&db).await.unwrap().unwrap())
}
#[tokio::test]
async fn property_threaded_bulk_insert() {
let db = property_threaded_insert(CreateVersion::Bulk).await.unwrap();
assert_eq!(2.0, property_query(&db).await.unwrap().unwrap())
} }