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;
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());
}
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,
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 {
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")
}
}
}