Add verification that an crate has been published to the correct location.
authorChris Swindle <christopher.swindle@metaswitch.com>
Tue, 31 Oct 2017 22:11:02 +0000 (22:11 +0000)
committerChris Swindle <christopher.swindle@metaswitch.com>
Tue, 31 Oct 2017 22:11:02 +0000 (22:11 +0000)
tests/alt-registry.rs
tests/cargotest/support/registry.rs

index 3614d5140460e10684f11bab64de54a0c5fe03b1..42770296ea089409a5af83860ed24cf2f366af23 100644 (file)
@@ -2,7 +2,7 @@ extern crate cargotest;
 extern crate hamcrest;
 
 use cargotest::ChannelChanger;
-use cargotest::support::registry::{self, Package};
+use cargotest::support::registry::{self, Package, alt_dl_path};
 use cargotest::support::{project, execs};
 use hamcrest::assert_that;
 
@@ -308,4 +308,7 @@ fn publish_to_alt_registry() {
     assert_that(p.cargo("publish").masquerade_as_nightly_cargo()
                  .arg("--registry").arg("alternative").arg("-Zunstable-options"),
                 execs().with_status(0));
+
+    // Ensure that the crate is uploaded
+    assert!(alt_dl_path().join("api/v1/crates/new").exists());
 }
index 16b41f8e16c1fc033cacf6af214d213489978c29..010552607e5b6f637d0215e1d71778669122d64a 100644 (file)
@@ -20,6 +20,8 @@ pub fn dl_path() -> PathBuf { paths::root().join("dl") }
 pub fn dl_url() -> Url { Url::from_file_path(&*dl_path()).ok().unwrap() }
 pub fn alt_registry_path() -> PathBuf { paths::root().join("alternative-registry") }
 pub fn alt_registry() -> Url { Url::from_file_path(&*alt_registry_path()).ok().unwrap() }
+pub fn alt_dl_path() -> PathBuf { paths::root().join("alt_dl") }
+pub fn alt_dl_url() -> Url { Url::from_file_path(&*alt_dl_path()).ok().unwrap() }
 
 pub struct Package {
     name: String,
@@ -75,9 +77,9 @@ pub fn init() {
     repo(&alt_registry_path())
         .file("config.json", &format!(r#"
             {{"dl":"{0}","api":"{0}"}}
-        "#, dl_url()))
+        "#, alt_dl_url()))
         .build();
-    fs::create_dir_all(dl_path().join("api/v1/crates")).unwrap();
+    fs::create_dir_all(alt_dl_path().join("api/v1/crates")).unwrap();
 }
 
 impl Package {
@@ -299,7 +301,8 @@ impl Package {
             registry_path().join(format!("{}-{}.crate", self.name,
                                          self.vers))
         } else {
-            dl_path().join(&self.name).join(&self.vers).join("download")
+            let dl_path = if self.alternative { alt_dl_path() } else { dl_path() };
+            dl_path.join(&self.name).join(&self.vers).join("download")
         }
     }
 }