rubygems-update 3.0.4 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -0
  3. data/History.txt +85 -0
  4. data/Manifest.txt +5 -3
  5. data/Rakefile +8 -6
  6. data/bundler/lib/bundler/build_metadata.rb +2 -2
  7. data/lib/rubygems.rb +6 -12
  8. data/lib/rubygems/commands/push_command.rb +2 -0
  9. data/lib/rubygems/commands/setup_command.rb +9 -11
  10. data/lib/rubygems/commands/uninstall_command.rb +16 -6
  11. data/lib/rubygems/commands/which_command.rb +1 -3
  12. data/lib/rubygems/defaults.rb +1 -8
  13. data/lib/rubygems/dependency.rb +1 -1
  14. data/lib/rubygems/dependency_installer.rb +1 -2
  15. data/lib/rubygems/exceptions.rb +0 -4
  16. data/lib/rubygems/gemcutter_utilities.rb +9 -5
  17. data/lib/rubygems/installer.rb +8 -5
  18. data/lib/rubygems/installer_test_case.rb +2 -2
  19. data/lib/rubygems/package/tar_header.rb +11 -2
  20. data/lib/rubygems/remote_fetcher.rb +15 -54
  21. data/lib/rubygems/request.rb +1 -1
  22. data/lib/rubygems/request_set/gem_dependency_api.rb +3 -5
  23. data/lib/rubygems/resolver.rb +4 -1
  24. data/lib/rubygems/s3_uri_signer.rb +183 -0
  25. data/lib/rubygems/security_option.rb +0 -1
  26. data/lib/rubygems/specification.rb +13 -14
  27. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  28. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  29. data/lib/rubygems/stub_specification.rb +1 -2
  30. data/lib/rubygems/test_case.rb +8 -4
  31. data/lib/rubygems/util.rb +12 -0
  32. data/rubygems-update.gemspec +1 -1
  33. data/test/rubygems/test_bundled_ca.rb +7 -4
  34. data/test/rubygems/test_gem.rb +40 -3
  35. data/test/rubygems/test_gem_commands_push_command.rb +15 -0
  36. data/test/rubygems/test_gem_commands_setup_command.rb +11 -7
  37. data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -1
  38. data/test/rubygems/test_gem_indexer.rb +8 -8
  39. data/test/rubygems/test_gem_installer.rb +78 -19
  40. data/test/rubygems/test_gem_package_tar_header.rb +41 -0
  41. data/test/rubygems/test_gem_remote_fetcher.rb +133 -14
  42. data/test/rubygems/test_gem_request.rb +4 -4
  43. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +20 -30
  44. data/test/rubygems/test_gem_specification.rb +29 -0
  45. data/test/rubygems/test_gem_util.rb +8 -0
  46. data/util/cops/deprecations.rb +52 -0
  47. data/util/create_certs.sh +27 -0
  48. data/util/update_bundled_ca_certificates.rb +1 -3
  49. metadata +12 -9
  50. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  51. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -2284,7 +2284,6 @@ class Gem::Specification < Gem::BasicSpecification
2284
2284
 
2285
2285
  e = Gem::LoadError.new msg
2286
2286
  e.name = self.name
2287
- # TODO: e.requirement = dep.requirement
2288
2287
 
2289
2288
  raise e
2290
2289
  end
@@ -2349,18 +2348,18 @@ class Gem::Specification < Gem::BasicSpecification
2349
2348
 
2350
2349
  def ruby_code(obj)
2351
2350
  case obj
2352
- when String then obj.dump + ".freeze"
2353
- when Array then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
2354
- when Hash then
2351
+ when String then obj.dump + ".freeze"
2352
+ when Array then '[' + obj.map { |x| ruby_code x }.join(", ") + ']'
2353
+ when Hash then
2355
2354
  seg = obj.keys.sort.map { |k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
2356
2355
  "{ #{seg.join(', ')} }"
2357
- when Gem::Version then obj.to_s.dump
2358
- when DateLike then obj.strftime('%Y-%m-%d').dump
2359
- when Time then obj.strftime('%Y-%m-%d').dump
2360
- when Numeric then obj.inspect
2361
- when true, false, nil then obj.inspect
2362
- when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})"
2363
- when Gem::Requirement then
2356
+ when Gem::Version then obj.to_s.dump
2357
+ when DateLike then obj.strftime('%Y-%m-%d').dump
2358
+ when Time then obj.strftime('%Y-%m-%d').dump
2359
+ when Numeric then obj.inspect
2360
+ when true, false, nil then obj.inspect
2361
+ when Gem::Platform then "Gem::Platform.new(#{obj.to_a.inspect})"
2362
+ when Gem::Requirement then
2364
2363
  list = obj.as_list
2365
2364
  "Gem::Requirement.new(#{ruby_code(list.size == 1 ? obj.to_s : list)})"
2366
2365
  else raise Gem::Exception, "ruby_code case not handled: #{obj.class}"
@@ -2479,6 +2478,7 @@ class Gem::Specification < Gem::BasicSpecification
2479
2478
  # still have their default values are omitted.
2480
2479
 
2481
2480
  def to_ruby
2481
+ require 'openssl'
2482
2482
  mark_version
2483
2483
  result = []
2484
2484
  result << "# -*- encoding: utf-8 -*-"
@@ -2517,9 +2517,8 @@ class Gem::Specification < Gem::BasicSpecification
2517
2517
  @@attributes.each do |attr_name|
2518
2518
  next if handled.include? attr_name
2519
2519
  current_value = self.send(attr_name)
2520
- if current_value != default_value(attr_name) or
2521
- self.class.required_attribute? attr_name
2522
- result << " s.#{attr_name} = #{ruby_code current_value}"
2520
+ if current_value != default_value(attr_name) || self.class.required_attribute?(attr_name)
2521
+ result << " s.#{attr_name} = #{ruby_code current_value}" unless current_value.is_a?(OpenSSL::PKey::RSA)
2523
2522
  end
2524
2523
  end
2525
2524
 
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
3
+ A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
4
+ Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
5
+ MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
6
+ A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
7
+ hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
8
+ RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
9
+ gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
10
+ KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
11
+ QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
12
+ XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
13
+ DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
14
+ LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
15
+ RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
16
+ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
17
+ 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
18
+ mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
19
+ Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
20
+ WD9f
21
+ -----END CERTIFICATE-----
@@ -110,8 +110,7 @@ class Gem::StubSpecification < Gem::BasicSpecification
110
110
  begin
111
111
  saved_lineno = $.
112
112
 
113
- # TODO It should be use `File.open`, but bundler-1.16.1 example expects Kernel#open.
114
- open loaded_from, OPEN_MODE do |file|
113
+ File.open loaded_from, OPEN_MODE do |file|
115
114
  begin
116
115
  file.readline # discard encoding line
117
116
  stubline = file.readline.chomp
@@ -140,6 +140,12 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
140
140
  assert File.exist?(path), msg
141
141
  end
142
142
 
143
+ def assert_directory_exists(path, msg = nil)
144
+ msg = message(msg) { "Expected path '#{path}' to be a directory" }
145
+ assert_path_exists path
146
+ assert File.directory?(path), msg
147
+ end
148
+
143
149
  ##
144
150
  # Sets the ENABLE_SHARED entry in RbConfig::CONFIG to +value+ and restores
145
151
  # the original value when the block ends
@@ -256,6 +262,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
256
262
  @orig_gem_env_requirements = ENV.to_hash
257
263
 
258
264
  ENV['GEM_VENDOR'] = nil
265
+ ENV['GEMRC'] = nil
259
266
  ENV['SOURCE_DATE_EPOCH'] = nil
260
267
 
261
268
  @current_dir = Dir.pwd
@@ -746,7 +753,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
746
753
  # Removes all installed gems from +@gemhome+.
747
754
 
748
755
  def util_clear_gems
749
- FileUtils.rm_rf File.join(@gemhome, "gems") # TODO: use Gem::Dirs
756
+ FileUtils.rm_rf File.join(@gemhome, "gems")
750
757
  FileUtils.mkdir File.join(@gemhome, "gems")
751
758
  FileUtils.rm_rf File.join(@gemhome, "specifications")
752
759
  FileUtils.mkdir File.join(@gemhome, "specifications")
@@ -931,9 +938,6 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
931
938
  # location are returned.
932
939
 
933
940
  def util_gem(name, version, deps = nil, &block)
934
- # TODO: deprecate
935
- raise "deps or block, not both" if deps and block
936
-
937
941
  if deps
938
942
  block = proc do |s|
939
943
  # Since Hash#each is unordered in 1.8, sort
@@ -128,4 +128,16 @@ module Gem::Util
128
128
  end
129
129
  end
130
130
 
131
+ ##
132
+ # Corrects +path+ (usually returned by `URI.parse().path` on Windows), that
133
+ # comes with a leading slash.
134
+
135
+ def self.correct_for_windows_path(path)
136
+ if path[0].chr == '/' && path[1].chr =~ /[a-z]/i && path[2].chr == ':'
137
+ path[1..-1]
138
+ else
139
+ path
140
+ end
141
+ end
142
+
131
143
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.0.4"
5
+ s.version = "3.0.9"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -51,13 +51,16 @@ if ENV["CI"] || ENV["TEST_SSL"]
51
51
  assert_https('rubygems.org')
52
52
  end
53
53
 
54
- def test_accessing_fastly
55
- assert_https('rubygems.global.ssl.fastly.net')
54
+ def test_accessing_www_rubygems
55
+ assert_https('www.rubygems.org')
56
56
  end
57
57
 
58
- def test_accessing_new_index
59
- assert_https('fastly.rubygems.org')
58
+ def test_accessing_staging
59
+ assert_https('staging.rubygems.org')
60
60
  end
61
61
 
62
+ def test_accessing_new_index
63
+ assert_https('index.rubygems.org')
64
+ end
62
65
  end
63
66
  end
@@ -156,7 +156,7 @@ class TestGem < Gem::TestCase
156
156
  end
157
157
 
158
158
  def assert_self_install_permissions
159
- mask = /mingw|mswin/ =~ RUBY_PLATFORM ? 0700 : 0777
159
+ mask = win_platform? ? 0700 : 0777
160
160
  options = {
161
161
  :dir_mode => 0500,
162
162
  :prog_mode => 0510,
@@ -195,6 +195,9 @@ class TestGem < Gem::TestCase
195
195
  'gems/foo-1/bin/foo.cmd' => prog_mode,
196
196
  'gems/foo-1/data/foo.txt' => data_mode,
197
197
  }
198
+ # below is for intermittent errors on Appveyor & Travis 2019-01,
199
+ # see https://github.com/rubygems/rubygems/pull/2568
200
+ sleep 0.2
198
201
  result = {}
199
202
  Dir.chdir @gemhome do
200
203
  expected.each_key do |n|
@@ -320,6 +323,40 @@ class TestGem < Gem::TestCase
320
323
  refute_includes e.message, "can't find gem bundler (>= 0.a) with executable bundle"
321
324
  end
322
325
 
326
+ def test_activate_bin_path_respects_underscore_selection_if_given
327
+ bundler_latest = util_spec 'bundler', '2.0.1' do |s|
328
+ s.executables = ['bundle']
329
+ end
330
+
331
+ bundler_previous = util_spec 'bundler', '1.17.3' do |s|
332
+ s.executables = ['bundle']
333
+ end
334
+
335
+ install_specs bundler_latest, bundler_previous
336
+
337
+ File.open("Gemfile.lock", "w") do |f|
338
+ f.write <<-L.gsub(/ {8}/, "")
339
+ GEM
340
+ remote: https://rubygems.org/
341
+ specs:
342
+
343
+ PLATFORMS
344
+ ruby
345
+
346
+ DEPENDENCIES
347
+
348
+ BUNDLED WITH
349
+ 2.0.1
350
+ L
351
+ end
352
+
353
+ File.open("Gemfile", "w") { |f| f.puts('source "https://rubygems.org"') }
354
+
355
+ load Gem.activate_bin_path("bundler", "bundle", "= 1.17.3")
356
+
357
+ assert_equal %w(bundler-1.17.3), loaded_spec_names
358
+ end
359
+
323
360
  def test_self_bin_path_no_exec_name
324
361
  e = assert_raises ArgumentError do
325
362
  Gem.bin_path 'a'
@@ -541,7 +578,7 @@ class TestGem < Gem::TestCase
541
578
 
542
579
  Gem.ensure_gem_subdirectories @gemhome, 0750
543
580
 
544
- assert File.directory? File.join(@gemhome, "cache")
581
+ assert_directory_exists File.join(@gemhome, "cache")
545
582
 
546
583
  assert_equal 0750, File::Stat.new(@gemhome).mode & 0777
547
584
  assert_equal 0750, File::Stat.new(File.join(@gemhome, "cache")).mode & 0777
@@ -570,7 +607,7 @@ class TestGem < Gem::TestCase
570
607
 
571
608
  Gem.ensure_gem_subdirectories gemdir
572
609
 
573
- assert File.directory?(util_cache_dir)
610
+ assert_directory_exists util_cache_dir
574
611
  end
575
612
 
576
613
  unless win_platform? || Process.uid.zero? # only for FS that support write protection
@@ -199,6 +199,21 @@ class TestGemCommandsPushCommand < Gem::TestCase
199
199
  send_battery
200
200
  end
201
201
 
202
+ def test_sending_gem_with_env_var_api_key
203
+ @host = "http://privategemserver.example"
204
+
205
+ @spec, @path = util_gem "freebird", "1.0.1" do |spec|
206
+ spec.metadata['allowed_push_host'] = @host
207
+ end
208
+
209
+ @api_key = "PRIVKEY"
210
+ ENV["GEM_HOST_API_KEY"] = "PRIVKEY"
211
+
212
+ @response = "Successfully registered gem: freebird (1.0.1)"
213
+ @fetcher.data["#{@host}/api/v1/gems"] = [@response, 200, 'OK']
214
+ send_battery
215
+ end
216
+
202
217
  def test_sending_gem_to_allowed_push_host_with_basic_credentials
203
218
  @sanitized_host = "http://privategemserver.example"
204
219
  @host = "http://user:password@privategemserver.example"
@@ -38,6 +38,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
38
38
  FileUtils.mkdir_p 'default/gems'
39
39
 
40
40
  gemspec = Gem::Specification.new
41
+ gemspec.author = "Us"
41
42
  gemspec.name = "bundler"
42
43
  gemspec.version = BUNDLER_VERS
43
44
  gemspec.bindir = "exe"
@@ -166,16 +167,19 @@ class TestGemCommandsSetupCommand < Gem::TestCase
166
167
  def test_install_default_bundler_gem
167
168
  @cmd.extend FileUtils
168
169
 
169
- @cmd.install_default_bundler_gem
170
+ bin_dir = File.join(@gemhome, 'bin')
171
+ @cmd.install_default_bundler_gem bin_dir
170
172
 
171
- if Gem.win_platform?
172
- bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
173
- default_spec_path = File.join(Gem::Specification.default_specifications_dir, "#{bundler_spec.full_name}.gemspec")
174
- spec = Gem::Specification.load(default_spec_path)
173
+ bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
174
+ default_spec_path = File.join(Gem::Specification.default_specifications_dir, "#{bundler_spec.full_name}.gemspec")
175
+ spec = Gem::Specification.load(default_spec_path)
175
176
 
176
- spec.executables.each do |e|
177
- assert_path_exists File.join(spec.bin_dir, "#{e}.bat")
177
+ spec.executables.each do |e|
178
+ if Gem.win_platform?
179
+ assert_path_exists File.join(bin_dir, "#{e}.bat")
178
180
  end
181
+
182
+ assert_path_exists File.join bin_dir, e
179
183
  end
180
184
 
181
185
  default_dir = Gem::Specification.default_specifications_dir
@@ -192,6 +192,62 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
192
192
  assert File.exist? File.join(@gemhome, 'bin', 'executable')
193
193
  end
194
194
 
195
+ def test_uninstall_selection
196
+ ui = Gem::MockGemUi.new "1\n"
197
+
198
+ util_make_gems
199
+
200
+ list = Gem::Specification.find_all_by_name 'a'
201
+
202
+ @cmd.options[:args] = ['a']
203
+
204
+ use_ui ui do
205
+ @cmd.execute
206
+ end
207
+
208
+ updated_list = Gem::Specification.find_all_by_name('a')
209
+ assert_equal list.length - 1, updated_list.length
210
+
211
+ assert_match ' 1. a-1', ui.output
212
+ assert_match ' 2. a-2', ui.output
213
+ assert_match ' 3. a-3.a', ui.output
214
+ assert_match ' 4. All versions', ui.output
215
+ assert_match 'uninstalled a-1', ui.output
216
+ end
217
+
218
+ def test_uninstall_selection_multiple_gems
219
+ ui = Gem::MockGemUi.new "1\n"
220
+
221
+ util_make_gems
222
+
223
+ a_list = Gem::Specification.find_all_by_name('a')
224
+ b_list = Gem::Specification.find_all_by_name('b')
225
+ list = a_list + b_list
226
+
227
+ @cmd.options[:args] = ['a', 'b']
228
+
229
+ use_ui ui do
230
+ @cmd.execute
231
+ end
232
+
233
+ updated_a_list = Gem::Specification.find_all_by_name('a')
234
+ updated_b_list = Gem::Specification.find_all_by_name('b')
235
+ updated_list = updated_a_list + updated_b_list
236
+
237
+ assert_equal list.length - 2, updated_list.length
238
+
239
+ out = ui.output.split("\n")
240
+ assert_match 'uninstalled b-2', out.shift
241
+ assert_match '', out.shift
242
+ assert_match 'Select gem to uninstall:', out.shift
243
+ assert_match ' 1. a-1', out.shift
244
+ assert_match ' 2. a-2', out.shift
245
+ assert_match ' 3. a-3.a', out.shift
246
+ assert_match ' 4. All versions', out.shift
247
+ assert_match 'uninstalled a-1', out.shift
248
+ assert_empty out
249
+ end
250
+
195
251
  def test_execute_with_force_and_without_version_uninstalls_everything
196
252
  ui = Gem::MockGemUi.new "y\n"
197
253
 
@@ -246,7 +302,7 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
246
302
  gemhome2 = "#{@gemhome}2"
247
303
 
248
304
  a_4, = util_gem 'a', 4
249
- install_gem a_4, :install_dir => gemhome2
305
+ install_gem a_4
250
306
 
251
307
  Gem::Specification.dirs = [@gemhome, gemhome2]
252
308
 
@@ -264,6 +320,29 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
264
320
  assert_equal %w[default-1], Gem::Specification.all_names.sort
265
321
  end
266
322
 
323
+ def test_execute_outside_gem_home
324
+ ui = Gem::MockGemUi.new "y\n"
325
+
326
+ gemhome2 = "#{@gemhome}2"
327
+
328
+ a_4, = util_gem 'a', 4
329
+ install_gem a_4 , :install_dir => gemhome2
330
+
331
+ Gem::Specification.dirs = [@gemhome, gemhome2]
332
+
333
+ assert_includes Gem::Specification.all_names, 'a-4'
334
+
335
+ @cmd.options[:args] = ['a:4']
336
+
337
+ e = assert_raises Gem::InstallError do
338
+ use_ui ui do
339
+ @cmd.execute
340
+ end
341
+ end
342
+
343
+ assert_includes e.message, "a is not installed in GEM_HOME"
344
+ end
345
+
267
346
  def test_handle_options
268
347
  @cmd.handle_options %w[]
269
348
 
@@ -103,8 +103,8 @@ class TestGemIndexer < Gem::TestCase
103
103
  quickdir = File.join @tempdir, 'quick'
104
104
  marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
105
105
 
106
- assert File.directory?(quickdir)
107
- assert File.directory?(marshal_quickdir)
106
+ assert_directory_exists quickdir
107
+ assert_directory_exists marshal_quickdir
108
108
 
109
109
  assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
110
110
  assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
@@ -133,8 +133,8 @@ class TestGemIndexer < Gem::TestCase
133
133
  quickdir = File.join @tempdir, 'quick'
134
134
  marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
135
135
 
136
- assert File.directory?(quickdir), 'quickdir should be directory'
137
- assert File.directory?(marshal_quickdir)
136
+ assert_directory_exists quickdir, 'quickdir should be directory'
137
+ assert_directory_exists marshal_quickdir
138
138
 
139
139
  refute_indexed quickdir, "index"
140
140
  refute_indexed quickdir, "index.rz"
@@ -179,8 +179,8 @@ class TestGemIndexer < Gem::TestCase
179
179
  quickdir = File.join @tempdir, 'quick'
180
180
  marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
181
181
 
182
- assert File.directory?(quickdir)
183
- assert File.directory?(marshal_quickdir)
182
+ assert_directory_exists quickdir
183
+ assert_directory_exists marshal_quickdir
184
184
 
185
185
  assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
186
186
  assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
@@ -315,8 +315,8 @@ class TestGemIndexer < Gem::TestCase
315
315
  quickdir = File.join @tempdir, 'quick'
316
316
  marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
317
317
 
318
- assert File.directory?(quickdir)
319
- assert File.directory?(marshal_quickdir)
318
+ assert_directory_exists quickdir
319
+ assert_directory_exists marshal_quickdir
320
320
 
321
321
  @d2_1 = util_spec 'd', '2.1'
322
322
  util_build_gem @d2_1