rubygems-update 3.2.0 → 3.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{History.txt → CHANGELOG.md} +482 -457
- data/Manifest.txt +31 -27
- data/POLICIES.md +4 -3
- data/Rakefile +23 -18
- data/bundler/CHANGELOG.md +67 -20
- data/bundler/bundler.gemspec +1 -1
- data/bundler/lib/bundler.rb +8 -2
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +3 -6
- data/bundler/lib/bundler/cli/gem.rb +2 -0
- data/bundler/lib/bundler/cli/install.rb +14 -5
- data/bundler/lib/bundler/cli/outdated.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +5 -13
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +0 -8
- data/bundler/lib/bundler/definition.rb +24 -21
- data/bundler/lib/bundler/dependency.rb +3 -1
- data/bundler/lib/bundler/gem_helper.rb +3 -3
- data/bundler/lib/bundler/gem_helpers.rb +30 -24
- data/bundler/lib/bundler/lazy_specification.rb +16 -3
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5 +0 -0
- data/bundler/{man → lib/bundler/man}/index.txt +0 -0
- data/bundler/lib/bundler/resolver.rb +29 -27
- data/bundler/lib/bundler/resolver/spec_group.rb +19 -25
- data/bundler/lib/bundler/rubygems_integration.rb +0 -6
- data/bundler/lib/bundler/source/git.rb +18 -16
- data/bundler/lib/bundler/source/git/git_proxy.rb +54 -49
- data/bundler/lib/bundler/source/path/installer.rb +2 -0
- data/bundler/lib/bundler/source/rubygems.rb +10 -1
- data/bundler/lib/bundler/spec_set.rb +5 -8
- data/bundler/lib/bundler/stub_specification.rb +0 -2
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +3 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +8 -1
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +0 -1
- data/lib/rubygems/commands/push_command.rb +0 -1
- data/lib/rubygems/commands/setup_command.rb +16 -62
- data/lib/rubygems/commands/yank_command.rb +0 -1
- data/lib/rubygems/dependency_installer.rb +1 -0
- data/lib/rubygems/ext/builder.rb +3 -3
- data/lib/rubygems/ext/cmake_builder.rb +1 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -2
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gemcutter_utilities.rb +22 -17
- data/lib/rubygems/installer.rb +0 -23
- data/lib/rubygems/remote_fetcher.rb +4 -2
- data/lib/rubygems/request_set.rb +2 -13
- data/lib/rubygems/resolver.rb +6 -1
- data/lib/rubygems/resolver/api_set.rb +29 -20
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +4 -3
- data/lib/rubygems/resolver/best_set.rb +2 -2
- data/lib/rubygems/resolver/index_specification.rb +18 -0
- data/lib/rubygems/resolver/installer_set.rb +57 -7
- data/lib/rubygems/resolver/spec_specification.rb +14 -0
- data/lib/rubygems/resolver/specification.rb +12 -0
- data/lib/rubygems/server.rb +6 -1
- data/lib/rubygems/source.rb +11 -6
- data/lib/rubygems/specification.rb +18 -14
- data/lib/rubygems/test_case.rb +17 -4
- data/lib/rubygems/test_utilities.rb +6 -5
- data/rubygems-update.gemspec +2 -2
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/test_gem_commands_install_command.rb +131 -0
- data/test/rubygems/test_gem_commands_push_command.rb +41 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +21 -37
- data/test/rubygems/test_gem_dependency_installer.rb +27 -47
- data/test/rubygems/test_gem_ext_builder.rb +6 -6
- data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -4
- data/test/rubygems/test_gem_ext_configure_builder.rb +2 -2
- data/test/rubygems/test_gem_ext_rake_builder.rb +25 -0
- data/test/rubygems/test_gem_installer.rb +6 -60
- data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +54 -51
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -3
- data/test/rubygems/test_gem_resolver_best_set.rb +26 -3
- data/test/rubygems/test_gem_source.rb +2 -2
- data/test/rubygems/test_gem_source_subpath_problem.rb +2 -2
- data/test/rubygems/test_gem_specification.rb +9 -3
- data/test/test_changelog_generator.rb +17 -0
- metadata +38 -58
@@ -946,6 +946,31 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
946
946
|
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
|
947
947
|
end
|
948
948
|
|
949
|
+
def test_install_legacy_spec_with_nil_required_rubygems_version
|
950
|
+
path = File.expand_path "../data/null-required-rubygems-version.gemspec.rz", __FILE__
|
951
|
+
spec = Marshal.load Gem.read_binary(path)
|
952
|
+
def spec.validate(*args); end
|
953
|
+
|
954
|
+
util_build_gem spec
|
955
|
+
|
956
|
+
cache_file = File.join @tempdir, 'gems', "#{spec.original_name}.gem"
|
957
|
+
FileUtils.mkdir_p File.dirname cache_file
|
958
|
+
FileUtils.mv spec.cache_file, cache_file
|
959
|
+
|
960
|
+
util_setup_spec_fetcher spec
|
961
|
+
|
962
|
+
data = Gem.read_binary(cache_file)
|
963
|
+
|
964
|
+
@fetcher.data['http://gems.example.com/gems/activesupport-1.0.0.gem'] = data
|
965
|
+
|
966
|
+
dep = Gem::Dependency.new 'activesupport'
|
967
|
+
|
968
|
+
inst = Gem::DependencyInstaller.new
|
969
|
+
inst.install dep
|
970
|
+
|
971
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
972
|
+
end
|
973
|
+
|
949
974
|
def test_find_gems_gems_with_sources
|
950
975
|
util_setup_gems
|
951
976
|
|
@@ -1102,21 +1127,6 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1102
1127
|
assert_equal %w[a-1], requests
|
1103
1128
|
end
|
1104
1129
|
|
1105
|
-
def util_write_a1_bin
|
1106
|
-
write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
|
1107
|
-
fp.puts "#!/usr/bin/ruby"
|
1108
|
-
end
|
1109
|
-
end
|
1110
|
-
|
1111
|
-
def util_setup_c1_pre
|
1112
|
-
@c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
|
1113
|
-
s.add_dependency 'a', '1.a'
|
1114
|
-
s.add_dependency 'b', '1'
|
1115
|
-
end
|
1116
|
-
|
1117
|
-
util_reset_gems
|
1118
|
-
end
|
1119
|
-
|
1120
1130
|
def util_setup_d
|
1121
1131
|
@d1, @d1_gem = util_gem 'd', '1'
|
1122
1132
|
@d2, @d2_gem = util_gem 'd', '2'
|
@@ -1124,43 +1134,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1124
1134
|
util_reset_gems
|
1125
1135
|
end
|
1126
1136
|
|
1127
|
-
def util_setup_wxyz
|
1128
|
-
@x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
|
1129
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1130
|
-
end
|
1131
|
-
|
1132
|
-
@x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
|
1133
|
-
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
1134
|
-
end
|
1135
|
-
|
1136
|
-
@w1, @w1_gem = util_spec 'w', '1', 'x' => nil
|
1137
|
-
|
1138
|
-
@y1, @y1_gem = util_spec 'y', '1'
|
1139
|
-
@y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
|
1140
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1141
|
-
end
|
1142
|
-
|
1143
|
-
@z1, @z1_gem = util_spec 'z', '1', 'y' => nil
|
1144
|
-
|
1145
|
-
util_reset_gems
|
1146
|
-
end
|
1147
|
-
|
1148
1137
|
def util_reset_gems
|
1149
1138
|
@a1 ||= nil
|
1150
1139
|
@b1 ||= nil
|
1151
1140
|
@a1_pre ||= nil
|
1152
|
-
@c1_pre ||= nil
|
1153
1141
|
@d1 ||= nil
|
1154
1142
|
@d2 ||= nil
|
1155
|
-
|
1156
|
-
@
|
1157
|
-
@x1_o ||= nil
|
1158
|
-
@y1 ||= nil
|
1159
|
-
@y1_1_p ||= nil
|
1160
|
-
@z1 ||= nil
|
1161
|
-
|
1162
|
-
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre,
|
1163
|
-
@d1, @d2, @x1_m, @x1_o, @w1, @y1,
|
1164
|
-
@y1_1_p, @z1].compact)
|
1143
|
+
|
1144
|
+
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @d1, @d2].compact)
|
1165
1145
|
end
|
1166
1146
|
end
|
@@ -47,9 +47,9 @@ install:
|
|
47
47
|
|
48
48
|
results = results.join("\n").b
|
49
49
|
|
50
|
-
assert_match %r{
|
51
|
-
assert_match %r{
|
52
|
-
assert_match %r{
|
50
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} clean$}, results
|
51
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']}$}, results
|
52
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
|
53
53
|
|
54
54
|
if /nmake/ !~ results
|
55
55
|
assert_match %r{^clean: destination$}, results
|
@@ -76,9 +76,9 @@ install:
|
|
76
76
|
|
77
77
|
results = results.join("\n").b
|
78
78
|
|
79
|
-
assert_match %r{
|
80
|
-
assert_match %r{
|
81
|
-
assert_match %r{
|
79
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} clean$}, results
|
80
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']}$}, results
|
81
|
+
assert_match %r{DESTDIR\\=#{ENV['DESTDIR']} install$}, results
|
82
82
|
end
|
83
83
|
|
84
84
|
def test_build_extensions
|
@@ -40,8 +40,7 @@ install (FILES test.txt DESTINATION bin)
|
|
40
40
|
|
41
41
|
output = output.join "\n"
|
42
42
|
|
43
|
-
assert_match
|
44
|
-
%r{^cmake \. -DCMAKE_INSTALL_PREFIX=#{Regexp.escape @dest_path}}, output
|
43
|
+
assert_match %r{^cmake \. -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
|
45
44
|
assert_match %r{#{Regexp.escape @ext}}, output
|
46
45
|
assert_contains_make_command '', output
|
47
46
|
assert_contains_make_command 'install', output
|
@@ -58,11 +57,10 @@ install (FILES test.txt DESTINATION bin)
|
|
58
57
|
output = output.join "\n"
|
59
58
|
|
60
59
|
shell_error_msg = %r{(CMake Error: .*)}
|
61
|
-
sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
|
62
60
|
|
63
61
|
assert_match 'cmake failed', error.message
|
64
62
|
|
65
|
-
assert_match %r{
|
63
|
+
assert_match %r{^cmake . -DCMAKE_INSTALL_PREFIX\\=#{Regexp.escape @dest_path}}, output
|
66
64
|
assert_match %r{#{shell_error_msg}}, output
|
67
65
|
end
|
68
66
|
|
@@ -28,7 +28,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
28
28
|
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output, [], nil, @ext
|
29
29
|
|
30
30
|
assert_match(/^current directory:/, output.shift)
|
31
|
-
assert_equal "sh ./configure --prefix
|
31
|
+
assert_equal "sh ./configure --prefix\\=#{@dest_path}", output.shift
|
32
32
|
assert_equal "", output.shift
|
33
33
|
assert_match(/^current directory:/, output.shift)
|
34
34
|
assert_contains_make_command 'clean', output.shift
|
@@ -50,7 +50,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
50
50
|
end
|
51
51
|
|
52
52
|
shell_error_msg = %r{(\./configure: .*)|((?:[Cc]an't|cannot) open '?\./configure'?(?:: No such file or directory)?)}
|
53
|
-
sh_prefix_configure = "sh ./configure --prefix
|
53
|
+
sh_prefix_configure = "sh ./configure --prefix\\="
|
54
54
|
|
55
55
|
assert_match 'configure failed', error.message
|
56
56
|
|
@@ -47,6 +47,31 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
def test_class_no_openssl_override
|
51
|
+
create_temp_mkrf_file('task :default')
|
52
|
+
|
53
|
+
rake = util_spec 'rake' do |s|
|
54
|
+
s.executables = %w[rake]
|
55
|
+
s.files = %w[bin/rake]
|
56
|
+
end
|
57
|
+
|
58
|
+
output = []
|
59
|
+
|
60
|
+
write_file File.join(@tempdir, 'bin', 'rake') do |fp|
|
61
|
+
fp.puts "#!/usr/bin/ruby"
|
62
|
+
fp.puts "require 'openssl'; puts OpenSSL"
|
63
|
+
end
|
64
|
+
|
65
|
+
install_gem rake
|
66
|
+
|
67
|
+
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, [''], nil, @ext
|
68
|
+
|
69
|
+
output = output.join "\n"
|
70
|
+
|
71
|
+
assert_match "OpenSSL", output
|
72
|
+
assert_match %r{^#{Regexp.escape Gem.ruby} mkrf_conf\.rb}, output
|
73
|
+
end
|
74
|
+
|
50
75
|
def test_class_build_no_mkrf_passes_args
|
51
76
|
output = []
|
52
77
|
|
@@ -1172,12 +1172,16 @@ gem 'other', version
|
|
1172
1172
|
end
|
1173
1173
|
|
1174
1174
|
def test_install_force
|
1175
|
+
_, missing_dep_gem = util_gem 'missing_dep', '1' do |s|
|
1176
|
+
s.add_dependency 'doesnt_exist', '1'
|
1177
|
+
end
|
1178
|
+
|
1175
1179
|
use_ui @ui do
|
1176
|
-
installer = Gem::Installer.at
|
1180
|
+
installer = Gem::Installer.at missing_dep_gem, :force => true
|
1177
1181
|
installer.install
|
1178
1182
|
end
|
1179
1183
|
|
1180
|
-
gem_dir = File.join(@gemhome, 'gems', '
|
1184
|
+
gem_dir = File.join(@gemhome, 'gems', 'missing_dep-1')
|
1181
1185
|
assert_path_exists gem_dir
|
1182
1186
|
end
|
1183
1187
|
|
@@ -1620,54 +1624,6 @@ gem 'other', version
|
|
1620
1624
|
end
|
1621
1625
|
end
|
1622
1626
|
|
1623
|
-
def test_pre_install_checks_ruby_version
|
1624
|
-
use_ui @ui do
|
1625
|
-
installer = Gem::Installer.at old_ruby_required('= 1.4.6')
|
1626
|
-
e = assert_raises Gem::RuntimeRequirementNotMetError do
|
1627
|
-
installer.pre_install_checks
|
1628
|
-
end
|
1629
|
-
rv = Gem.ruby_version
|
1630
|
-
assert_equal "old_ruby_required requires Ruby version = 1.4.6. The current ruby version is #{rv}.",
|
1631
|
-
e.message
|
1632
|
-
end
|
1633
|
-
end
|
1634
|
-
|
1635
|
-
def test_pre_install_checks_ruby_version_with_prereleases
|
1636
|
-
util_set_RUBY_VERSION '2.6.0', -1, '63539', 'ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-linux]'
|
1637
|
-
|
1638
|
-
installer = Gem::Installer.at old_ruby_required('>= 2.6.0.preview2')
|
1639
|
-
assert installer.pre_install_checks
|
1640
|
-
|
1641
|
-
installer = Gem::Installer.at old_ruby_required('> 2.6.0.preview2')
|
1642
|
-
e = assert_raises Gem::RuntimeRequirementNotMetError do
|
1643
|
-
assert installer.pre_install_checks
|
1644
|
-
end
|
1645
|
-
assert_equal "old_ruby_required requires Ruby version > 2.6.0.preview2. The current ruby version is 2.6.0.preview2.",
|
1646
|
-
e.message
|
1647
|
-
ensure
|
1648
|
-
util_restore_RUBY_VERSION
|
1649
|
-
end
|
1650
|
-
|
1651
|
-
def test_pre_install_checks_wrong_rubygems_version
|
1652
|
-
spec = util_spec 'old_rubygems_required', '1' do |s|
|
1653
|
-
s.required_rubygems_version = '< 0'
|
1654
|
-
end
|
1655
|
-
|
1656
|
-
util_build_gem spec
|
1657
|
-
|
1658
|
-
gem = File.join(@gemhome, 'cache', spec.file_name)
|
1659
|
-
|
1660
|
-
use_ui @ui do
|
1661
|
-
installer = Gem::Installer.at gem
|
1662
|
-
e = assert_raises Gem::RuntimeRequirementNotMetError do
|
1663
|
-
installer.pre_install_checks
|
1664
|
-
end
|
1665
|
-
rgv = Gem::VERSION
|
1666
|
-
assert_equal "old_rubygems_required requires RubyGems version < 0. The current RubyGems version is #{rgv}. " +
|
1667
|
-
"Try 'gem update --system' to update RubyGems itself.", e.message
|
1668
|
-
end
|
1669
|
-
end
|
1670
|
-
|
1671
1627
|
def test_pre_install_checks_malicious_name
|
1672
1628
|
spec = util_spec '../malicious', '1'
|
1673
1629
|
def spec.full_name # so the spec is buildable
|
@@ -2252,16 +2208,6 @@ gem 'other', version
|
|
2252
2208
|
assert_kind_of(String, installer.gem)
|
2253
2209
|
end
|
2254
2210
|
|
2255
|
-
def old_ruby_required(requirement)
|
2256
|
-
spec = util_spec 'old_ruby_required', '1' do |s|
|
2257
|
-
s.required_ruby_version = requirement
|
2258
|
-
end
|
2259
|
-
|
2260
|
-
util_build_gem spec
|
2261
|
-
|
2262
|
-
spec.cache_file
|
2263
|
-
end
|
2264
|
-
|
2265
2211
|
def util_execless
|
2266
2212
|
@spec = util_spec 'z'
|
2267
2213
|
util_build_gem @spec
|
@@ -6,29 +6,29 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
6
6
|
super
|
7
7
|
|
8
8
|
@DR = Gem::Resolver
|
9
|
-
@dep_uri = URI "#{@gem_repo}
|
9
|
+
@dep_uri = URI "#{@gem_repo}info/"
|
10
10
|
end
|
11
11
|
|
12
12
|
def test_initialize
|
13
13
|
set = @DR::APISet.new
|
14
14
|
|
15
|
-
assert_equal URI('https://rubygems.org/
|
16
|
-
assert_equal URI('https://rubygems.org'),
|
17
|
-
assert_equal Gem::Source.new(URI('https://rubygems.org')),
|
15
|
+
assert_equal URI('https://index.rubygems.org/info/'), set.dep_uri
|
16
|
+
assert_equal URI('https://index.rubygems.org/'), set.uri
|
17
|
+
assert_equal Gem::Source.new(URI('https://index.rubygems.org')), set.source
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_initialize_deeper_uri
|
21
|
-
set = @DR::APISet.new 'https://rubygemsserver.com/mygems/
|
21
|
+
set = @DR::APISet.new 'https://rubygemsserver.com/mygems/info'
|
22
22
|
|
23
|
-
assert_equal URI('https://rubygemsserver.com/mygems/
|
24
|
-
assert_equal URI('https://rubygemsserver.com/
|
25
|
-
assert_equal Gem::Source.new(URI('https://rubygemsserver.com/
|
23
|
+
assert_equal URI('https://rubygemsserver.com/mygems/info'), set.dep_uri
|
24
|
+
assert_equal URI('https://rubygemsserver.com/'), set.uri
|
25
|
+
assert_equal Gem::Source.new(URI('https://rubygemsserver.com/')), set.source
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_initialize_uri
|
29
29
|
set = @DR::APISet.new @dep_uri
|
30
30
|
|
31
|
-
assert_equal URI("#{@gem_repo}
|
31
|
+
assert_equal URI("#{@gem_repo}info/"), set.dep_uri
|
32
32
|
assert_equal URI("#{@gem_repo}"), set.uri
|
33
33
|
end
|
34
34
|
|
@@ -42,7 +42,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
42
42
|
:dependencies => [] },
|
43
43
|
]
|
44
44
|
|
45
|
-
@fetcher.data["#{@dep_uri}
|
45
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 "
|
46
46
|
|
47
47
|
set = @DR::APISet.new @dep_uri
|
48
48
|
|
@@ -55,6 +55,35 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
55
55
|
assert_equal expected, set.find_all(a_dep)
|
56
56
|
end
|
57
57
|
|
58
|
+
def test_find_all_prereleases
|
59
|
+
spec_fetcher
|
60
|
+
|
61
|
+
data = [
|
62
|
+
{ :name => 'a',
|
63
|
+
:number => '1',
|
64
|
+
:platform => 'ruby',
|
65
|
+
:dependencies => [] },
|
66
|
+
{ :name => 'a',
|
67
|
+
:number => '2.a',
|
68
|
+
:platform => 'ruby',
|
69
|
+
:dependencies => [] },
|
70
|
+
]
|
71
|
+
|
72
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1\n2.a"
|
73
|
+
|
74
|
+
set = @DR::APISet.new @dep_uri
|
75
|
+
set.prerelease = true
|
76
|
+
|
77
|
+
a_dep = @DR::DependencyRequest.new dep('a'), nil
|
78
|
+
|
79
|
+
expected = [
|
80
|
+
@DR::APISpecification.new(set, data.first),
|
81
|
+
@DR::APISpecification.new(set, data.last),
|
82
|
+
]
|
83
|
+
|
84
|
+
assert_equal expected, set.find_all(a_dep)
|
85
|
+
end
|
86
|
+
|
58
87
|
def test_find_all_cache
|
59
88
|
spec_fetcher
|
60
89
|
|
@@ -65,7 +94,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
65
94
|
:dependencies => [] },
|
66
95
|
]
|
67
96
|
|
68
|
-
@fetcher.data["#{@dep_uri}
|
97
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 "
|
69
98
|
|
70
99
|
set = @DR::APISet.new @dep_uri
|
71
100
|
|
@@ -79,7 +108,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
79
108
|
|
80
109
|
assert_equal expected, set.find_all(a_dep)
|
81
110
|
|
82
|
-
@fetcher.data.delete "#{@dep_uri}
|
111
|
+
@fetcher.data.delete "#{@dep_uri}a"
|
83
112
|
end
|
84
113
|
|
85
114
|
def test_find_all_local
|
@@ -94,7 +123,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
94
123
|
def test_find_all_missing
|
95
124
|
spec_fetcher
|
96
125
|
|
97
|
-
@fetcher.data["#{@dep_uri}
|
126
|
+
@fetcher.data["#{@dep_uri}a"] = "---"
|
98
127
|
|
99
128
|
set = @DR::APISet.new @dep_uri
|
100
129
|
|
@@ -102,7 +131,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
102
131
|
|
103
132
|
assert_empty set.find_all(a_dep)
|
104
133
|
|
105
|
-
@fetcher.data.delete "#{@dep_uri}
|
134
|
+
@fetcher.data.delete "#{@dep_uri}a"
|
106
135
|
|
107
136
|
assert_empty set.find_all(a_dep)
|
108
137
|
end
|
@@ -110,15 +139,8 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
110
139
|
def test_prefetch
|
111
140
|
spec_fetcher
|
112
141
|
|
113
|
-
data =
|
114
|
-
|
115
|
-
:number => '1',
|
116
|
-
:platform => 'ruby',
|
117
|
-
:dependencies => [] },
|
118
|
-
]
|
119
|
-
|
120
|
-
@fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
|
121
|
-
@fetcher.data["#{@dep_uri}?gems=b"] = Marshal.dump []
|
142
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
|
143
|
+
@fetcher.data["#{@dep_uri}b"] = "---"
|
122
144
|
|
123
145
|
set = @DR::APISet.new @dep_uri
|
124
146
|
|
@@ -134,14 +156,7 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
134
156
|
def test_prefetch_cache
|
135
157
|
spec_fetcher
|
136
158
|
|
137
|
-
data =
|
138
|
-
{ :name => 'a',
|
139
|
-
:number => '1',
|
140
|
-
:platform => 'ruby',
|
141
|
-
:dependencies => [] },
|
142
|
-
]
|
143
|
-
|
144
|
-
@fetcher.data["#{@dep_uri}?gems=a"] = Marshal.dump data
|
159
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
|
145
160
|
|
146
161
|
set = @DR::APISet.new @dep_uri
|
147
162
|
|
@@ -150,8 +165,8 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
150
165
|
|
151
166
|
set.prefetch [a_dep]
|
152
167
|
|
153
|
-
@fetcher.data.delete "#{@dep_uri}
|
154
|
-
@fetcher.data["#{@dep_uri}?
|
168
|
+
@fetcher.data.delete "#{@dep_uri}a"
|
169
|
+
@fetcher.data["#{@dep_uri}?b"] = "---"
|
155
170
|
|
156
171
|
set.prefetch [a_dep, b_dep]
|
157
172
|
end
|
@@ -159,14 +174,8 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
159
174
|
def test_prefetch_cache_missing
|
160
175
|
spec_fetcher
|
161
176
|
|
162
|
-
data =
|
163
|
-
|
164
|
-
:number => '1',
|
165
|
-
:platform => 'ruby',
|
166
|
-
:dependencies => [] },
|
167
|
-
]
|
168
|
-
|
169
|
-
@fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
|
177
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
|
178
|
+
@fetcher.data["#{@dep_uri}b"] = "---"
|
170
179
|
|
171
180
|
set = @DR::APISet.new @dep_uri
|
172
181
|
|
@@ -175,7 +184,8 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
175
184
|
|
176
185
|
set.prefetch [a_dep, b_dep]
|
177
186
|
|
178
|
-
@fetcher.data.delete "#{@dep_uri}
|
187
|
+
@fetcher.data.delete "#{@dep_uri}a"
|
188
|
+
@fetcher.data.delete "#{@dep_uri}b"
|
179
189
|
|
180
190
|
set.prefetch [a_dep, b_dep]
|
181
191
|
end
|
@@ -183,15 +193,8 @@ class TestGemResolverAPISet < Gem::TestCase
|
|
183
193
|
def test_prefetch_local
|
184
194
|
spec_fetcher
|
185
195
|
|
186
|
-
data =
|
187
|
-
|
188
|
-
:number => '1',
|
189
|
-
:platform => 'ruby',
|
190
|
-
:dependencies => [] },
|
191
|
-
]
|
192
|
-
|
193
|
-
@fetcher.data["#{@dep_uri}?gems=a,b"] = Marshal.dump data
|
194
|
-
@fetcher.data["#{@dep_uri}?gems=b"] = Marshal.dump []
|
196
|
+
@fetcher.data["#{@dep_uri}a"] = "---\n1 \n"
|
197
|
+
@fetcher.data["#{@dep_uri}b"] = "---"
|
195
198
|
|
196
199
|
set = @DR::APISet.new @dep_uri
|
197
200
|
set.remote = false
|