From 8562d4f7c7e3b978f71521f603541c8fa069aa38 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 24 Oct 2024 13:22:12 +0200 Subject: [PATCH 1/2] typosquat/test_util: Remove unused `Version` from `crate_and_version()` return type --- src/typosquat/database.rs | 4 ++-- src/typosquat/test_util.rs | 6 +++--- src/worker/jobs/typosquat.rs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/typosquat/database.rs b/src/typosquat/database.rs index 9354c7fba66..cd01550c88f 100644 --- a/src/typosquat/database.rs +++ b/src/typosquat/database.rs @@ -183,8 +183,8 @@ mod tests { // Let's set up a team that owns both b and c, but not a. let not_the_a_team = faker::team(&mut conn, "org", "team")?; - faker::add_crate_to_team(&mut conn, &user_b, &top_b.0, ¬_the_a_team)?; - faker::add_crate_to_team(&mut conn, &user_b, ¬_top_c.0, ¬_the_a_team)?; + faker::add_crate_to_team(&mut conn, &user_b, &top_b, ¬_the_a_team)?; + faker::add_crate_to_team(&mut conn, &user_b, ¬_top_c, ¬_the_a_team)?; let top_crates = TopCrates::new(&mut conn, 2)?; diff --git a/src/typosquat/test_util.rs b/src/typosquat/test_util.rs index e71721b93f6..4bf2b68a60c 100644 --- a/src/typosquat/test_util.rs +++ b/src/typosquat/test_util.rs @@ -38,7 +38,7 @@ pub mod faker { description: &str, user: &User, downloads: i32, - ) -> anyhow::Result<(Crate, Version)> { + ) -> anyhow::Result { let krate = NewCrate { name, description: Some(description), @@ -51,14 +51,14 @@ pub mod faker { .set(crate_downloads::downloads.eq(downloads as i64)) .execute(conn)?; - let version = NewVersion::builder(krate.id, "1.0.0") + NewVersion::builder(krate.id, "1.0.0") .published_by(user.id) .checksum("0000000000000000000000000000000000000000000000000000000000000000") .build() .save(conn, "someone@example.com") .unwrap(); - Ok((krate, version)) + Ok(krate) } pub fn team(conn: &mut PgConnection, org: &str, team: &str) -> anyhow::Result { diff --git a/src/worker/jobs/typosquat.rs b/src/worker/jobs/typosquat.rs index 11377f6c7e5..627afe7fef8 100644 --- a/src/worker/jobs/typosquat.rs +++ b/src/worker/jobs/typosquat.rs @@ -141,14 +141,14 @@ mod tests { // Now we'll create new crates: one problematic, one not so. let other_user = faker::user(&mut conn, "b")?; - let (angel, _version) = faker::crate_and_version( + let angel = faker::crate_and_version( &mut conn, "innocent-crate", "I'm just a simple, innocent crate", &other_user, 0, )?; - let (demon, _version) = faker::crate_and_version( + let demon = faker::crate_and_version( &mut conn, "mycrate", "I'm even more innocent, obviously", From 1a6755e6fe89bde3185cfd387558229e400a36be Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 24 Oct 2024 13:24:25 +0200 Subject: [PATCH 2/2] typosquat/test_util: Simplify `crate_and_version()` by using `CrateBuilder` --- src/typosquat/test_util.rs | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/src/typosquat/test_util.rs b/src/typosquat/test_util.rs index 4bf2b68a60c..23cf9b21b19 100644 --- a/src/typosquat/test_util.rs +++ b/src/typosquat/test_util.rs @@ -2,14 +2,14 @@ use diesel::{prelude::*, PgConnection}; use crate::tests::util::github::next_gh_id; use crate::{ - models::{ - Crate, CrateOwner, NewCrate, NewTeam, NewUser, NewVersion, Owner, OwnerKind, User, Version, - }, - schema::{crate_downloads, crate_owners, users}, + models::{Crate, CrateOwner, NewTeam, NewUser, Owner, OwnerKind, User}, + schema::{crate_owners, users}, }; pub mod faker { use super::*; + use crate::tests::builders::CrateBuilder; + use anyhow::anyhow; pub fn add_crate_to_team( conn: &mut PgConnection, @@ -39,26 +39,12 @@ pub mod faker { user: &User, downloads: i32, ) -> anyhow::Result { - let krate = NewCrate { - name, - description: Some(description), - ..Default::default() - } - .create(conn, user.id)?; - - diesel::update(crate_downloads::table) - .filter(crate_downloads::crate_id.eq(krate.id)) - .set(crate_downloads::downloads.eq(downloads as i64)) - .execute(conn)?; - - NewVersion::builder(krate.id, "1.0.0") - .published_by(user.id) - .checksum("0000000000000000000000000000000000000000000000000000000000000000") - .build() - .save(conn, "someone@example.com") - .unwrap(); - - Ok(krate) + CrateBuilder::new(name, user.id) + .description(description) + .downloads(downloads) + .version("1.0.0") + .build(conn) + .map_err(|err| anyhow!(err.to_string())) } pub fn team(conn: &mut PgConnection, org: &str, team: &str) -> anyhow::Result {