Skip to content

Commit 566cd15

Browse files
deivid-rodriguezhsbt
authored andcommitted
[rubygems/rubygems] Refactor duplicated test logic
ruby/rubygems@6fcc20f884
1 parent e89eb0b commit 566cd15

File tree

1 file changed

+26
-99
lines changed

1 file changed

+26
-99
lines changed

test/rubygems/test_gem_commands_sources_command.rb

Lines changed: 26 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,7 @@ def test_execute
4242
end
4343

4444
def test_execute_add
45-
spec_fetcher do |fetcher|
46-
fetcher.spec "a", 1
47-
end
48-
49-
specs = Gem::Specification.map do |spec|
50-
[spec.name, spec.version, spec.original_platform]
51-
end
52-
53-
specs_dump_gz = StringIO.new
54-
Zlib::GzipWriter.wrap specs_dump_gz do |io|
55-
Marshal.dump specs, io
56-
end
57-
58-
@fetcher.data["#{@new_repo}/specs.#{@marshal_version}.gz"] =
59-
specs_dump_gz.string
45+
setup_fake_source(@new_repo)
6046

6147
@cmd.handle_options %W[--add #{@new_repo}]
6248

@@ -77,20 +63,8 @@ def test_execute_add
7763
def test_execute_add_allow_typo_squatting_source
7864
rubygems_org = "https://rubyems.org"
7965

80-
spec_fetcher do |fetcher|
81-
fetcher.spec("a", 1)
82-
end
66+
setup_fake_source(rubygems_org)
8367

84-
specs = Gem::Specification.map do |spec|
85-
[spec.name, spec.version, spec.original_platform]
86-
end
87-
88-
specs_dump_gz = StringIO.new
89-
Zlib::GzipWriter.wrap(specs_dump_gz) do |io|
90-
Marshal.dump(specs, io)
91-
end
92-
93-
@fetcher.data["#{rubygems_org}/specs.#{@marshal_version}.gz"] = specs_dump_gz.string
9468
@cmd.handle_options %W[--add #{rubygems_org}]
9569
ui = Gem::MockGemUi.new("y")
9670

@@ -111,20 +85,8 @@ def test_execute_add_allow_typo_squatting_source
11185
def test_execute_add_allow_typo_squatting_source_forced
11286
rubygems_org = "https://rubyems.org"
11387

114-
spec_fetcher do |fetcher|
115-
fetcher.spec("a", 1)
116-
end
117-
118-
specs = Gem::Specification.map do |spec|
119-
[spec.name, spec.version, spec.original_platform]
120-
end
121-
122-
specs_dump_gz = StringIO.new
123-
Zlib::GzipWriter.wrap(specs_dump_gz) do |io|
124-
Marshal.dump(specs, io)
125-
end
88+
setup_fake_source(rubygems_org)
12689

127-
@fetcher.data["#{rubygems_org}/specs.#{@marshal_version}.gz"] = specs_dump_gz.string
12890
@cmd.handle_options %W[--force --add #{rubygems_org}]
12991

13092
@cmd.execute
@@ -141,21 +103,7 @@ def test_execute_add_allow_typo_squatting_source_forced
141103
def test_execute_add_deny_typo_squatting_source
142104
rubygems_org = "https://rubyems.org"
143105

144-
spec_fetcher do |fetcher|
145-
fetcher.spec("a", 1)
146-
end
147-
148-
specs = Gem::Specification.map do |spec|
149-
[spec.name, spec.version, spec.original_platform]
150-
end
151-
152-
specs_dump_gz = StringIO.new
153-
Zlib::GzipWriter.wrap(specs_dump_gz) do |io|
154-
Marshal.dump(specs, io)
155-
end
156-
157-
@fetcher.data["#{rubygems_org}/specs.#{@marshal_version}.gz"] =
158-
specs_dump_gz.string
106+
setup_fake_source(rubygems_org)
159107

160108
@cmd.handle_options %W[--add #{rubygems_org}]
161109

@@ -315,21 +263,7 @@ def test_execute_add_redundant_source_trailing_slash
315263
def test_execute_add_http_rubygems_org
316264
http_rubygems_org = "http://rubygems.org/"
317265

318-
spec_fetcher do |fetcher|
319-
fetcher.spec "a", 1
320-
end
321-
322-
specs = Gem::Specification.map do |spec|
323-
[spec.name, spec.version, spec.original_platform]
324-
end
325-
326-
specs_dump_gz = StringIO.new
327-
Zlib::GzipWriter.wrap specs_dump_gz do |io|
328-
Marshal.dump specs, io
329-
end
330-
331-
@fetcher.data["#{http_rubygems_org}/specs.#{@marshal_version}.gz"] =
332-
specs_dump_gz.string
266+
setup_fake_source(http_rubygems_org)
333267

334268
@cmd.handle_options %W[--add #{http_rubygems_org}]
335269

@@ -353,20 +287,8 @@ def test_execute_add_http_rubygems_org
353287
def test_execute_add_http_rubygems_org_forced
354288
rubygems_org = "http://rubygems.org"
355289

356-
spec_fetcher do |fetcher|
357-
fetcher.spec("a", 1)
358-
end
290+
setup_fake_source(rubygems_org)
359291

360-
specs = Gem::Specification.map do |spec|
361-
[spec.name, spec.version, spec.original_platform]
362-
end
363-
364-
specs_dump_gz = StringIO.new
365-
Zlib::GzipWriter.wrap(specs_dump_gz) do |io|
366-
Marshal.dump(specs, io)
367-
end
368-
369-
@fetcher.data["#{rubygems_org}/specs.#{@marshal_version}.gz"] = specs_dump_gz.string
370292
@cmd.handle_options %W[--force --add #{rubygems_org}]
371293

372294
@cmd.execute
@@ -383,21 +305,7 @@ def test_execute_add_http_rubygems_org_forced
383305
def test_execute_add_https_rubygems_org
384306
https_rubygems_org = "https://rubygems.org/"
385307

386-
spec_fetcher do |fetcher|
387-
fetcher.spec "a", 1
388-
end
389-
390-
specs = Gem::Specification.map do |spec|
391-
[spec.name, spec.version, spec.original_platform]
392-
end
393-
394-
specs_dump_gz = StringIO.new
395-
Zlib::GzipWriter.wrap specs_dump_gz do |io|
396-
Marshal.dump specs, io
397-
end
398-
399-
@fetcher.data["#{https_rubygems_org}/specs.#{@marshal_version}.gz"] =
400-
specs_dump_gz.string
308+
setup_fake_source(https_rubygems_org)
401309

402310
@cmd.handle_options %W[--add #{https_rubygems_org}]
403311

@@ -533,4 +441,23 @@ def test_execute_update
533441
assert_equal "source cache successfully updated\n", @ui.output
534442
assert_equal "", @ui.error
535443
end
444+
445+
private
446+
447+
def setup_fake_source(uri)
448+
spec_fetcher do |fetcher|
449+
fetcher.spec "a", 1
450+
end
451+
452+
specs = Gem::Specification.map do |spec|
453+
[spec.name, spec.version, spec.original_platform]
454+
end
455+
456+
specs_dump_gz = StringIO.new
457+
Zlib::GzipWriter.wrap specs_dump_gz do |io|
458+
Marshal.dump specs, io
459+
end
460+
461+
@fetcher.data["#{uri}/specs.#{@marshal_version}.gz"] = specs_dump_gz.string
462+
end
536463
end

0 commit comments

Comments
 (0)