Skip to content

Commit d97b27d

Browse files
authored
make FakeRelease purely async (#2722)
1 parent 13d4cce commit d97b27d

21 files changed

+529
-549
lines changed

src/build_queue.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -752,13 +752,13 @@ mod tests {
752752
config.rebuild_up_to_date = Some(NaiveDate::from_ymd_opt(2020, 1, 1).unwrap());
753753
});
754754

755-
env.async_fake_release()
755+
env.fake_release()
756756
.await
757757
.name("foo")
758758
.version("0.1.0")
759759
.builds(vec![FakeBuild::default()
760760
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
761-
.create_async()
761+
.create()
762762
.await?;
763763

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

784-
env.async_fake_release()
784+
env.fake_release()
785785
.await
786786
.name("foo")
787787
.version("0.1.0")
788788
.builds(vec![FakeBuild::default()
789789
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
790-
.create_async()
790+
.create()
791791
.await?;
792792

793793
let build_queue = env.async_build_queue().await;
@@ -829,13 +829,13 @@ mod tests {
829829

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

832-
env.async_fake_release()
832+
env.fake_release()
833833
.await
834834
.name("foo")
835835
.version("0.1.0")
836836
.builds(vec![FakeBuild::default()
837837
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
838-
.create_async()
838+
.create()
839839
.await?;
840840

841841
let build_queue = env.async_build_queue().await;
@@ -863,13 +863,13 @@ mod tests {
863863
.add_crate("foo2", "0.1.0", REBUILD_PRIORITY, None)
864864
.await?;
865865

866-
env.async_fake_release()
866+
env.fake_release()
867867
.await
868868
.name("foo")
869869
.version("0.1.0")
870870
.builds(vec![FakeBuild::default()
871871
.rustc_version("rustc 1.84.0-nightly (e7c0d2750 2020-10-15)")])
872-
.create_async()
872+
.create()
873873
.await?;
874874

875875
let build_queue = env.async_build_queue().await;

src/db/add_package.rs

+13-9
Original file line numberDiff line numberDiff line change
@@ -825,12 +825,12 @@ mod test {
825825
let mut conn = env.async_db().await.async_conn().await;
826826

827827
let release_id = env
828-
.async_fake_release()
828+
.fake_release()
829829
.await
830830
.name("dummy")
831831
.version("0.13.0")
832832
.keywords(vec!["kw 1".into(), "kw 2".into()])
833-
.create_async()
833+
.create()
834834
.await?;
835835

836836
let kw_r = sqlx::query!(
@@ -867,19 +867,23 @@ mod test {
867867

868868
#[test]
869869
fn keyword_conflict_when_rebuilding_release() {
870-
wrapper(|env| {
870+
async_wrapper(|env| async move {
871871
env.fake_release()
872+
.await
872873
.name("dummy")
873874
.version("0.13.0")
874875
.keywords(vec!["kw 3".into(), "kw 4".into()])
875-
.create()?;
876+
.create()
877+
.await?;
876878

877879
// same version so we have the same release
878880
env.fake_release()
881+
.await
879882
.name("dummy")
880883
.version("0.13.0")
881884
.keywords(vec!["kw 3".into(), "kw 4".into()])
882-
.create()?;
885+
.create()
886+
.await?;
883887

884888
Ok(())
885889
})
@@ -888,21 +892,21 @@ mod test {
888892
#[test]
889893
fn updated_keywords() {
890894
async_wrapper(|env| async move {
891-
env.async_fake_release()
895+
env.fake_release()
892896
.await
893897
.name("dummy")
894898
.version("0.13.0")
895899
.keywords(vec!["kw 3".into(), "kw 4".into()])
896-
.create_async()
900+
.create()
897901
.await?;
898902

899903
let release_id = env
900-
.async_fake_release()
904+
.fake_release()
901905
.await
902906
.name("dummy")
903907
.version("0.13.0")
904908
.keywords(vec!["kw 1".into(), "kw 2".into()])
905-
.create_async()
909+
.create()
906910
.await?;
907911

908912
let mut conn = env.async_db().await.async_conn().await;

src/db/delete.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,11 @@ mod tests {
242242
#[test]
243243
fn test_get_id_uses_normalization() {
244244
async_wrapper(|env| async move {
245-
env.async_fake_release()
245+
env.fake_release()
246246
.await
247247
.name("Some_Package")
248248
.version("1.0.0")
249-
.create_async()
249+
.create()
250250
.await?;
251251

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

265265
// Create fake packages in the database
266266
let pkg1_v1_id = env
267-
.async_fake_release()
267+
.fake_release()
268268
.await
269269
.name("package-1")
270270
.version("1.0.0")
271271
.archive_storage(archive_storage)
272-
.create_async()
272+
.create()
273273
.await?;
274274
let pkg1_v2_id = env
275-
.async_fake_release()
275+
.fake_release()
276276
.await
277277
.name("package-1")
278278
.version("2.0.0")
279279
.archive_storage(archive_storage)
280-
.create_async()
280+
.create()
281281
.await?;
282282
let pkg2_id = env
283-
.async_fake_release()
283+
.fake_release()
284284
.await
285285
.name("package-2")
286286
.archive_storage(archive_storage)
287-
.create_async()
287+
.create()
288288
.await?;
289289

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

408408
let mut conn = env.async_db().await.async_conn().await;
409409
let v1 = env
410-
.async_fake_release()
410+
.fake_release()
411411
.await
412412
.name("a")
413413
.version("1.0.0")
@@ -417,7 +417,7 @@ mod tests {
417417
avatar: "https://example.org/malicious".into(),
418418
kind: OwnerKind::User,
419419
})
420-
.create_async()
420+
.create()
421421
.await?;
422422
assert!(release_exists(&mut conn, v1).await?);
423423
assert!(
@@ -438,7 +438,7 @@ mod tests {
438438
);
439439

440440
let v2 = env
441-
.async_fake_release()
441+
.fake_release()
442442
.await
443443
.name("a")
444444
.version("2.0.0")
@@ -448,7 +448,7 @@ mod tests {
448448
avatar: "https://example.org/peter".into(),
449449
kind: OwnerKind::User,
450450
})
451-
.create_async()
451+
.create()
452452
.await?;
453453
assert!(release_exists(&mut conn, v2).await?);
454454
assert!(

src/test/fakes.rs

+2-14
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use chrono::{DateTime, Utc};
1818
use std::collections::HashMap;
1919
use std::iter;
2020
use std::sync::Arc;
21-
use tokio::runtime::Runtime;
2221
use tracing::debug;
2322

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

9189
impl<'a> FakeRelease<'a> {
92-
pub(super) fn new(
93-
db: &'a TestDatabase,
94-
storage: Arc<AsyncStorage>,
95-
runtime: Arc<Runtime>,
96-
) -> Self {
90+
pub(super) fn new(db: &'a TestDatabase, storage: Arc<AsyncStorage>) -> Self {
9791
FakeRelease {
9892
db,
9993
storage,
100-
runtime,
10194
package: MetadataPackage {
10295
id: "fake-package-id".into(),
10396
name: "fake-package".into(),
@@ -328,13 +321,8 @@ impl<'a> FakeRelease<'a> {
328321
self
329322
}
330323

331-
pub(crate) fn create(self) -> Result<ReleaseId> {
332-
let runtime = self.runtime.clone();
333-
runtime.block_on(self.create_async())
334-
}
335-
336324
/// Returns the release_id
337-
pub(crate) async fn create_async(self) -> Result<ReleaseId> {
325+
pub(crate) async fn create(self) -> Result<ReleaseId> {
338326
use std::fs;
339327
use std::path::Path;
340328

src/test/mod.rs

+2-10
Original file line numberDiff line numberDiff line change
@@ -601,23 +601,15 @@ impl TestEnvironment {
601601
.await
602602
}
603603

604-
pub(crate) fn fake_release(&self) -> fakes::FakeRelease {
605-
self.runtime().block_on(self.async_fake_release())
606-
}
607-
608604
pub(crate) async fn web_app(&self) -> Router {
609605
let template_data = Arc::new(TemplateData::new(1).unwrap());
610606
build_axum_app(self, template_data)
611607
.await
612608
.expect("could not build axum app")
613609
}
614610

615-
pub(crate) async fn async_fake_release(&self) -> fakes::FakeRelease {
616-
fakes::FakeRelease::new(
617-
self.async_db().await,
618-
self.async_storage().await,
619-
self.runtime(),
620-
)
611+
pub(crate) async fn fake_release(&self) -> fakes::FakeRelease {
612+
fakes::FakeRelease::new(self.async_db().await, self.async_storage().await)
621613
}
622614
}
623615

src/utils/consistency/db.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,18 @@ mod tests {
7171
.await
7272
.add_crate("queued", "0.0.1", 0, None)
7373
.await?;
74-
env.async_fake_release()
74+
env.fake_release()
7575
.await
7676
.name("krate")
7777
.version("0.0.2")
78-
.create_async()
78+
.create()
7979
.await?;
80-
env.async_fake_release()
80+
env.fake_release()
8181
.await
8282
.name("krate")
8383
.version("0.0.3")
8484
.yanked(true)
85-
.create_async()
85+
.create()
8686
.await?;
8787

8888
let mut conn = env.async_db().await.async_conn().await;

src/utils/consistency/mod.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -185,12 +185,12 @@ mod tests {
185185
#[test]
186186
fn test_delete_crate() {
187187
async_wrapper(|env| async move {
188-
env.async_fake_release()
188+
env.fake_release()
189189
.await
190190
.name("krate")
191191
.version("0.1.1")
192192
.version("0.1.2")
193-
.create_async()
193+
.create()
194194
.await?;
195195

196196
let diff = [Difference::CrateNotInIndex("krate".into())];
@@ -218,17 +218,17 @@ mod tests {
218218
#[test]
219219
fn test_delete_release() {
220220
async_wrapper(|env| async move {
221-
env.async_fake_release()
221+
env.fake_release()
222222
.await
223223
.name("krate")
224224
.version("0.1.1")
225-
.create_async()
225+
.create()
226226
.await?;
227-
env.async_fake_release()
227+
env.fake_release()
228228
.await
229229
.name("krate")
230230
.version("0.1.2")
231-
.create_async()
231+
.create()
232232
.await?;
233233

234234
let diff = [Difference::ReleaseNotInIndex(
@@ -256,12 +256,12 @@ mod tests {
256256
#[test]
257257
fn test_wrong_yank() {
258258
async_wrapper(|env| async move {
259-
env.async_fake_release()
259+
env.fake_release()
260260
.await
261261
.name("krate")
262262
.version("0.1.1")
263263
.yanked(true)
264-
.create_async()
264+
.create()
265265
.await?;
266266

267267
let diff = [Difference::ReleaseYank(

src/utils/html.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ mod test {
112112
#[test]
113113
fn rewriting_only_injects_css_once() {
114114
async_wrapper(|env| async move {
115-
env.async_fake_release().await
115+
env.fake_release().await
116116
.name("testing")
117117
.version("0.1.0")
118118
// A somewhat representative rustdoc html file from 2016
@@ -139,7 +139,7 @@ mod test {
139139
</head>
140140
</html>
141141
"#)
142-
.create_async().await?;
142+
.create().await?;
143143

144144
let web = env.web_app().await;
145145
let output = web.get("/testing/0.1.0/2016/").await?.text().await?;

0 commit comments

Comments
 (0)