rubygems-update 1.3.3 → 1.3.4

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.

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (46) hide show
  1. data.tar.gz.sig +0 -0
  2. data/ChangeLog +238 -184
  3. data/lib/rubygems.rb +11 -5
  4. data/lib/rubygems/command.rb +4 -1
  5. data/lib/rubygems/commands/install_command.rb +40 -0
  6. data/lib/rubygems/commands/query_command.rb +16 -1
  7. data/lib/rubygems/commands/setup_command.rb +1 -1
  8. data/lib/rubygems/commands/update_command.rb +1 -1
  9. data/lib/rubygems/config_file.rb +0 -1
  10. data/lib/rubygems/defaults.rb +2 -1
  11. data/lib/rubygems/dependency.rb +0 -2
  12. data/lib/rubygems/dependency_list.rb +36 -16
  13. data/lib/rubygems/exceptions.rb +0 -2
  14. data/lib/rubygems/ext/builder.rb +0 -2
  15. data/lib/rubygems/gem_openssl.rb +0 -1
  16. data/lib/rubygems/gem_path_searcher.rb +0 -2
  17. data/lib/rubygems/indexer.rb +1 -0
  18. data/lib/rubygems/package/f_sync_dir.rb +0 -2
  19. data/lib/rubygems/package/tar_header.rb +0 -2
  20. data/lib/rubygems/package/tar_input.rb +0 -2
  21. data/lib/rubygems/package/tar_output.rb +0 -2
  22. data/lib/rubygems/package/tar_reader.rb +2 -2
  23. data/lib/rubygems/package/tar_reader/entry.rb +0 -2
  24. data/lib/rubygems/package/tar_writer.rb +0 -2
  25. data/lib/rubygems/platform.rb +0 -2
  26. data/lib/rubygems/remote_fetcher.rb +5 -1
  27. data/lib/rubygems/requirement.rb +2 -4
  28. data/lib/rubygems/rubygems_version.rb +1 -1
  29. data/lib/rubygems/source_index.rb +19 -9
  30. data/lib/rubygems/spec_fetcher.rb +0 -1
  31. data/lib/rubygems/specification.rb +0 -1
  32. data/lib/rubygems/uninstaller.rb +4 -4
  33. data/lib/rubygems/version.rb +0 -2
  34. data/test/gemutilities.rb +13 -4
  35. data/test/test_gem.rb +54 -5
  36. data/test/test_gem_commands_install_command.rb +2 -0
  37. data/test/test_gem_commands_query_command.rb +68 -8
  38. data/test/test_gem_commands_unpack_command.rb +4 -4
  39. data/test/test_gem_dependency_installer.rb +3 -1
  40. data/test/test_gem_format.rb +1 -1
  41. data/test/test_gem_indexer.rb +5 -3
  42. data/test/test_gem_source_index.rb +14 -445
  43. data/test/test_gem_source_info_cache.rb +1 -1
  44. data/test/test_gem_specification.rb +2 -1
  45. metadata +4 -4
  46. metadata.gz.sig +0 -0
@@ -358,13 +358,15 @@ class TestGemDependencyInstaller < RubyGemTestCase
358
358
  FileUtils.mv @b1_gem, @tempdir
359
359
  inst = nil
360
360
 
361
- Gem.source_index.gems.delete @a1.full_name
361
+ Gem.source_index.remove_spec @a1.full_name
362
+ Gem.source_index.remove_spec @a1_pre.full_name
362
363
 
363
364
  Dir.chdir @tempdir do
364
365
  e = assert_raises Gem::InstallError do
365
366
  inst = Gem::DependencyInstaller.new :domain => :local
366
367
  inst.install 'b'
367
368
  end
369
+
368
370
  assert_equal 'b requires a (>= 0, runtime)', e.message
369
371
  end
370
372
 
@@ -21,7 +21,7 @@ class TestGemFormat < RubyGemTestCase
21
21
 
22
22
  gems = Dir[File.join(@gemhome, 'cache', '*.gem')]
23
23
 
24
- names = [@a1, @a2, @a_evil9, @b2, @c1_2, @pl1].map do |spec|
24
+ names = [@a1, @a2, @a3a, @a_evil9, @b2, @c1_2, @pl1].map do |spec|
25
25
  spec.original_name
26
26
  end
27
27
 
@@ -458,8 +458,9 @@ eighty characters.&lt;/pre&gt;
458
458
  @indexer.generate_index
459
459
  end
460
460
 
461
- assert_match %r%^Loading 9 gems from #{Regexp.escape @tempdir}$%, @ui.output
462
- assert_match %r%^\.\.\.\.\.\.\.\.\.$%, @ui.output
461
+ assert_match %r%^Loading 10 gems from #{Regexp.escape @tempdir}$%,
462
+ @ui.output
463
+ assert_match %r%^\.\.\.\.\.\.\.\.\.\.$%, @ui.output
463
464
  assert_match %r%^Loaded all gems$%, @ui.output
464
465
  assert_match %r%^Generating Marshal quick index gemspecs for 7 gems$%,
465
466
  @ui.output
@@ -571,7 +572,8 @@ eighty characters.&lt;/pre&gt;
571
572
  prerelease_specs_dump = Gem.read_binary prerelease_specs_path
572
573
  prerelease_specs = Marshal.load prerelease_specs_dump
573
574
 
574
- assert_equal [['d', Gem::Version.new('2.0.a'), 'ruby'],
575
+ assert_equal [['a', Gem::Version.new('3.a'), 'ruby'],
576
+ ['d', Gem::Version.new('2.0.a'), 'ruby'],
575
577
  ['d', Gem::Version.new('2.0.b'), 'ruby']],
576
578
  prerelease_specs
577
579
  end
@@ -208,269 +208,6 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
208
208
  assert_equal @fetcher, @source_index.fetcher
209
209
  end
210
210
 
211
- def test_fetch_bulk_index_compressed
212
- util_setup_bulk_fetch true
213
-
214
- use_ui @ui do
215
- fetched_index = @source_index.fetch_bulk_index @uri
216
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
217
- @c1_2.full_name].sort,
218
- fetched_index.gems.map { |n,s| n }.sort
219
- end
220
-
221
- paths = @fetcher.paths
222
-
223
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
224
-
225
- assert_empty paths, paths.join(', ')
226
- end
227
-
228
- def test_fetch_bulk_index_error
229
- @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}.Z"] = proc { raise SocketError }
230
- @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] = proc { raise SocketError }
231
- @fetcher.data["#{@gem_repo}yaml.Z"] = proc { raise SocketError }
232
- @fetcher.data["#{@gem_repo}yaml"] = proc { raise SocketError }
233
-
234
- e = assert_raises Gem::RemoteSourceException do
235
- use_ui @ui do
236
- @source_index.fetch_bulk_index @uri
237
- end
238
- end
239
-
240
- paths = @fetcher.paths
241
-
242
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
243
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}", paths.shift
244
- assert_equal "#{@gem_repo}yaml.Z", paths.shift
245
- assert_equal "#{@gem_repo}yaml", paths.shift
246
-
247
- assert_empty paths, paths.join(', ')
248
-
249
- assert_equal 'Error fetching remote gem cache: SocketError',
250
- e.message
251
- end
252
-
253
- def test_fetch_bulk_index_fallback
254
- @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}.Z"] =
255
- proc { raise SocketError }
256
- @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] =
257
- proc { raise SocketError }
258
- @fetcher.data["#{@gem_repo}yaml.Z"] = proc { raise SocketError }
259
- @fetcher.data["#{@gem_repo}yaml"] = @source_index.to_yaml
260
-
261
- use_ui @ui do
262
- fetched_index = @source_index.fetch_bulk_index @uri
263
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
264
- @c1_2.full_name].sort,
265
- fetched_index.gems.map { |n,s| n }.sort
266
- end
267
-
268
- paths = @fetcher.paths
269
-
270
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
271
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}", paths.shift
272
- assert_equal "#{@gem_repo}yaml.Z", paths.shift
273
- assert_equal "#{@gem_repo}yaml", paths.shift
274
-
275
- assert_empty paths, paths.join(', ')
276
- end
277
-
278
- def test_fetch_bulk_index_marshal_mismatch
279
- marshal = @source_index.dump
280
- marshal[0] = (Marshal::MAJOR_VERSION - 1).chr
281
-
282
- @fetcher.data["#{@gem_repo}Marshal.#{@marshal_version}"] = marshal
283
- @fetcher.data["#{@gem_repo}yaml"] = @source_index.to_yaml
284
-
285
- use_ui @ui do
286
- fetched_index = @source_index.fetch_bulk_index @uri
287
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
288
- @c1_2.full_name].sort,
289
- fetched_index.gems.map { |n,s| n }.sort
290
- end
291
-
292
- paths = @fetcher.paths
293
-
294
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
295
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}", paths.shift
296
- assert_equal "#{@gem_repo}yaml.Z", paths.shift
297
- assert_equal "#{@gem_repo}yaml", paths.shift
298
-
299
- assert_empty paths, paths.join(', ')
300
- end
301
-
302
- def test_fetch_bulk_index_uncompressed
303
- util_setup_bulk_fetch false
304
- use_ui @ui do
305
- fetched_index = @source_index.fetch_bulk_index @uri
306
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
307
- @c1_2.full_name].sort,
308
- fetched_index.gems.map { |n,s| n }.sort
309
- end
310
-
311
- paths = @fetcher.paths
312
-
313
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
314
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}", paths.shift
315
-
316
- assert_empty paths, paths.join(', ')
317
- end
318
-
319
- def test_fetch_quick_index
320
- index = util_zip @gem_names
321
- latest_index = util_zip [@a2.full_name, @b2.full_name].join("\n")
322
-
323
- @fetcher.data["#{@gem_repo}quick/index.rz"] = index
324
- @fetcher.data["#{@gem_repo}quick/latest_index.rz"] = latest_index
325
-
326
- quick_index = @source_index.fetch_quick_index @uri, false
327
- assert_equal [@a2.full_name, @b2.full_name].sort,
328
- quick_index.sort
329
-
330
- paths = @fetcher.paths
331
-
332
- assert_equal "#{@gem_repo}quick/latest_index.rz", paths.shift
333
-
334
- assert_empty paths, paths.join(', ')
335
- end
336
-
337
- def test_fetch_quick_index_all
338
- index = util_zip @gem_names
339
- latest_index = util_zip [@a2.full_name, @b2.full_name].join("\n")
340
-
341
- @fetcher.data["#{@gem_repo}quick/index.rz"] = index
342
- @fetcher.data["#{@gem_repo}quick/latest_index.rz"] = latest_index
343
-
344
- quick_index = @source_index.fetch_quick_index @uri, true
345
- assert_equal [@a1.full_name, @a2.full_name, @b2.full_name].sort,
346
- quick_index.sort
347
-
348
- paths = @fetcher.paths
349
-
350
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
351
-
352
- assert_empty paths, paths.join(', ')
353
- end
354
-
355
- def test_fetch_quick_index_error
356
- @fetcher.data["#{@gem_repo}quick/index.rz"] =
357
- proc { raise Exception }
358
-
359
- e = assert_raises Gem::OperationNotSupportedError do
360
- @source_index.fetch_quick_index @uri, true
361
- end
362
-
363
- assert_equal 'No quick index found: Exception', e.message
364
-
365
- paths = @fetcher.paths
366
-
367
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
368
-
369
- assert_empty paths, paths.join(', ')
370
- end
371
-
372
- def test_fetch_quick_index_fallback
373
- index = util_zip @gem_names
374
-
375
- @fetcher.data["#{@gem_repo}quick/index.rz"] = index
376
-
377
- quick_index = @source_index.fetch_quick_index @uri, false
378
- assert_equal @gem_names.split, quick_index.sort
379
-
380
- paths = @fetcher.paths
381
-
382
- assert_equal "#{@gem_repo}quick/latest_index.rz", paths.shift
383
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
384
-
385
- assert_empty paths, paths.join(', ')
386
- end
387
-
388
- def test_fetch_quick_index_subdir
389
- latest_index = util_zip [@a2.full_name, @b2.full_name].join("\n")
390
- repo = URI.parse "#{@gem_repo}~nobody/mirror/"
391
-
392
- @fetcher.data["#{repo}quick/latest_index.rz"] = latest_index
393
-
394
- quick_index = @source_index.fetch_quick_index repo, false
395
- assert_equal [@a2.full_name, @b2.full_name].sort,
396
- quick_index.sort
397
-
398
- paths = @fetcher.paths
399
-
400
- assert_equal "#{repo}quick/latest_index.rz", paths.shift
401
-
402
- assert_empty paths, paths.join(', ')
403
- end
404
-
405
- def test_fetch_single_spec
406
- a1_spec_url = "#{@gem_repo}quick/Marshal.#{Gem.marshal_version}/#{@a1.full_name}.gemspec.rz"
407
- @fetcher.data[a1_spec_url] = util_zip Marshal.dump(@a1)
408
-
409
- spec = @source_index.send :fetch_single_spec, URI.parse(@gem_repo),
410
- @a1.full_name
411
-
412
- assert_equal @a1.full_name, spec.full_name
413
-
414
- paths = @fetcher.paths
415
-
416
- assert_equal a1_spec_url, paths.shift
417
-
418
- assert_empty paths, paths.join(', ')
419
- end
420
-
421
- def test_fetch_single_spec_subdir
422
- repo = URI.parse "#{@gem_repo}~nobody/mirror/"
423
-
424
- a1_spec_url = "#{repo}quick/Marshal.#{Gem.marshal_version}/#{@a1.full_name}.gemspec.rz"
425
- @fetcher.data[a1_spec_url] = util_zip Marshal.dump(@a1)
426
-
427
- spec = @source_index.send :fetch_single_spec, repo, @a1.full_name
428
-
429
- assert_equal @a1.full_name, spec.full_name
430
-
431
- paths = @fetcher.paths
432
-
433
- assert_equal a1_spec_url, paths.shift
434
-
435
- assert_empty paths, paths.join(', ')
436
- end
437
-
438
- def test_fetch_single_spec_yaml
439
- a1_spec_url = "#{@gem_repo}quick/#{@a1.full_name}.gemspec.rz"
440
- @fetcher.data[a1_spec_url] = util_zip @a1.to_yaml
441
-
442
- repo = URI.parse @gem_repo
443
-
444
- spec = @source_index.send :fetch_single_spec, repo, @a1.full_name
445
-
446
- assert_equal @a1.full_name, spec.full_name
447
-
448
- paths = @fetcher.paths
449
-
450
- assert_equal "#{@gem_repo}quick/Marshal.#{Gem.marshal_version}/#{@a1.full_name}.gemspec.rz", paths.shift
451
- assert_equal a1_spec_url, paths.shift
452
-
453
- assert_empty paths, paths.join(', ')
454
- end
455
-
456
- def test_fetch_single_spec_yaml_subdir
457
- repo = URI.parse "#{@gem_repo}~nobody/mirror/"
458
-
459
- a1_spec_url = "#{repo}quick/#{@a1.full_name}.gemspec.rz"
460
- @fetcher.data[a1_spec_url] = util_zip @a1.to_yaml
461
-
462
- spec = @source_index.send :fetch_single_spec, repo, @a1.full_name
463
-
464
- assert_equal @a1.full_name, spec.full_name
465
-
466
- paths = @fetcher.paths
467
-
468
- assert_equal "#{repo}quick/Marshal.#{Gem.marshal_version}/#{@a1.full_name}.gemspec.rz", paths.shift
469
- assert_equal a1_spec_url, paths.shift
470
-
471
- assert_empty paths, paths.join(', ')
472
- end
473
-
474
211
  def test_find_missing
475
212
  missing = @source_index.find_missing [@b2.full_name]
476
213
  assert_equal [@b2.full_name], missing
@@ -485,7 +222,7 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
485
222
  end
486
223
 
487
224
  def test_find_name
488
- assert_equal [@a1, @a2], @source_index.find_name('a')
225
+ assert_equal [@a1, @a2, @a3a], @source_index.find_name('a')
489
226
  assert_equal [@a2], @source_index.find_name('a', '= 2')
490
227
  assert_equal [], @source_index.find_name('bogusstring')
491
228
  assert_equal [], @source_index.find_name('a', '= 3')
@@ -651,13 +388,25 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
651
388
  assert_equal gems, @source_index.gems.map { |n,s| n }.sort
652
389
  end
653
390
 
391
+ def test_remove_spec
392
+ deleted = @source_index.remove_spec 'a-1'
393
+
394
+ assert_equal %w[a-2 a-3.a a_evil-9 c-1.2],
395
+ @source_index.all_gems.values.map { |s| s.full_name }.sort
396
+
397
+ deleted = @source_index.remove_spec 'a-3.a'
398
+
399
+ assert_equal %w[a-2 a_evil-9 c-1.2],
400
+ @source_index.all_gems.values.map { |s| s.full_name }.sort
401
+ end
402
+
654
403
  def test_search
655
404
  requirement = Gem::Requirement.create '= 9'
656
405
  with_version = Gem::Dependency.new(/^a/, requirement)
657
406
  assert_equal [@a_evil9], @source_index.search(with_version)
658
407
 
659
408
  with_default = Gem::Dependency.new(/^a/, Gem::Requirement.default)
660
- assert_equal [@a1, @a2, @a_evil9], @source_index.search(with_default)
409
+ assert_equal [@a1, @a2, @a3a, @a_evil9], @source_index.search(with_default)
661
410
  end
662
411
 
663
412
  def test_search_platform
@@ -703,186 +452,6 @@ WARNING: Invalid .gemspec format in '#{spec_file}'
703
452
  assert_equal 'some text', @source_index.unzip(input)
704
453
  end
705
454
 
706
- def test_update_bulk
707
- util_setup_bulk_fetch true
708
-
709
- @source_index.gems.replace({})
710
- assert_equal [], @source_index.gems.keys.sort
711
-
712
- use_ui @ui do
713
- @source_index.update @uri, true
714
-
715
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
716
- @c1_2.full_name],
717
- @source_index.gems.keys.sort
718
- end
719
-
720
- paths = @fetcher.paths
721
-
722
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
723
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
724
-
725
- assert_empty paths, paths.join(', ')
726
- end
727
-
728
- def test_update_incremental
729
- old_gem_conf = Gem.configuration
730
- Gem.configuration = Gem::ConfigFile.new([])
731
-
732
- latest_names = [@a2, @a_evil9, @b2, @c1_2].map { |s| s.full_name }
733
- latest_index = util_zip latest_names.join("\n")
734
- @fetcher.data["#{@gem_repo}quick/latest_index.rz"] = latest_index
735
-
736
- marshal_uri = File.join @gem_repo, "quick", "Marshal.#{@marshal_version}",
737
- "#{@b2.full_name}.gemspec.rz"
738
- @fetcher.data[marshal_uri] = util_zip Marshal.dump(@b2)
739
-
740
- use_ui @ui do
741
- @source_index.update @uri, false
742
-
743
- assert_equal latest_names, @source_index.gems.keys.sort
744
- end
745
-
746
- paths = @fetcher.paths
747
- assert_equal "#{@gem_repo}quick/latest_index.rz", paths.shift
748
- assert_equal marshal_uri, paths.shift
749
-
750
- assert_empty paths, paths.join(', ')
751
- ensure
752
- Gem.configuration = old_gem_conf
753
- end
754
-
755
- def test_update_incremental_all
756
- old_gem_conf = Gem.configuration
757
- Gem.configuration = Gem::ConfigFile.new([])
758
-
759
- quick_index = util_zip @all_gem_names.join("\n")
760
- @fetcher.data["#{@gem_repo}quick/index.rz"] = quick_index
761
-
762
- marshal_uri = File.join @gem_repo, "quick", "Marshal.#{@marshal_version}",
763
- "#{@b2.full_name}.gemspec.rz"
764
- @fetcher.data[marshal_uri] = util_zip Marshal.dump(@b2)
765
-
766
- use_ui @ui do
767
- @source_index.update @uri, true
768
-
769
- assert_equal @all_gem_names, @source_index.gems.keys.sort
770
- end
771
-
772
- paths = @fetcher.paths
773
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
774
- assert_equal marshal_uri, paths.shift
775
-
776
- assert_empty paths, paths.join(', ')
777
- ensure
778
- Gem.configuration = old_gem_conf
779
- end
780
-
781
- def test_update_incremental_fallback
782
- old_gem_conf = Gem.configuration
783
- Gem.configuration = Gem::ConfigFile.new([])
784
-
785
- quick_index = util_zip @all_gem_names.join("\n")
786
- @fetcher.data["#{@gem_repo}quick/index.rz"] = quick_index
787
-
788
- marshal_uri = File.join @gem_repo, "quick", "Marshal.#{@marshal_version}",
789
- "#{@b2.full_name}.gemspec.rz"
790
-
791
- yaml_uri = "#{@gem_repo}quick/#{@b2.full_name}.gemspec.rz"
792
- @fetcher.data[yaml_uri] = util_zip @b2.to_yaml
793
-
794
- use_ui @ui do
795
- @source_index.update @uri, true
796
-
797
- assert_equal @all_gem_names, @source_index.gems.keys.sort
798
- end
799
-
800
- paths = @fetcher.paths
801
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
802
- assert_equal marshal_uri, paths.shift
803
- assert_equal yaml_uri, paths.shift
804
-
805
- assert_empty paths, paths.join(', ')
806
- ensure
807
- Gem.configuration = old_gem_conf
808
- end
809
-
810
- def test_update_incremental_marshal_mismatch
811
- old_gem_conf = Gem.configuration
812
- Gem.configuration = Gem::ConfigFile.new([])
813
-
814
- quick_index = util_zip @all_gem_names.join("\n")
815
- @fetcher.data["#{@gem_repo}quick/index.rz"] = quick_index
816
-
817
- marshal_uri = File.join @gem_repo, "quick", "Marshal.#{@marshal_version}",
818
- "#{@b2.full_name}.gemspec.rz"
819
- marshal_data = Marshal.dump(@b2)
820
- marshal_data[0] = (Marshal::MAJOR_VERSION - 1).chr
821
- @fetcher.data[marshal_uri] = util_zip marshal_data
822
-
823
- yaml_uri = "#{@gem_repo}quick/#{@b2.full_name}.gemspec.rz"
824
- @fetcher.data[yaml_uri] = util_zip @b2.to_yaml
825
-
826
- use_ui @ui do
827
- @source_index.update @uri, true
828
-
829
- assert_equal @all_gem_names, @source_index.gems.keys.sort
830
- end
831
-
832
- paths = @fetcher.paths
833
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
834
- assert_equal marshal_uri, paths.shift
835
- assert_equal yaml_uri, paths.shift
836
-
837
- assert_empty paths, paths.join(', ')
838
- ensure
839
- Gem.configuration = old_gem_conf
840
- end
841
-
842
- def test_update_subdir
843
- @gem_repo = @gem_repo + 'subdir/'
844
-
845
- util_setup_bulk_fetch true
846
-
847
- @source_index.gems.replace({})
848
- assert_equal [], @source_index.gems.keys.sort
849
-
850
- uri = @uri.to_s + 'subdir/'
851
-
852
- use_ui @ui do
853
- @source_index.update uri, true
854
-
855
- assert_equal [@a1.full_name, @a2.full_name, @a_evil9.full_name,
856
- @c1_2.full_name],
857
- @source_index.gems.keys.sort
858
- end
859
-
860
- paths = @fetcher.paths
861
-
862
- assert_equal "#{@gem_repo}quick/index.rz", paths.shift
863
- assert_equal "#{@gem_repo}Marshal.#{@marshal_version}.Z", paths.shift
864
-
865
- assert_empty paths, paths.join(', ')
866
- end
867
-
868
- def test_update_with_missing
869
- marshal_uri = File.join @gem_repo, "quick", "Marshal.#{@marshal_version}",
870
- "#{@c1_2.full_name}.gemspec.rz"
871
- dumped = Marshal.dump @c1_2
872
- @fetcher.data[marshal_uri] = util_zip(dumped)
873
-
874
- use_ui @ui do
875
- @source_index.update_with_missing @uri, [@c1_2.full_name]
876
- end
877
-
878
- spec = @source_index.specification(@c1_2.full_name)
879
- # We don't care about the equality of undumped attributes
880
- @c1_2.files = spec.files
881
- @c1_2.loaded_from = spec.loaded_from
882
-
883
- assert_equal @c1_2, spec
884
- end
885
-
886
455
  def util_setup_bulk_fetch(compressed)
887
456
  source_index = @source_index.dump
888
457