Skip to content

Commit

Permalink
make FakeRelease purely async (#2722)
Browse files Browse the repository at this point in the history
  • Loading branch information
syphar authored Jan 16, 2025
1 parent 13d4cce commit d97b27d
Show file tree
Hide file tree
Showing 21 changed files with 529 additions and 549 deletions.
16 changes: 8 additions & 8 deletions src/build_queue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -752,13 +752,13 @@ mod tests {
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2020, 1, 1).unwrap());
});

env.async_fake_release()
env.fake_release()
.await
.name("foo")
.version("0.1.0")
.builds(vec![FakeBuild::default()
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
.create_async()
.create()
.await?;

let build_queue = env.async_build_queue().await;
Expand All @@ -781,13 +781,13 @@ mod tests {
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap());
});

env.async_fake_release()
env.fake_release()
.await
.name("foo")
.version("0.1.0")
.builds(vec![FakeBuild::default()
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
.create_async()
.create()
.await?;

let build_queue = env.async_build_queue().await;
Expand Down Expand Up @@ -829,13 +829,13 @@ mod tests {

assert_eq!(build_queue.queued_crates().await?.len(), 0);

env.async_fake_release()
env.fake_release()
.await
.name("foo")
.version("0.1.0")
.builds(vec![FakeBuild::default()
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
.create_async()
.create()
.await?;

let build_queue = env.async_build_queue().await;
Expand Down Expand Up @@ -863,13 +863,13 @@ mod tests {
.add_crate("foo2", "0.1.0", REBUILD_PRIORITY, None)
.await?;

env.async_fake_release()
env.fake_release()
.await
.name("foo")
.version("0.1.0")
.builds(vec![FakeBuild::default()
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
.create_async()
.create()
.await?;

let build_queue = env.async_build_queue().await;
Expand Down
22 changes: 13 additions & 9 deletions src/db/add_package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -825,12 +825,12 @@ mod test {
let mut conn = env.async_db().await.async_conn().await;

let release_id = env
.async_fake_release()
.fake_release()
.await
.name("dummy")
.version("0.13.0")
.keywords(vec!["kw 1".into(), "kw 2".into()])
.create_async()
.create()
.await?;

let kw_r = sqlx::query!(
Expand Down Expand Up @@ -867,19 +867,23 @@ mod test {

#[test]
fn keyword_conflict_when_rebuilding_release() {
wrapper(|env| {
async_wrapper(|env| async move {
env.fake_release()
.await
.name("dummy")
.version("0.13.0")
.keywords(vec!["kw 3".into(), "kw 4".into()])
.create()?;
.create()
.await?;

// same version so we have the same release
env.fake_release()
.await
.name("dummy")
.version("0.13.0")
.keywords(vec!["kw 3".into(), "kw 4".into()])
.create()?;
.create()
.await?;

Ok(())
})
Expand All @@ -888,21 +892,21 @@ mod test {
#[test]
fn updated_keywords() {
async_wrapper(|env| async move {
env.async_fake_release()
env.fake_release()
.await
.name("dummy")
.version("0.13.0")
.keywords(vec!["kw 3".into(), "kw 4".into()])
.create_async()
.create()
.await?;

let release_id = env
.async_fake_release()
.fake_release()
.await
.name("dummy")
.version("0.13.0")
.keywords(vec!["kw 1".into(), "kw 2".into()])
.create_async()
.create()
.await?;

let mut conn = env.async_db().await.async_conn().await;
Expand Down
24 changes: 12 additions & 12 deletions src/db/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,11 +242,11 @@ mod tests {
#[test]
fn test_get_id_uses_normalization() {
async_wrapper(|env| async move {
env.async_fake_release()
env.fake_release()
.await
.name("Some_Package")
.version("1.0.0")
.create_async()
.create()
.await?;

let mut conn = env.async_db().await.async_conn().await;
Expand All @@ -264,27 +264,27 @@ mod tests {

// Create fake packages in the database
let pkg1_v1_id = env
.async_fake_release()
.fake_release()
.await
.name("package-1")
.version("1.0.0")
.archive_storage(archive_storage)
.create_async()
.create()
.await?;
let pkg1_v2_id = env
.async_fake_release()
.fake_release()
.await
.name("package-1")
.version("2.0.0")
.archive_storage(archive_storage)
.create_async()
.create()
.await?;
let pkg2_id = env
.async_fake_release()
.fake_release()
.await
.name("package-2")
.archive_storage(archive_storage)
.create_async()
.create()
.await?;

assert!(crate_exists(&mut conn, "package-1").await?);
Expand Down Expand Up @@ -407,7 +407,7 @@ mod tests {

let mut conn = env.async_db().await.async_conn().await;
let v1 = env
.async_fake_release()
.fake_release()
.await
.name("a")
.version("1.0.0")
Expand All @@ -417,7 +417,7 @@ mod tests {
avatar: "https://example.org/malicious".into(),
kind: OwnerKind::User,
})
.create_async()
.create()
.await?;
assert!(release_exists(&mut conn, v1).await?);
assert!(
Expand All @@ -438,7 +438,7 @@ mod tests {
);

let v2 = env
.async_fake_release()
.fake_release()
.await
.name("a")
.version("2.0.0")
Expand All @@ -448,7 +448,7 @@ mod tests {
avatar: "https://example.org/peter".into(),
kind: OwnerKind::User,
})
.create_async()
.create()
.await?;
assert!(release_exists(&mut conn, v2).await?);
assert!(
Expand Down
16 changes: 2 additions & 14 deletions src/test/fakes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ use chrono::{DateTime, Utc};
use std::collections::HashMap;
use std::iter;
use std::sync::Arc;
use tokio::runtime::Runtime;
use tracing::debug;

/// Create a fake release in the database that failed before the build.
Expand Down Expand Up @@ -55,7 +54,6 @@ pub(crate) async fn fake_release_that_failed_before_build(
pub(crate) struct FakeRelease<'a> {
db: &'a TestDatabase,
storage: Arc<AsyncStorage>,
runtime: Arc<Runtime>,
package: MetadataPackage,
builds: Option<Vec<FakeBuild>>,
/// name, content
Expand Down Expand Up @@ -89,15 +87,10 @@ const DEFAULT_CONTENT: &[u8] =
b"<html><head></head><body>default content for test/fakes</body></html>";

impl<'a> FakeRelease<'a> {
pub(super) fn new(
db: &'a TestDatabase,
storage: Arc<AsyncStorage>,
runtime: Arc<Runtime>,
) -> Self {
pub(super) fn new(db: &'a TestDatabase, storage: Arc<AsyncStorage>) -> Self {
FakeRelease {
db,
storage,
runtime,
package: MetadataPackage {
id: "fake-package-id".into(),
name: "fake-package".into(),
Expand Down Expand Up @@ -328,13 +321,8 @@ impl<'a> FakeRelease<'a> {
self
}

pub(crate) fn create(self) -> Result<ReleaseId> {
let runtime = self.runtime.clone();
runtime.block_on(self.create_async())
}

/// Returns the release_id
pub(crate) async fn create_async(self) -> Result<ReleaseId> {
pub(crate) async fn create(self) -> Result<ReleaseId> {
use std::fs;
use std::path::Path;

Expand Down
12 changes: 2 additions & 10 deletions src/test/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -601,23 +601,15 @@ impl TestEnvironment {
.await
}

pub(crate) fn fake_release(&self) -> fakes::FakeRelease {
self.runtime().block_on(self.async_fake_release())
}

pub(crate) async fn web_app(&self) -> Router {
let template_data = Arc::new(TemplateData::new(1).unwrap());
build_axum_app(self, template_data)
.await
.expect("could not build axum app")
}

pub(crate) async fn async_fake_release(&self) -> fakes::FakeRelease {
fakes::FakeRelease::new(
self.async_db().await,
self.async_storage().await,
self.runtime(),
)
pub(crate) async fn fake_release(&self) -> fakes::FakeRelease {
fakes::FakeRelease::new(self.async_db().await, self.async_storage().await)
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/utils/consistency/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,18 @@ mod tests {
.await
.add_crate("queued", "0.0.1", 0, None)
.await?;
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.0.2")
.create_async()
.create()
.await?;
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.0.3")
.yanked(true)
.create_async()
.create()
.await?;

let mut conn = env.async_db().await.async_conn().await;
Expand Down
16 changes: 8 additions & 8 deletions src/utils/consistency/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -185,12 +185,12 @@ mod tests {
#[test]
fn test_delete_crate() {
async_wrapper(|env| async move {
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.1.1")
.version("0.1.2")
.create_async()
.create()
.await?;

let diff = [Difference::CrateNotInIndex("krate".into())];
Expand Down Expand Up @@ -218,17 +218,17 @@ mod tests {
#[test]
fn test_delete_release() {
async_wrapper(|env| async move {
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.1.1")
.create_async()
.create()
.await?;
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.1.2")
.create_async()
.create()
.await?;

let diff = [Difference::ReleaseNotInIndex(
Expand Down Expand Up @@ -256,12 +256,12 @@ mod tests {
#[test]
fn test_wrong_yank() {
async_wrapper(|env| async move {
env.async_fake_release()
env.fake_release()
.await
.name("krate")
.version("0.1.1")
.yanked(true)
.create_async()
.create()
.await?;

let diff = [Difference::ReleaseYank(
Expand Down
4 changes: 2 additions & 2 deletions src/utils/html.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ mod test {
#[test]
fn rewriting_only_injects_css_once() {
async_wrapper(|env| async move {
env.async_fake_release().await
env.fake_release().await
.name("testing")
.version("0.1.0")
// A somewhat representative rustdoc html file from 2016
Expand All @@ -139,7 +139,7 @@ mod test {
</head>
</html>
"#)
.create_async().await?;
.create().await?;

let web = env.web_app().await;
let output = web.get("/testing/0.1.0/2016/").await?.text().await?;
Expand Down
Loading

0 comments on commit d97b27d

Please sign in to comment.