polisher 0.9.1 → 0.10.1
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.
- checksums.yaml +4 -4
- data/bin/gem_dependency_checker.rb +55 -25
- data/bin/git_gem_updater.rb +18 -7
- data/lib/polisher/bodhi.rb +11 -10
- data/lib/polisher/component.rb +43 -0
- data/lib/polisher/config.rb +32 -0
- data/lib/polisher/core.rb +59 -34
- data/lib/polisher/errata.rb +56 -56
- data/lib/polisher/fedora.rb +33 -33
- data/lib/polisher/gem.rb +316 -281
- data/lib/polisher/gem_state.rb +86 -0
- data/lib/polisher/gemfile.rb +85 -87
- data/lib/polisher/git/pkg.rb +232 -175
- data/lib/polisher/git/repo.rb +74 -61
- data/lib/polisher/koji.rb +136 -83
- data/lib/polisher/logger.rb +23 -0
- data/lib/polisher/rhn.rb +6 -5
- data/lib/polisher/rpm/requirement.rb +186 -177
- data/lib/polisher/rpm/spec.rb +420 -356
- data/lib/polisher/tag_mapper.rb +27 -0
- data/lib/polisher/version.rb +1 -1
- data/lib/polisher/version_checker.rb +86 -17
- data/lib/polisher/yum.rb +26 -19
- data/spec/component_spec.rb +53 -0
- data/spec/core_spec.rb +6 -0
- data/spec/gem_spec.rb +230 -47
- data/spec/git_spec.rb +63 -27
- data/spec/koji_spec.rb +60 -3
- data/spec/rpm/spec_spec.rb +7 -3
- data/spec/spec_helper.rb +2 -1
- data/spec/version_checker_spec.rb +97 -0
- data/spec/yum_spec.rb +5 -0
- metadata +34 -28
- data/lib/polisher/missing.rb +0 -12
data/spec/git_spec.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# Polisher Git Spec
|
2
1
|
#
|
3
2
|
# Licensed under the MIT license
|
4
3
|
# Copyright (C) 2013-2014 Red Hat, Inc.
|
5
4
|
|
6
5
|
require 'polisher/git'
|
6
|
+
require 'polisher/gem'
|
7
7
|
require 'pathname'
|
8
8
|
|
9
9
|
module Polisher
|
@@ -28,7 +28,7 @@ module Polisher
|
|
28
28
|
describe "#clone" do
|
29
29
|
it "runs git clone" do
|
30
30
|
expected = "/usr/bin/git clone repo_url repo_path"
|
31
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
31
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
32
32
|
|
33
33
|
repo = described_class.new :url => 'repo_url'
|
34
34
|
repo.should_receive(:path).and_return('repo_path')
|
@@ -91,7 +91,7 @@ module Polisher
|
|
91
91
|
expected = "/usr/bin/git reset HEAD~ --hard"
|
92
92
|
repo = described_class.new
|
93
93
|
repo.should_receive(:in_repo).and_yield
|
94
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
94
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
95
95
|
repo.reset!
|
96
96
|
end
|
97
97
|
end
|
@@ -101,7 +101,7 @@ module Polisher
|
|
101
101
|
expected = "/usr/bin/git pull"
|
102
102
|
repo = described_class.new
|
103
103
|
repo.should_receive(:in_repo).and_yield
|
104
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
104
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
105
105
|
repo.pull
|
106
106
|
end
|
107
107
|
end
|
@@ -111,7 +111,7 @@ module Polisher
|
|
111
111
|
expected = "/usr/bin/git checkout master"
|
112
112
|
repo = described_class.new
|
113
113
|
repo.should_receive(:in_repo).and_yield
|
114
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
114
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
115
115
|
repo.checkout('master')
|
116
116
|
end
|
117
117
|
end
|
@@ -121,7 +121,7 @@ module Polisher
|
|
121
121
|
expected = "/usr/bin/git commit -m 'msg'"
|
122
122
|
repo = described_class.new
|
123
123
|
repo.should_receive(:in_repo).and_yield
|
124
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
124
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
125
125
|
repo.commit('msg')
|
126
126
|
end
|
127
127
|
end
|
@@ -185,6 +185,7 @@ module Polisher
|
|
185
185
|
|
186
186
|
pkg = described_class.new :name => 'rails'
|
187
187
|
pkg.should_receive(:in_repo).and_yield
|
188
|
+
pkg.should_receive(:require_cmd!).with('/usr/bin/fedpkg').and_return(true)
|
188
189
|
|
189
190
|
expected = '/usr/bin/fedpkg clone rubygem-rails'
|
190
191
|
result = AwesomeSpawn::CommandResult.new '', '', '', 0
|
@@ -204,14 +205,14 @@ module Polisher
|
|
204
205
|
|
205
206
|
context "dead.package exists" do
|
206
207
|
it "returns true" do
|
207
|
-
File.should_receive(:
|
208
|
+
File.should_receive(:exist?).with('dead.package').and_return(true)
|
208
209
|
@pkg.should be_dead
|
209
210
|
end
|
210
211
|
end
|
211
212
|
|
212
213
|
context "dead.package does not exist" do
|
213
214
|
it "returns false" do
|
214
|
-
File.should_receive(:
|
215
|
+
File.should_receive(:exist?).with('dead.package').and_return(false)
|
215
216
|
@pkg.should_not be_dead
|
216
217
|
end
|
217
218
|
end
|
@@ -290,7 +291,16 @@ module Polisher
|
|
290
291
|
end
|
291
292
|
end
|
292
293
|
|
294
|
+
describe "#update_metadata" do
|
295
|
+
it "sets pkg version" do
|
296
|
+
pkg = described_class.new
|
297
|
+
pkg.update_metadata(Polisher::Gem.new(:version => '5.0'))
|
298
|
+
pkg.version.should == '5.0'
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
293
302
|
describe "#update_spec_to" do
|
303
|
+
it "updates spec metadata"
|
294
304
|
it "updates spec version"
|
295
305
|
it "updates spec release"
|
296
306
|
end
|
@@ -317,6 +327,7 @@ module Polisher
|
|
317
327
|
expected = "/usr/bin/git add pkg_files"
|
318
328
|
AwesomeSpawn.should_receive(:run).with(expected)
|
319
329
|
AwesomeSpawn.should_receive(:run).at_least(:once)
|
330
|
+
.and_return(AwesomeSpawn::CommandResult.new('', '', '', 0))
|
320
331
|
pkg.commit
|
321
332
|
end
|
322
333
|
|
@@ -324,27 +335,53 @@ module Polisher
|
|
324
335
|
pkg = described_class.new(:name => 'rails', :version => '1.0.0')
|
325
336
|
pkg.should_receive(:in_repo).at_least(:once).and_yield
|
326
337
|
expected = "/usr/bin/git commit -m 'updated to 1.0.0'"
|
327
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
338
|
+
AwesomeSpawn.should_receive(:run!).with(expected)
|
328
339
|
AwesomeSpawn.should_receive(:run).at_least(:once)
|
340
|
+
.and_return(AwesomeSpawn::CommandResult.new('', '', '', 0))
|
329
341
|
pkg.commit
|
330
342
|
end
|
331
343
|
end
|
332
344
|
|
333
345
|
describe "#build_srpm" do
|
334
346
|
it "uses package command to build srpm" do
|
335
|
-
|
347
|
+
gem = Polisher::Gem.new
|
348
|
+
spec = RPM::Spec.new
|
349
|
+
pkg = described_class.new
|
336
350
|
pkg.should_receive(:in_repo).and_yield
|
337
|
-
|
351
|
+
pkg.should_receive(:require_cmd!).with('/usr/bin/fedpkg').and_return(true)
|
352
|
+
pkg.should_receive(:spec).and_return(spec)
|
353
|
+
spec.should_receive(:upstream_gem).and_return(gem)
|
354
|
+
FileUtils.stub(:ln_s) # stub out ln
|
355
|
+
result = AwesomeSpawn::CommandResult.new "", "", "", 0
|
356
|
+
AwesomeSpawn.should_receive(:run)
|
357
|
+
.with("/usr/bin/fedpkg srpm")
|
358
|
+
.and_return(result)
|
338
359
|
pkg.build_srpm
|
339
360
|
end
|
361
|
+
|
362
|
+
context "package command fails" do
|
363
|
+
it "raises RuntimeError with the command stderr" do
|
364
|
+
gem = Polisher::Gem.new
|
365
|
+
spec = RPM::Spec.new
|
366
|
+
pkg = described_class.new
|
367
|
+
pkg.should_receive(:in_repo).and_yield
|
368
|
+
pkg.should_receive(:require_cmd!).with('/usr/bin/fedpkg').and_return(true)
|
369
|
+
pkg.should_receive(:spec).and_return(spec)
|
370
|
+
spec.should_receive(:upstream_gem).and_return(gem)
|
371
|
+
FileUtils.stub(:ln_s) # stub out ln
|
372
|
+
result = AwesomeSpawn::CommandResult.new "", "", "cmd_error", 1
|
373
|
+
AwesomeSpawn.should_receive(:run)
|
374
|
+
.and_return(result)
|
375
|
+
expect { pkg.build_srpm }.to raise_error(RuntimeError, "cmd_error")
|
376
|
+
end
|
377
|
+
end
|
340
378
|
end
|
341
379
|
|
342
380
|
describe "#scratch_build" do
|
343
|
-
it "uses
|
381
|
+
it "uses koji to build srpm" do
|
344
382
|
pkg = described_class.new(:name => 'rails', :version => '1.0.0')
|
345
383
|
pkg.should_receive(:in_repo).and_yield
|
346
|
-
|
347
|
-
AwesomeSpawn.should_receive(:run).with(expected)
|
384
|
+
Koji.should_receive(:build).with(:srpm => pkg.srpm, :scratch => true)
|
348
385
|
pkg.scratch_build
|
349
386
|
end
|
350
387
|
end
|
@@ -358,37 +395,36 @@ module Polisher
|
|
358
395
|
end
|
359
396
|
end
|
360
397
|
|
361
|
-
describe "#
|
362
|
-
it "
|
363
|
-
pkg =
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
described_class.
|
398
|
+
describe "#versions_for" do
|
399
|
+
it "git fetches the package" do
|
400
|
+
pkg = described_class.new
|
401
|
+
described_class.should_receive(:new)
|
402
|
+
.with(:name => 'rails')
|
403
|
+
.and_return(pkg)
|
404
|
+
pkg.should_receive(:fetch).with(described_class.fetch_tgt)
|
405
|
+
described_class.versions_for 'rails'
|
368
406
|
end
|
369
407
|
|
370
408
|
it "returns version of the package" do
|
371
|
-
AwesomeSpawn.should_receive(:run) # stub out run
|
372
|
-
|
373
409
|
spec = Polisher::RPM::Spec.new :version => '1.0.0'
|
374
410
|
pkg = described_class.new
|
411
|
+
pkg.should_receive(:fetch) # stub out fetch
|
375
412
|
described_class.should_receive(:new).and_return(pkg)
|
376
413
|
pkg.should_receive(:spec).and_return(spec)
|
377
414
|
|
378
|
-
described_class.
|
415
|
+
described_class.versions_for('rails').should == ['1.0.0']
|
379
416
|
end
|
380
417
|
|
381
418
|
it "invokes callback with version of package" do
|
382
|
-
AwesomeSpawn.should_receive(:run) # stub out run
|
383
|
-
|
384
419
|
spec = Polisher::RPM::Spec.new :version => '1.0.0'
|
385
420
|
pkg = described_class.new
|
421
|
+
pkg.should_receive(:fetch) # stub out fetch
|
386
422
|
described_class.should_receive(:new).and_return(pkg)
|
387
423
|
pkg.should_receive(:spec).and_return(spec)
|
388
424
|
|
389
425
|
cb = proc {}
|
390
426
|
cb.should_receive(:call).with(:git, 'rails', ['1.0.0'])
|
391
|
-
described_class.
|
427
|
+
described_class.versions_for('rails', &cb)
|
392
428
|
end
|
393
429
|
end
|
394
430
|
end # describe Git::Pkg
|
data/spec/koji_spec.rb
CHANGED
@@ -65,7 +65,7 @@ module Polisher
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "uses xmlrpc client to retreive versions" do
|
68
|
-
expected = ['listTagged', described_class.koji_tag, nil,
|
68
|
+
expected = ['listTagged', described_class.koji_tag, nil, true,
|
69
69
|
nil, false, "rubygem-rails"]
|
70
70
|
@client.should_receive(:call).with(*expected).and_return([])
|
71
71
|
described_class.versions_for 'rails'
|
@@ -73,15 +73,34 @@ module Polisher
|
|
73
73
|
|
74
74
|
it "handles multiple koji tags" do
|
75
75
|
described_class.should_receive(:koji_tags).and_return(['tag1', 'tag2'])
|
76
|
-
expected1 = ['listTagged', 'tag1', nil,
|
76
|
+
expected1 = ['listTagged', 'tag1', nil, true,
|
77
77
|
nil, false, "rubygem-rails"]
|
78
|
-
expected2 = ['listTagged', 'tag2', nil,
|
78
|
+
expected2 = ['listTagged', 'tag2', nil, true,
|
79
79
|
nil, false, "rubygem-rails"]
|
80
80
|
@client.should_receive(:call).with(*expected1).and_return([])
|
81
81
|
@client.should_receive(:call).with(*expected2).and_return([])
|
82
82
|
described_class.versions_for 'rails'
|
83
83
|
end
|
84
84
|
|
85
|
+
it "handles multiple koji prefixes" do
|
86
|
+
@prefix = ['rubygem-', 'ruby193-rubygem-']
|
87
|
+
described_class.should_receive(:package_prefix).twice.and_return(['rubygem-', 'ruby193-rubygem-'])
|
88
|
+
described_class.should_receive(:koji_tags).and_return(['tag1', 'tag2'])
|
89
|
+
expected1 = ['listTagged', 'tag1', nil, true,
|
90
|
+
nil, false, "rubygem-rails"]
|
91
|
+
expected2 = ['listTagged', 'tag2', nil, true,
|
92
|
+
nil, false, "rubygem-rails"]
|
93
|
+
expected3 = ['listTagged', 'tag1', nil, true,
|
94
|
+
nil, false, "ruby193-rubygem-rails"]
|
95
|
+
expected4 = ['listTagged', 'tag2', nil, true,
|
96
|
+
nil, false, "ruby193-rubygem-rails"]
|
97
|
+
@client.should_receive(:call).with(*expected1).and_return([])
|
98
|
+
@client.should_receive(:call).with(*expected2).and_return([])
|
99
|
+
@client.should_receive(:call).with(*expected3).and_return([])
|
100
|
+
@client.should_receive(:call).with(*expected4).and_return([])
|
101
|
+
described_class.versions_for 'rails'
|
102
|
+
end
|
103
|
+
|
85
104
|
it "returns versions" do
|
86
105
|
versions = [{'version' => '1.0.0'}]
|
87
106
|
@client.should_receive(:call).and_return(versions)
|
@@ -96,6 +115,44 @@ module Polisher
|
|
96
115
|
cb.should_receive(:call).with(:koji, 'rails', ['1.0.0'])
|
97
116
|
described_class.versions_for('rails', &cb)
|
98
117
|
end
|
118
|
+
end # describe versions_for
|
119
|
+
|
120
|
+
describe "#build" do
|
121
|
+
it "runs build_cmd" do
|
122
|
+
result = AwesomeSpawn::CommandResult.new "", "", "", 0
|
123
|
+
expected = "#{described_class.build_cmd} build #{described_class.build_tgt} srpm"
|
124
|
+
AwesomeSpawn.should_receive(:run).with(expected).and_return(result)
|
125
|
+
described_class.should_receive(:require_cmd!)
|
126
|
+
.with(described_class.build_cmd).and_return(true)
|
127
|
+
described_class.build :srpm => 'srpm'
|
128
|
+
end
|
129
|
+
|
130
|
+
it "runs scratch build" do
|
131
|
+
described_class.should_receive(:require_cmd!)
|
132
|
+
.with(described_class.build_cmd).and_return(true)
|
133
|
+
result = AwesomeSpawn::CommandResult.new "", "", "", 0
|
134
|
+
expected = "#{described_class.build_cmd} build --scratch f20 srpm"
|
135
|
+
AwesomeSpawn.should_receive(:run).with(expected).and_return(result)
|
136
|
+
described_class.build :target => 'f20', :srpm => 'srpm', :scratch => true
|
137
|
+
end
|
138
|
+
|
139
|
+
it "parses & returns url from build output" do
|
140
|
+
described_class.should_receive(:require_cmd!).and_return(true)
|
141
|
+
result = AwesomeSpawn::CommandResult.new "", "output", "", 0
|
142
|
+
AwesomeSpawn.should_receive(:run).and_return(result)
|
143
|
+
described_class.should_receive(:parse_url).with('output').and_return('url')
|
144
|
+
described_class.build.should == 'url'
|
145
|
+
end
|
146
|
+
|
147
|
+
describe "non-zero build exit status" do
|
148
|
+
it "raises runtime error with build url" do
|
149
|
+
described_class.should_receive(:require_cmd!).and_return(true)
|
150
|
+
result = AwesomeSpawn::CommandResult.new "", "", "", 1
|
151
|
+
AwesomeSpawn.should_receive(:run).and_return(result)
|
152
|
+
described_class.should_receive(:parse_url).and_return('url')
|
153
|
+
lambda { described_class.build }.should raise_error(RuntimeError, 'url')
|
154
|
+
end
|
155
|
+
end
|
99
156
|
end
|
100
157
|
end # describe Koji
|
101
158
|
end # module Polisher
|
data/spec/rpm/spec_spec.rb
CHANGED
@@ -116,12 +116,16 @@ module Polisher::RPM
|
|
116
116
|
it "updates dependencies from gem" do
|
117
117
|
spec = described_class.new :requires => [Requirement.parse('rubygem(rake)'),
|
118
118
|
Requirement.parse('rubygem(activerecord)')],
|
119
|
-
|
119
|
+
:build_requires => []
|
120
120
|
gem = Polisher::Gem.new :deps => [::Gem::Dependency.new('rake'),
|
121
121
|
::Gem::Dependency.new('rails', '~> 10')],
|
122
122
|
:dev_deps => [::Gem::Dependency.new('rspec', :development)]
|
123
123
|
|
124
|
-
|
124
|
+
# stub out a few methods
|
125
|
+
spec.should_receive(:excluded_deps).at_least(:once).and_return([])
|
126
|
+
spec.should_receive(:excluded_dev_deps).at_least(:once).and_return([])
|
127
|
+
spec.should_receive(:update_files_from)
|
128
|
+
|
125
129
|
spec.update_to(gem)
|
126
130
|
spec.requires.should == [Requirement.parse('rubygem(activerecord)'),
|
127
131
|
Requirement.parse('rubygem(rake) >= 0'),
|
@@ -136,7 +140,7 @@ module Polisher::RPM
|
|
136
140
|
gem.should_receive(:file_paths).at_least(:once).
|
137
141
|
and_return(['/foo', '/foo/bar', '/baz'])
|
138
142
|
spec.update_to(gem)
|
139
|
-
spec.new_files.should == ['
|
143
|
+
spec.new_files.should == ['%{gem_instdir}//baz']
|
140
144
|
end
|
141
145
|
|
142
146
|
it "updates metadata from gem" do
|
data/spec/spec_helper.rb
CHANGED
@@ -70,7 +70,8 @@ module Polisher
|
|
70
70
|
GEMFILE = {
|
71
71
|
:path => "#{SPEC_DIR}/data/Gemfile",
|
72
72
|
:contents => File.read("#{SPEC_DIR}/data/Gemfile"),
|
73
|
-
:deps => [
|
73
|
+
:deps => [::Gem::Dependency.new("rubygems", ::Gem::Requirement.new([">= 0"]), :runtime),
|
74
|
+
::Gem::Dependency.new("cinch", ::Gem::Requirement.new([">= 0"]), :runtime)]
|
74
75
|
}
|
75
76
|
|
76
77
|
RPM_SPEC = {
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# Polisher Version Checker Spec
|
2
|
+
#
|
3
|
+
# Licensed under the MIT license
|
4
|
+
# Copyright (C) 2013-2014 Red Hat, Inc.
|
5
|
+
|
6
|
+
require 'polisher/version_checker'
|
7
|
+
|
8
|
+
module Polisher
|
9
|
+
describe VersionChecker do
|
10
|
+
describe "#check" do
|
11
|
+
it "adds target to check to list"
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "#should_check?" do
|
15
|
+
context "target is on check list" do
|
16
|
+
it "returns true"
|
17
|
+
end
|
18
|
+
|
19
|
+
context "target is not on check list" do
|
20
|
+
it "returns false"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#versions_for" do
|
25
|
+
context "should check gem target" do
|
26
|
+
it "checks gem target"
|
27
|
+
it "invokes block w/ gem versions retrieved"
|
28
|
+
end
|
29
|
+
|
30
|
+
context "should check fedora target" do
|
31
|
+
it "checks fedora target"
|
32
|
+
it "invokes block w/ fedora versions retrieved"
|
33
|
+
context "error retrieving versions from fedora" do
|
34
|
+
it "invokes block w/ 'unknown' version"
|
35
|
+
it "returns 'unknown' fedora version"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "should check koji target" do
|
40
|
+
it "checks koji target"
|
41
|
+
it "invokes block w/ koji versions retrieved"
|
42
|
+
context "error retrieving versions from koji" do
|
43
|
+
it "invokes block w/ 'unknown' version"
|
44
|
+
it "returns 'unknown' koji version"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "should check git target" do
|
49
|
+
it "checks git target"
|
50
|
+
it "invokes block w/ git versions retrieved"
|
51
|
+
context "error retrieving versions from git" do
|
52
|
+
it "invokes block w/ 'unknown' version"
|
53
|
+
it "returns 'unknown' git version"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "should check yum target" do
|
58
|
+
it "checks yum target"
|
59
|
+
it "invokes block w/ yum versions retrieved"
|
60
|
+
context "error retrieving versions from yum" do
|
61
|
+
it "invokes block w/ 'unknown' version"
|
62
|
+
it "returns 'unknown' yum version"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "should check bodhi target" do
|
67
|
+
it "checks bodhi target"
|
68
|
+
it "invokes block w/ bodhi versions retrieved"
|
69
|
+
context "error retrieving versions from bodhi" do
|
70
|
+
it "invokes block w/ 'unknown' version"
|
71
|
+
it "returns 'unknown' bodhi version"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "should check errata target" do
|
76
|
+
it "checks errata target"
|
77
|
+
it "checks errata target"
|
78
|
+
it "invokes block w/ errata versions retrieved"
|
79
|
+
context "error retrieving versions from errata" do
|
80
|
+
it "invokes block w/ 'unknown' version"
|
81
|
+
it "returns 'unknown' errata version"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it "returns all versions retrieved"
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "version for" do
|
89
|
+
it "retrieves most relevant version of package in configured targets"
|
90
|
+
end
|
91
|
+
end # describe VersionChecker
|
92
|
+
|
93
|
+
describe VersionedDependencies do
|
94
|
+
it "retrieves versions of each dependency in configured targets"
|
95
|
+
it "invokes block with targets / versions"
|
96
|
+
end # described VersionedDependencies
|
97
|
+
end # module Polisher
|
data/spec/yum_spec.rb
CHANGED
@@ -12,6 +12,8 @@ module Polisher
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "uses yum to retreive versions" do
|
15
|
+
described_class.should_receive(:require_cmd!)
|
16
|
+
.with('/usr/bin/yum').and_return(true)
|
15
17
|
expected = "/usr/bin/yum info rubygem-rails"
|
16
18
|
result = AwesomeSpawn::CommandResult.new expected, "", "", 0
|
17
19
|
AwesomeSpawn.should_receive(:run).with(expected).and_return(result)
|
@@ -19,12 +21,15 @@ module Polisher
|
|
19
21
|
end
|
20
22
|
|
21
23
|
it "returns versions" do
|
24
|
+
described_class.should_receive(:require_cmd!).and_return(true)
|
22
25
|
result = AwesomeSpawn::CommandResult.new "", "Version: 1.0.0", "", 0
|
23
26
|
AwesomeSpawn.should_receive(:run).and_return(result)
|
24
27
|
described_class.version_for("rails") == '1.0.0'
|
25
28
|
end
|
26
29
|
|
27
30
|
it "invokes block with versions" do
|
31
|
+
described_class.should_receive(:require_cmd!).and_return(true)
|
32
|
+
|
28
33
|
cb = proc {}
|
29
34
|
cb.should_receive(:call).with(:yum, 'rails', ['1.0.0'])
|
30
35
|
|