[rubygems/rubygems] Don't list duplicated version in Gem::Specification.reset
warning
https://github.com/rubygems/rubygems/commit/e6e3db821f
This commit is contained in:
parent
1b6c234fec
commit
73d60df6e0
@ -1208,7 +1208,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|||||||
unresolved.values.each do |dep|
|
unresolved.values.each do |dep|
|
||||||
warn " #{dep}"
|
warn " #{dep}"
|
||||||
|
|
||||||
versions = find_all_by_name(dep.name)
|
versions = find_all_by_name(dep.name).uniq(&:full_name)
|
||||||
unless versions.empty?
|
unless versions.empty?
|
||||||
warn " Available/installed versions of this gem:"
|
warn " Available/installed versions of this gem:"
|
||||||
versions.each {|s| warn " - #{s.version}" }
|
versions.each {|s| warn " - #{s.version}" }
|
||||||
|
@ -3087,6 +3087,40 @@ Please report a bug if this causes problems.
|
|||||||
assert_equal(expected, actual_stderr)
|
assert_equal(expected, actual_stderr)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_unresolved_specs_with_duplicated_versions
|
||||||
|
specification = Gem::Specification.clone
|
||||||
|
|
||||||
|
set_orig specification
|
||||||
|
|
||||||
|
specification.define_singleton_method(:unresolved_deps) do
|
||||||
|
{ b: Gem::Dependency.new("x","1") }
|
||||||
|
end
|
||||||
|
|
||||||
|
specification.define_singleton_method(:find_all_by_name) do |_dep_name|
|
||||||
|
[
|
||||||
|
specification.new {|s| s.name = "z", s.version = Gem::Version.new("1") }, # default copy
|
||||||
|
specification.new {|s| s.name = "z", s.version = Gem::Version.new("1") }, # regular copy
|
||||||
|
specification.new {|s| s.name = "z", s.version = Gem::Version.new("2") }, # regular copy
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
expected = <<-EXPECTED
|
||||||
|
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
|
||||||
|
x (= 1)
|
||||||
|
Available/installed versions of this gem:
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
|
||||||
|
Please report a bug if this causes problems.
|
||||||
|
EXPECTED
|
||||||
|
|
||||||
|
actual_stdout, actual_stderr = capture_output do
|
||||||
|
specification.reset
|
||||||
|
end
|
||||||
|
assert_empty actual_stdout
|
||||||
|
assert_equal(expected, actual_stderr)
|
||||||
|
end
|
||||||
|
|
||||||
def test_duplicate_runtime_dependency
|
def test_duplicate_runtime_dependency
|
||||||
expected = "WARNING: duplicated b dependency [\"~> 3.0\", \"~> 3.0\"]\n"
|
expected = "WARNING: duplicated b dependency [\"~> 3.0\", \"~> 3.0\"]\n"
|
||||||
out, err = capture_output do
|
out, err = capture_output do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user