sprinkle 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/CHANGELOG.md +18 -14
  2. data/Gemfile.lock +11 -11
  3. data/lib/sprinkle.rb +19 -9
  4. data/lib/sprinkle/actors/capistrano.rb +2 -1
  5. data/lib/sprinkle/actors/dummy.rb +3 -3
  6. data/lib/sprinkle/actors/local.rb +7 -9
  7. data/lib/sprinkle/actors/ssh.rb +5 -5
  8. data/lib/sprinkle/deployment.rb +2 -1
  9. data/lib/sprinkle/extensions/sudo.rb +8 -4
  10. data/lib/sprinkle/installers/installer.rb +48 -37
  11. data/lib/sprinkle/installers/npm.rb +31 -30
  12. data/lib/sprinkle/installers/source.rb +6 -6
  13. data/lib/sprinkle/installers/user.rb +7 -6
  14. data/lib/sprinkle/package.rb +55 -51
  15. data/lib/sprinkle/package/chooser.rb +5 -4
  16. data/lib/sprinkle/package/rendering.rb +2 -2
  17. data/lib/sprinkle/policy.rb +13 -13
  18. data/lib/sprinkle/script.rb +5 -1
  19. data/lib/sprinkle/verify.rb +1 -0
  20. data/lib/sprinkle/version.rb +1 -1
  21. data/spec/spec_helper.rb +13 -7
  22. data/spec/sprinkle/actors/capistrano_spec.rb +18 -18
  23. data/spec/sprinkle/actors/local_spec.rb +3 -3
  24. data/spec/sprinkle/deployment_spec.rb +3 -3
  25. data/spec/sprinkle/installers/apt_spec.rb +1 -1
  26. data/spec/sprinkle/installers/binary_spec.rb +1 -1
  27. data/spec/sprinkle/installers/brew_spec.rb +1 -1
  28. data/spec/sprinkle/installers/bsd_port_spec.rb +1 -1
  29. data/spec/sprinkle/installers/file_spec.rb +9 -9
  30. data/spec/sprinkle/installers/freebsd_pkg_spec.rb +1 -1
  31. data/spec/sprinkle/installers/freebsd_portinstall_spec.rb +1 -1
  32. data/spec/sprinkle/installers/gem_spec.rb +1 -1
  33. data/spec/sprinkle/installers/installer_spec.rb +62 -25
  34. data/spec/sprinkle/installers/mac_port_spec.rb +1 -1
  35. data/spec/sprinkle/installers/npm_spec.rb +1 -1
  36. data/spec/sprinkle/installers/openbsd_pkg_spec.rb +1 -1
  37. data/spec/sprinkle/installers/opensolaris_pkg_spec.rb +1 -1
  38. data/spec/sprinkle/installers/pear_spec.rb +1 -1
  39. data/spec/sprinkle/installers/push_text_spec.rb +12 -12
  40. data/spec/sprinkle/installers/rake_spec.rb +1 -1
  41. data/spec/sprinkle/installers/replace_text_spec.rb +10 -10
  42. data/spec/sprinkle/installers/rpm_spec.rb +1 -1
  43. data/spec/sprinkle/installers/runner_spec.rb +9 -9
  44. data/spec/sprinkle/installers/smart_spec.rb +1 -1
  45. data/spec/sprinkle/installers/source_spec.rb +22 -27
  46. data/spec/sprinkle/installers/thor_spec.rb +1 -1
  47. data/spec/sprinkle/installers/transfer_spec.rb +35 -35
  48. data/spec/sprinkle/installers/user_spec.rb +13 -7
  49. data/spec/sprinkle/installers/yum_spec.rb +1 -1
  50. data/spec/sprinkle/installers/zypper_spec.rb +1 -1
  51. data/spec/sprinkle/package/package_repository_spec.rb +7 -7
  52. data/spec/sprinkle/package_spec.rb +58 -58
  53. data/spec/sprinkle/policy_spec.rb +20 -20
  54. data/spec/sprinkle/script_spec.rb +1 -1
  55. data/spec/sprinkle/verify_spec.rb +2 -2
  56. metadata +2 -2
@@ -4,11 +4,11 @@ describe Sprinkle::Installers::Installer do
4
4
  include Sprinkle::Deployment
5
5
 
6
6
  before do
7
- @package = mock(Sprinkle::Package, :name => 'package')
7
+ @package = double(Sprinkle::Package, :name => 'package', :sudo? => false)
8
8
  @empty = Proc.new { }
9
9
  @sequence = ['op1', 'op2']
10
- @delivery = mock(Sprinkle::Deployment, :process => true, :install => true,
11
- :sudo_command => "sudo")
10
+ @delivery = double(Sprinkle::Deployment, :process => true, :install => true,
11
+ :sudo_command => "sudo", :sudo? => false)
12
12
  @installer = create_installer
13
13
  @installer.delivery = @delivery
14
14
  @roles = []
@@ -20,7 +20,7 @@ describe Sprinkle::Installers::Installer do
20
20
 
21
21
  def create_installer(&block)
22
22
  installer = Sprinkle::Installers::Installer.new @package, &block
23
- installer.stub!(:puts).and_return
23
+ installer.stub(:puts).and_return
24
24
 
25
25
  # this is actually an abstract class so we'll insert a few fake install sequences
26
26
  class << installer
@@ -69,7 +69,7 @@ describe Sprinkle::Installers::Installer do
69
69
 
70
70
  before do
71
71
  Sprinkle::OPTIONS[:testing] = true
72
- @logger = mock(:debug => true, :debug? => true)
72
+ @logger = double(:debug => true, :debug? => true)
73
73
  end
74
74
 
75
75
  it 'should not invoke the delivery mechanism with the install sequence' do
@@ -81,37 +81,75 @@ describe Sprinkle::Installers::Installer do
81
81
  end
82
82
 
83
83
  end
84
-
84
+
85
+ describe "with sudo from actor level" do
86
+ before do
87
+ @installer = Sprinkle::Installers::Installer.new @package
88
+ @installer.package = double(Sprinkle::Package, :name => 'package', :sudo? => nil)
89
+ @installer.delivery = double(Sprinkle::Deployment, :process => true, :install => true,
90
+ :sudo_command => "sudo -p blah", :sudo? => true)
91
+ end
92
+
93
+ it "should know it uses sudo" do
94
+ @installer.sudo?.should == true
95
+ end
96
+
97
+ it "should offer up the sudo command" do
98
+ @installer.sudo_cmd.should =~ /sudo /
99
+ end
100
+
101
+ end
102
+
85
103
  describe "with sudo from package level" do
86
104
  before do
87
- @installer.package = mock(Sprinkle::Package, :name => 'package', :sudo? => true)
105
+ @installer.package = double(Sprinkle::Package, :name => 'package', :sudo? => true)
88
106
  end
89
-
107
+
90
108
  it "should know it uses sudo" do
91
109
  @installer.sudo?.should == true
92
110
  end
93
-
111
+
94
112
  it "should offer up the sudo command" do
95
113
  @installer.sudo_cmd.should =~ /sudo /
96
- end
114
+ end
97
115
  end
98
-
116
+
117
+ describe "with sudo false" do
118
+ before do
119
+ @installer = Sprinkle::Installers::Installer.new @package, :sudo => false
120
+ @installer.package = double(Sprinkle::Package, :name => 'package', :sudo? => true)
121
+ @installer.delivery = @delivery
122
+ end
123
+
124
+ it "should override package sudo true" do
125
+ @installer.sudo?.should == false
126
+ @installer.sudo_cmd.should_not =~ /sudo /
127
+ end
128
+
129
+ it "should override delivery sudo true" do
130
+ @installer.package = double(Sprinkle::Package, :name => 'package', :sudo? => nil)
131
+ @installer.delivery = double(Sprinkle::Deployment, :process => true, :install => true,
132
+ :sudo_command => "sudo ", :sudo? => true)
133
+ end
134
+
135
+ end
136
+
99
137
  describe "with sudo" do
100
138
  before do
101
139
  @installer = Sprinkle::Installers::Installer.new @package, :sudo => true
102
140
  @installer.delivery = @delivery
103
141
  end
104
-
142
+
105
143
  it "should use sudo command from actor" do
106
- @installer.delivery = mock(Sprinkle::Deployment, :process => true, :install => true,
107
- :sudo_command => "sudo -p blah")
108
- @installer.sudo_cmd.should =~ /sudo -p blah /
144
+ @installer.delivery = double(Sprinkle::Deployment, :process => true, :install => true,
145
+ :sudo_command => "sudo -p blah", :sudo? => false)
146
+ @installer.sudo_cmd.should =~ /sudo -p blah /
109
147
  end
110
-
148
+
111
149
  it "should know it uses sudo" do
112
150
  @installer.sudo?.should == true
113
151
  end
114
-
152
+
115
153
  it "should offer up the sudo command" do
116
154
  @installer.sudo_cmd.should =~ /sudo /
117
155
  end
@@ -122,25 +160,24 @@ describe Sprinkle::Installers::Installer do
122
160
  @delivery.should_receive(:install).with(@installer, @roles, :per_host => false)
123
161
  end
124
162
  end
125
-
163
+
126
164
  describe "with a pre command" do
127
-
128
165
  def create_installer_with_pre_command(cmd = nil, &block)
129
166
  installer = Sprinkle::Installers::Installer.new @package do
130
167
  pre :install, cmd if cmd
131
-
168
+
132
169
  def install_commands
133
170
  ["installer"]
134
- end
171
+ end
135
172
  end
136
- installer.instance_eval &block if block
137
- installer.stub!(:puts).and_return
173
+ installer.instance_eval(&block) if block
174
+ installer.stub(:puts).and_return
138
175
  installer.delivery = @delivery
139
176
  installer
140
177
  end
141
178
  before do
142
179
  @installer = create_installer_with_pre_command('run')
143
- @package.stub!(:installers).and_return []
180
+ @package.stub(:installers).and_return []
144
181
  end
145
182
  describe "string commands" do
146
183
  it "should insert the pre command for the specific package in the installation process" do
@@ -164,7 +201,7 @@ describe Sprinkle::Installers::Installer do
164
201
  end
165
202
  end
166
203
  describe "blocks as commands" do
167
- before(:each) do
204
+ before(:each) do
168
205
  @package = Package.new("package") do; end
169
206
  @installer = create_installer_with_pre_command do
170
207
  pre :install do
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::MacPort do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package')
6
+ @package = double(Sprinkle::Package, :name => 'package')
7
7
  end
8
8
 
9
9
  def create_port(ports, &block)
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Npm do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'spec')
6
+ @package = double(Sprinkle::Package, :name => 'spec')
7
7
  @installer = Sprinkle::Installers::Npm.new(@package, 'spec')
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::OpenbsdPkg do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package')
6
+ @package = double(Sprinkle::Package, :name => 'package')
7
7
  end
8
8
 
9
9
  def create_pkg(pkgs, &block)
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::OpensolarisPkg do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package')
6
+ @package = double(Sprinkle::Package, :name => 'package')
7
7
  end
8
8
 
9
9
  def create_pkg(pkgs, &block)
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Pear do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'spec')
6
+ @package = double(Sprinkle::Package, :name => 'spec')
7
7
  @installer = Sprinkle::Installers::Pear.new(@package, 'spec')
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::PushText do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package', :sudo? => false)
6
+ @package = double(Sprinkle::Package, :name => 'package', :sudo? => false)
7
7
  @options = {:sudo => true}
8
8
  end
9
9
 
@@ -17,8 +17,8 @@ describe Sprinkle::Installers::PushText do
17
17
 
18
18
  it 'should accept a single package to install' do
19
19
  @installer = create_text 'crazy-configuration-methods', '/etc/doomed/file.conf'
20
- @installer.text.should == 'crazy-configuration-methods'
21
- @installer.path.should == '/etc/doomed/file.conf'
20
+ @installer.text.should eq 'crazy-configuration-methods'
21
+ @installer.path.should eq '/etc/doomed/file.conf'
22
22
  end
23
23
 
24
24
  end
@@ -39,7 +39,7 @@ describe Sprinkle::Installers::PushText do
39
39
  @install_commands = @installer.send :install_commands
40
40
  end
41
41
  it "should grep for existing of the string" do
42
- @install_commands.should == %q<grep -qPzo '^another\-hair\-brained\-idea$' /dev/mind/late-night || /bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night>
42
+ @install_commands.should eq %q<grep -qPzo '^another\-hair\-brained\-idea$' /dev/mind/late-night || /bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night>
43
43
  end
44
44
  end
45
45
 
@@ -54,7 +54,7 @@ MULTI
54
54
  @install_commands = @installer.send :install_commands
55
55
  end
56
56
  it "should grep for existence of the string" do
57
- @install_commands.should == %q<grep -qPzo '^\^search\(\ \[adnor\]\{2,3\}\ rescue\)\?\$\n\^fries\(\ \[adnor\]\{2,3\}\ barbecue\)\?\n\^songs\(\ \[adnor\]\{2,3\}\ autocue\)\?$' /dev/mind/late-night || /bin/echo -e '^search( [adnor]{2,3} rescue)?$\n^fries( [adnor]{2,3} barbecue)?\n^songs( [adnor]{2,3} autocue)?' |tee -a /dev/mind/late-night>
57
+ @install_commands.should eq %q<grep -qPzo '^\^search\(\ \[adnor\]\{2,3\}\ rescue\)\?\$\n\^fries\(\ \[adnor\]\{2,3\}\ barbecue\)\?\n\^songs\(\ \[adnor\]\{2,3\}\ autocue\)\?$' /dev/mind/late-night || /bin/echo -e '^search( [adnor]{2,3} rescue)?$\n^fries( [adnor]{2,3} barbecue)?\n^songs( [adnor]{2,3} autocue)?' |tee -a /dev/mind/late-night>
58
58
  end
59
59
  end
60
60
 
@@ -64,16 +64,16 @@ MULTI
64
64
  @install_commands = @installer.send :install_commands
65
65
  end
66
66
  it 'should invoke sudo if sudo option passed' do
67
- @install_commands.should == %q[/bin/echo -e 'another-hair-brained-idea' |sudo tee -a /dev/mind/late-night]
67
+ @install_commands.should eq %q[/bin/echo -e 'another-hair-brained-idea' |sudo tee -a /dev/mind/late-night]
68
68
  end
69
69
  end
70
70
 
71
71
  it 'should invoke the push text installer for all specified packages' do
72
- @install_commands.should == %q[/bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night]
72
+ @install_commands.should eq %q[/bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night]
73
73
  end
74
74
 
75
75
  it 'should automatically insert pre/post commands for the specified package' do
76
- @installer.send(:install_sequence).should == [ 'op1', "/bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night", 'op2' ]
76
+ @installer.send(:install_sequence).should eq [ 'op1', "/bin/echo -e 'another-hair-brained-idea' |tee -a /dev/mind/late-night", 'op2' ]
77
77
  end
78
78
 
79
79
  end
@@ -85,7 +85,7 @@ MULTI
85
85
  end
86
86
 
87
87
  it "should invoke the push installer with sudo" do
88
- @install_commands.should == %q[/bin/echo -e 'a special user' |sudo tee -a /dev/mind/the-day-after]
88
+ @install_commands.should eq %q[/bin/echo -e 'a special user' |sudo tee -a /dev/mind/the-day-after]
89
89
  end
90
90
  end
91
91
 
@@ -94,13 +94,13 @@ MULTI
94
94
  it "should not escape an ampersand" do
95
95
  @installer = create_text "bob & lucy", "/dev/mind/the-day-after"
96
96
  @install_commands = @installer.send :install_commands
97
- @install_commands.should == %q[/bin/echo -e 'bob & lucy' |tee -a /dev/mind/the-day-after]
97
+ @install_commands.should eq %q[/bin/echo -e 'bob & lucy' |tee -a /dev/mind/the-day-after]
98
98
  end
99
99
 
100
100
  it "should not escape a slash" do
101
101
  @installer = create_text "bob/lucy", "/dev/mind/the-day-after"
102
102
  @install_commands = @installer.send :install_commands
103
- @install_commands.should == %q[/bin/echo -e 'bob/lucy' |tee -a /dev/mind/the-day-after]
103
+ @install_commands.should eq %q[/bin/echo -e 'bob/lucy' |tee -a /dev/mind/the-day-after]
104
104
  end
105
105
  end
106
106
 
@@ -111,7 +111,7 @@ MULTI
111
111
  end
112
112
 
113
113
  it "should correctly encode the single quote character" do
114
- @install_commands.should == %q[/bin/echo -e 'I'\''m a string with a single quote' |tee -a /dev/mind/the-day-after]
114
+ @install_commands.should eq %q[/bin/echo -e 'I'\''m a string with a single quote' |tee -a /dev/mind/the-day-after]
115
115
  end
116
116
  end
117
117
 
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Rake do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'spec')
6
+ @package = double(Sprinkle::Package, :name => 'spec')
7
7
  end
8
8
 
9
9
  def create_rake(names, options = {}, &block)
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::ReplaceText do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package', :sudo? => false)
6
+ @package = double(Sprinkle::Package, :name => 'package', :sudo? => false)
7
7
  end
8
8
 
9
9
  def create_replacement_text(regex, text, path, options={}, &block)
@@ -14,16 +14,16 @@ describe Sprinkle::Installers::ReplaceText do
14
14
 
15
15
  it 'should accept text to replace, replacement, and path' do
16
16
  @installer = create_replacement_text 'text_to_replace', 'new_text', '/etc/example/foo.conf'
17
- @installer.regex.should == 'text_to_replace'
18
- @installer.text.should == 'new_text'
19
- @installer.path.should == '/etc/example/foo.conf'
17
+ @installer.regex.should eq 'text_to_replace'
18
+ @installer.text.should eq 'new_text'
19
+ @installer.path.should eq '/etc/example/foo.conf'
20
20
  end
21
21
 
22
22
  it 'should not escape original search string and replacement' do
23
23
  @installer = create_replacement_text "some option with 'quotes' & ampersand", "other 'quotes' & ampersand", '/etc/example/foo.conf'
24
- @installer.regex.should == %q[some option with 'quotes' & ampersand]
25
- @installer.text.should == %q[other 'quotes' & ampersand]
26
- @installer.path.should == '/etc/example/foo.conf'
24
+ @installer.regex.should eq %q[some option with 'quotes' & ampersand]
25
+ @installer.text.should eq %q[other 'quotes' & ampersand]
26
+ @installer.path.should eq '/etc/example/foo.conf'
27
27
  end
28
28
 
29
29
  end
@@ -39,16 +39,16 @@ describe Sprinkle::Installers::ReplaceText do
39
39
  end
40
40
 
41
41
  it 'should invoke the replace text installer for all specified packages' do
42
- @install_commands.should == %q[sed -i 's/bad option/super option/g' /etc/brand/new.conf]
42
+ @install_commands.should eq %q[sed -i 's/bad option/super option/g' /etc/brand/new.conf]
43
43
  end
44
44
 
45
45
  it 'should automatically insert pre/post commands for the specified package' do
46
- @installer.send(:install_sequence).should == [ 'op1', "sed -i 's/bad option/super option/g' /etc/brand/new.conf", 'op2' ]
46
+ @installer.send(:install_sequence).should eq [ 'op1', "sed -i 's/bad option/super option/g' /etc/brand/new.conf", 'op2' ]
47
47
  end
48
48
 
49
49
  it 'should correctly escape search string and replacement' do
50
50
  installer = create_replacement_text "some option with 'quotes' & ampersand", "other 'quotes' & ampersand", '/etc/example/foo.conf'
51
- installer.send(:install_commands).should == "sed -i 's/some option with '\\''quotes'\\'' \\& ampersand/other '\\''quotes'\\'' \\& ampersand/g' /etc/example/foo.conf"
51
+ installer.send(:install_commands).should eq "sed -i 's/some option with '\\''quotes'\\'' \\& ampersand/other '\\''quotes'\\'' \\& ampersand/g' /etc/example/foo.conf"
52
52
  end
53
53
  end
54
54
 
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Rpm do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package')
6
+ @package = double(Sprinkle::Package, :name => 'package')
7
7
  end
8
8
 
9
9
  def create_rpm(debs, &block)
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Runner do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package', :sudo? => false)
6
+ @package = double(Sprinkle::Package, :name => 'package', :sudo? => false)
7
7
  end
8
8
 
9
9
  def create_runner(*cmds)
@@ -14,13 +14,13 @@ describe Sprinkle::Installers::Runner do
14
14
  describe 'when created' do
15
15
  it 'should accept a single cmd to run' do
16
16
  @installer = create_runner 'teste'
17
- @installer.cmds.should == ['teste']
17
+ @installer.cmds.should eq ['teste']
18
18
  end
19
19
 
20
20
  it 'should accept an array of commands to run' do
21
21
  @installer = create_runner ['teste', 'world']
22
- @installer.cmds.should == ['teste', 'world']
23
- @installer.install_sequence.should == ['teste', 'world']
22
+ @installer.cmds.should eq ['teste', 'world']
23
+ @installer.install_sequence.should eq ['teste', 'world']
24
24
  end
25
25
  end
26
26
 
@@ -29,7 +29,7 @@ describe Sprinkle::Installers::Runner do
29
29
  it 'should use sudo if specified locally' do
30
30
  @installer = create_runner 'teste', :sudo => true
31
31
  @install_commands = @installer.send :install_commands
32
- @install_commands.should == ['sudo teste']
32
+ @install_commands.should eq ['sudo teste']
33
33
  end
34
34
 
35
35
  it "should accept env options and convert to uppercase" do
@@ -42,8 +42,8 @@ describe Sprinkle::Installers::Runner do
42
42
  @install_commands = @installer.send :install_commands
43
43
  command_parts = @install_commands.first.split(/ /)
44
44
 
45
- command_parts.shift.should == 'env'
46
- command_parts.pop.should == 'command1'
45
+ command_parts.shift.should eq 'env'
46
+ command_parts.pop.should eq 'command1'
47
47
 
48
48
  command_parts.should =~ ['PATH=/some/path', 'USER=deploy', 'Z=foo', 'A=bar']
49
49
 
@@ -52,13 +52,13 @@ describe Sprinkle::Installers::Runner do
52
52
  it "should accept multiple commands" do
53
53
  @installer = create_runner 'teste', 'test2'
54
54
  @install_commands = @installer.send :install_commands
55
- @install_commands.should == ['teste','test2']
55
+ @install_commands.should eq ['teste','test2']
56
56
  end
57
57
 
58
58
  it 'should run the given command for all specified packages' do
59
59
  @installer = create_runner 'teste'
60
60
  @install_commands = @installer.send :install_commands
61
- @install_commands.should == ['teste']
61
+ @install_commands.should eq ['teste']
62
62
  end
63
63
  end
64
64
  end
@@ -3,7 +3,7 @@ require File.expand_path("../../spec_helper", File.dirname(__FILE__))
3
3
  describe Sprinkle::Installers::Smart do
4
4
 
5
5
  before do
6
- @package = mock(Sprinkle::Package, :name => 'package')
6
+ @package = double(Sprinkle::Package, :name => 'package')
7
7
  end
8
8
 
9
9
  def create_smart(pkgs, &block)
@@ -35,7 +35,7 @@ describe Sprinkle::Installers::Source do
35
35
  end
36
36
 
37
37
  def create_source(source, version = nil, &block)
38
- @package = mock(Sprinkle::Package, :name => 'package', :version => version,
38
+ @package = double(Sprinkle::Package, :name => 'package', :version => version,
39
39
  :installer_methods => [])
40
40
 
41
41
  Sprinkle::Installers::Source.new(@package, source, &block)
@@ -44,7 +44,7 @@ describe Sprinkle::Installers::Source do
44
44
  describe 'when created' do
45
45
 
46
46
  it 'should accept a source archive name to install' do
47
- @installer.source.should == @source
47
+ @installer.source.should eq @source
48
48
  end
49
49
 
50
50
  end
@@ -77,35 +77,35 @@ describe Sprinkle::Installers::Source do
77
77
  describe 'customized configuration' do
78
78
 
79
79
  it 'should support specification of "enable" options' do
80
- @installer.enable.should == %w( headers ssl deflate so )
80
+ @installer.enable.should eq %w( headers ssl deflate so )
81
81
  end
82
82
 
83
83
  it 'should support specification of "disable" options' do
84
- @installer.disable.should == %w( cache proxy rewrite )
84
+ @installer.disable.should eq %w( cache proxy rewrite )
85
85
  end
86
86
 
87
87
  it 'should support specification of "with" options' do
88
- @installer.with.should == %w( debug extras )
88
+ @installer.with.should eq %w( debug extras )
89
89
  end
90
90
 
91
91
  it 'should support specification of "without" options' do
92
- @installer.without.should == %w( fancyisms pandas )
92
+ @installer.without.should eq %w( fancyisms pandas )
93
93
  end
94
94
 
95
95
  it 'should support specification of "option" options' do
96
- @installer.option.should == %w( foo bar baz )
96
+ @installer.option.should eq %w( foo bar baz )
97
97
  end
98
98
 
99
99
  it 'should support customized build area' do
100
- @installer.prefix.should == '/usr/local'
100
+ @installer.prefix.should eq '/usr/local'
101
101
  end
102
102
 
103
103
  it 'should support customized source area' do
104
- @installer.archives.should == '/usr/local/archives'
104
+ @installer.archives.should eq '/usr/local/archives'
105
105
  end
106
106
 
107
107
  it 'should support customized install area' do
108
- @installer.builds.should == '/usr/local/builds'
108
+ @installer.builds.should eq '/usr/local/builds'
109
109
  end
110
110
  end
111
111
 
@@ -116,8 +116,7 @@ describe Sprinkle::Installers::Source do
116
116
  end
117
117
 
118
118
  it "should prepare the build, installation and source archives area with correct paths" do
119
- @installer.send(:prepare).should ==
120
- [
119
+ @installer.send(:prepare).should eq [
121
120
  'mkdir -p /usr/local',
122
121
  'mkdir -p /usr/local/builds',
123
122
  'mkdir -p /usr/local/archives'
@@ -129,8 +128,7 @@ describe Sprinkle::Installers::Source do
129
128
  end
130
129
 
131
130
  it 'should download the source archive to the correct path' do
132
- @installer.send(:download).should ==
133
- [
131
+ @installer.send(:download).should eq [
134
132
  "wget -cq -O '/usr/local/archives/#{@source.split('/').last}' #{@source}"
135
133
  ]
136
134
  end
@@ -140,8 +138,7 @@ describe Sprinkle::Installers::Source do
140
138
  end
141
139
 
142
140
  it 'should extract the source to the correct path' do
143
- @installer.send(:extract).should ==
144
- [
141
+ @installer.send(:extract).should eq [
145
142
  "bash -c 'cd /usr/local/builds && tar xzf /usr/local/archives/ruby-1.8.6-p111.tar.gz'"
146
143
  ]
147
144
  end
@@ -177,8 +174,7 @@ describe Sprinkle::Installers::Source do
177
174
  end
178
175
 
179
176
  it 'should build the source in the correct build path' do
180
- @installer.send(:build).should ==
181
- [
177
+ @installer.send(:build).should eq [
182
178
  "bash -c 'cd /usr/local/builds/#{@filename} && make > #{@package.name}-build.log 2>&1'"
183
179
  ]
184
180
  end
@@ -188,8 +184,7 @@ describe Sprinkle::Installers::Source do
188
184
  end
189
185
 
190
186
  it 'should install the source from the correct build path' do
191
- @installer.send(:install).should ==
192
- [
187
+ @installer.send(:install).should eq [
193
188
  "bash -c 'cd /usr/local/builds/#{@filename} && make install > #{@package.name}-install.log 2>&1'"
194
189
  ]
195
190
  end
@@ -237,9 +232,9 @@ describe Sprinkle::Installers::Source do
237
232
  end
238
233
 
239
234
  it 'should store the custom commands' do
240
- @installer.options[:configure_command].should == './custom-configure'
241
- @installer.options[:build_command].should == 'custom-make'
242
- @installer.options[:install_command].should == 'custom-make install'
235
+ @installer.options[:configure_command].should eq './custom-configure'
236
+ @installer.options[:build_command].should eq 'custom-make'
237
+ @installer.options[:install_command].should eq 'custom-make install'
243
238
  end
244
239
 
245
240
  it 'should use the custom commands' do
@@ -261,7 +256,7 @@ describe Sprinkle::Installers::Source do
261
256
  end
262
257
 
263
258
  it 'should store the custom install commands' do
264
- @installer.options[:custom_install].first.should == 'ruby setup.rb'
259
+ @installer.options[:custom_install].first.should eq 'ruby setup.rb'
265
260
  end
266
261
 
267
262
  it 'should identify as having a custom install command' do
@@ -295,7 +290,7 @@ describe Sprinkle::Installers::Source do
295
290
  end
296
291
 
297
292
  it 'should store the custom build dir path' do
298
- @installer.options[:custom_dir].should == 'test'
293
+ @installer.options[:custom_dir].should eq 'test'
299
294
  end
300
295
 
301
296
  end
@@ -424,7 +419,7 @@ describe Sprinkle::Installers::Source do
424
419
  end
425
420
 
426
421
  after do
427
- @installer.send(:extract_command).should == @extraction
422
+ @installer.send(:extract_command).should eq @extraction
428
423
  end
429
424
 
430
425
  end
@@ -435,7 +430,7 @@ describe Sprinkle::Installers::Source do
435
430
 
436
431
  it "should recognize #{archive} style archives" do
437
432
  @installer.source = "blah.#{archive}"
438
- @installer.send(:base_dir).should == 'blah'
433
+ @installer.send(:base_dir).should eq 'blah'
439
434
  end
440
435
 
441
436
  end