From 93c0d7ca2f7a7da659951c8253e0a527e0496250 Mon Sep 17 00:00:00 2001 From: Chris Swindle Date: Mon, 6 Nov 2017 20:37:40 +0000 Subject: [PATCH] Code review markups. --- src/cargo/ops/registry.rs | 2 +- src/cargo/util/toml/mod.rs | 2 +- tests/alt-registry.rs | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/cargo/ops/registry.rs b/src/cargo/ops/registry.rs index 4f841d06f..eef46da9e 100644 --- a/src/cargo/ops/registry.rs +++ b/src/cargo/ops/registry.rs @@ -96,7 +96,7 @@ fn verify_dependencies(pkg: &Package, registry_src: &SourceId) bail!("crates cannot be published to crates.io with dependencies sourced from other\n\ registries either publish `{}` on crates.io or pull it into this repository\n\ and specify it with a path and version\n\ - (crate `{}` is pulled from {}", dep.name(), dep.name(), dep.source_id()); + (crate `{}` is pulled from {})", dep.name(), dep.name(), dep.source_id()); } } else { bail!("crates cannot be published to crates.io with dependencies sourced from \ diff --git a/src/cargo/util/toml/mod.rs b/src/cargo/util/toml/mod.rs index 21fb27de9..a2b33bfb1 100644 --- a/src/cargo/util/toml/mod.rs +++ b/src/cargo/util/toml/mod.rs @@ -701,7 +701,7 @@ impl TomlManifest { Some(vecstring.clone()) }, Some(VecStringOrBool::Bool(false)) => Some(vec![]), - _ => None, + None | Some(VecStringOrBool::Bool(true)) => None, }; let mut manifest = Manifest::new(summary, targets, diff --git a/tests/alt-registry.rs b/tests/alt-registry.rs index 45ef21535..52e1842c4 100644 --- a/tests/alt-registry.rs +++ b/tests/alt-registry.rs @@ -192,6 +192,29 @@ fn registry_incompatible_with_git() { .with_stderr_contains(" dependency (bar) specification is ambiguous. Only one of `git` or `registry` is allowed.")); } +#[test] +fn cannot_publish_to_crates_io_with_registry_dependency() { + let p = project("foo") + .file("Cargo.toml", r#" + cargo-features = ["alternative-registries"] + [project] + name = "foo" + version = "0.0.1" + authors = [] + [dependencies.bar] + version = "0.0.1" + registry = "alternative" + "#) + .file("src/main.rs", "fn main() {}") + .build(); + + Package::new("bar", "0.0.1").alternative(true).publish(); + + assert_that(p.cargo("publish").masquerade_as_nightly_cargo() + .arg("--index").arg(registry::registry().to_string()), + execs().with_status(101)); +} + #[test] fn publish_with_registry_dependency() { let p = project("foo") -- 2.30.2