plow 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,175 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe Plow::Dependencies do
5
+
6
+ ##################################################################################################
7
+
8
+ describe "class constant and variable defaults" do
9
+ it "required ruby version should be correct" do
10
+ Plow::Dependencies::REQUIRED_RUBY_VERSION.should == '1.9.1'
11
+ end
12
+
13
+ it "development gem names and versions should be correct" do
14
+ expected = {
15
+ :jeweler => '1.3.0',
16
+ :rspec => '1.2.9',
17
+ :yard => '0.4.0',
18
+ :bluecloth => '2.0.5'
19
+ }
20
+
21
+ Plow::Dependencies::DEVELOPMENT_GEMS.should == expected
22
+ end
23
+
24
+ it "file name to gem name look-up table should be correct" do
25
+ expected = {
26
+ :spec => :rspec
27
+ }
28
+ Plow::Dependencies::FILE_NAME_TO_GEM_NAME.should == expected
29
+ end
30
+
31
+ it "warnings cache should be empty" do
32
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should be_empty
33
+ end
34
+ end
35
+
36
+ ##################################################################################################
37
+
38
+ describe '.check_ruby_version (private)' do
39
+ before(:each) do
40
+ $stderr = StringIO.new
41
+ end
42
+
43
+ after(:each) do
44
+ $stderr = STDERR
45
+ end
46
+
47
+ def expected_message(version)
48
+ @expected_message = <<-ERROR
49
+ This library requires Ruby 1.9.1, but you're using #{version}.
50
+ Please visit http://www.ruby-lang.org/ for installation instructions.
51
+ ERROR
52
+ end
53
+
54
+ it "should abort for ruby 1.8.6" do
55
+ version = '1.8.6'
56
+ lambda { Plow::Dependencies.send(:check_ruby_version, version) }.should raise_error(SystemExit, expected_message(version))
57
+ end
58
+
59
+ it "should abort for ruby 1.8.7" do
60
+ version = '1.8.7'
61
+ lambda { Plow::Dependencies.send(:check_ruby_version, version) }.should raise_error(SystemExit, expected_message(version))
62
+ end
63
+
64
+ it "should abort for ruby 1.9.0" do
65
+ version = '1.9.0'
66
+ lambda { Plow::Dependencies.send(:check_ruby_version, version) }.should raise_error(SystemExit, expected_message(version))
67
+ end
68
+
69
+ it "should not abort for ruby 1.9.1" do
70
+ version = '1.9.1'
71
+ lambda { Plow::Dependencies.send(:check_ruby_version, version) }.should_not raise_error(SystemExit, expected_message(version))
72
+ end
73
+
74
+ it "should abort for ruby 1.9.2" do
75
+ version = '1.9.2'
76
+ lambda { Plow::Dependencies.send(:check_ruby_version, version) }.should raise_error(SystemExit, expected_message(version))
77
+ end
78
+ end
79
+
80
+ ##################################################################################################
81
+
82
+ describe '.destroy_warnings' do
83
+ it "should empty the warnings cache" do
84
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should be_empty
85
+
86
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- jeweler"))
87
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should_not be_empty
88
+
89
+ Plow::Dependencies.destroy_warnings
90
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should be_empty
91
+ end
92
+ end
93
+
94
+ ##################################################################################################
95
+
96
+ describe '.create_warning_for' do
97
+ after(:each) do
98
+ Plow::Dependencies.destroy_warnings
99
+ end
100
+
101
+ it "should create and cache one warning from a known development gem dependency" do
102
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- jeweler"))
103
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should == ["jeweler --version '1.3.0'"]
104
+ end
105
+
106
+ it "should create and cache warnings from all known development gem dependencies" do
107
+ Plow::Dependencies::DEVELOPMENT_GEMS.each_key do |file_name|
108
+ gem_name = if Plow::Dependencies::FILE_NAME_TO_GEM_NAME.has_key?(file_name)
109
+ Plow::Dependencies::FILE_NAME_TO_GEM_NAME[file_name]
110
+ else
111
+ file_name
112
+ end
113
+ load_error = LoadError.new("no such file to load -- #{gem_name}")
114
+ Plow::Dependencies.create_warning_for(load_error)
115
+ end
116
+
117
+ expected = [
118
+ "jeweler --version '1.3.0'",
119
+ "rspec --version '1.2.9'",
120
+ "yard --version '0.4.0'",
121
+ "bluecloth --version '2.0.5'"
122
+ ]
123
+ Plow::Dependencies.class_variable_get(:@@warnings_cache).should == expected
124
+ end
125
+
126
+ it "should raise an exception when creating a warning from an unknown development gem dependency" do
127
+ lambda { Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- _fakegem")) }.should raise_error(RuntimeError, "Cannot create a dependency warning for unknown development gem -- _fakegem")
128
+ end
129
+ end
130
+
131
+ ##################################################################################################
132
+
133
+ describe '.render_warnings' do
134
+ before(:each) do
135
+ $stdout = StringIO.new
136
+ end
137
+
138
+ after(:each) do
139
+ $stdout = STDOUT
140
+ end
141
+
142
+ it "should display a warning message to the user on the standard output channel" do
143
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- jeweler"))
144
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- spec"))
145
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- yard"))
146
+ Plow::Dependencies.create_warning_for(LoadError.new("no such file to load -- bluecloth"))
147
+ Plow::Dependencies.render_warnings
148
+ $stdout.string.should == <<-MESSAGE
149
+
150
+ The following development gem dependencies could not be found. Without them, some available development features are missing:
151
+ jeweler --version '1.3.0'
152
+ rspec --version '1.2.9'
153
+ yard --version '0.4.0'
154
+ bluecloth --version '2.0.5'
155
+ MESSAGE
156
+ end
157
+
158
+ it "should not display a warning message to the user if there are no warnings in the cache" do
159
+ Plow::Dependencies.destroy_warnings
160
+ Plow::Dependencies.render_warnings
161
+ $stdout.string.should == ''
162
+ end
163
+ end
164
+
165
+ ##################################################################################################
166
+
167
+ describe '.warn_at_exit' do
168
+ it 'should ensure Kernel#at_exit is invoked with a block' do
169
+ Plow::Dependencies.should_receive(:at_exit)
170
+ # TODO how to specify that #at_exit receives a block?
171
+ # maybe i can intercept the block, execute it and test the output?
172
+ Plow::Dependencies.warn_at_exit
173
+ end
174
+ end
175
+ end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'spec_helper'
3
3
 
4
4
  describe "Custom Application Errors" do
5
5
  it "Plow::NonRootProcessOwnerError should be a kind of StandardError" do
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+ require 'spec_helper'
3
3
 
4
4
  describe Plow::Generator do
5
5
 
@@ -50,8 +50,8 @@ describe Plow::Generator do
50
50
  @generator.site_aliases.should == []
51
51
  end
52
52
 
53
- it "should set strategy to an instance of Plow::Strategy::UbuntuHardy::UserHomeWebApp" do
54
- @generator.strategy.should be_an_instance_of(Plow::Strategy::UbuntuHardy::UserHomeWebApp)
53
+ it "should set strategy to an instance of Plow::Strategy::UbuntuHardy" do
54
+ @generator.strategy.should be_an_instance_of(Plow::Strategy::UbuntuHardy)
55
55
  end
56
56
  end
57
57
 
@@ -74,8 +74,8 @@ describe Plow::Generator do
74
74
  @generator.site_aliases.should == ['apple.com']
75
75
  end
76
76
 
77
- it "should set strategy to an instance of Plow::Strategy::UbuntuHardy::UserHomeWebApp" do
78
- @generator.strategy.should be_an_instance_of(Plow::Strategy::UbuntuHardy::UserHomeWebApp)
77
+ it "should set strategy to an instance of Plow::Strategy::UbuntuHardy" do
78
+ @generator.strategy.should be_an_instance_of(Plow::Strategy::UbuntuHardy)
79
79
  end
80
80
  end
81
81
 
@@ -91,7 +91,7 @@ describe Plow::Generator do
91
91
  it "should execute the strategy when process is owned by root user" do
92
92
  Process.stub!(:uid).and_return(0)
93
93
  generator = Plow::Generator.new('steve', 'www.apple.com', 'apple.com')
94
- generator.strategy.should_receive(:execute)
94
+ generator.strategy.should_receive(:execute!)
95
95
  generator.run!
96
96
  end
97
97
  end
@@ -1,12 +1,12 @@
1
1
  # encoding: UTF-8
2
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
+ require 'spec_helper'
3
3
 
4
4
  require 'tempfile'
5
5
 
6
- describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
6
+ describe Plow::Strategy::UbuntuHardy do
7
7
  before(:each) do
8
8
  @context = Plow::Generator.new('steve', 'www.apple.com', 'apple.com')
9
- @strategy = Plow::Strategy::UbuntuHardy::UserHomeWebApp.new(@context)
9
+ @strategy = Plow::Strategy::UbuntuHardy.new(@context)
10
10
 
11
11
  @parsed_users_fixture = [
12
12
  { name: "root", password: "x", id: 0, group_id: 0, info: "root", home_path: "/root", shell_path: "/bin/bash" },
@@ -60,7 +60,7 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
60
60
  end
61
61
 
62
62
  it "should set virtual host configuration template file path" do
63
- expected = File.expand_path(File.dirname(__FILE__) + '/../../../../lib/plow/strategy/ubuntu_hardy/templates/apache2-vhost.conf')
63
+ expected = File.expand_path(File.dirname(__FILE__) + '/../../../lib/plow/strategy/ubuntu_hardy/templates/apache2-vhost.conf')
64
64
  @strategy.vhost_template_file_path.should == expected
65
65
  end
66
66
  end
@@ -122,10 +122,10 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
122
122
 
123
123
  ##################################################################################################
124
124
 
125
- describe '#create_user (private)' do
125
+ describe '#create_user! (private)' do
126
126
  it "should invoke a adduser as a system call" do
127
127
  @strategy.should_receive(:shell).with("adduser steve")
128
- @strategy.send(:create_user)
128
+ @strategy.send(:create_user!)
129
129
  end
130
130
  end
131
131
 
@@ -178,14 +178,14 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
178
178
 
179
179
  ##################################################################################################
180
180
 
181
- describe '#create_user_home (private)' do
181
+ describe '#create_user_home! (private)' do
182
182
  it "should create a user home with the correct ownership" do
183
183
  @strategy.stub!(:user_home_path).and_return("/home/steve")
184
184
  @strategy.should_receive(:shell).with(<<-COMMANDS)
185
- mkdir /home/steve
186
- chown steve:steve /home/steve
185
+ mkdir /home/steve
186
+ chown steve:steve /home/steve
187
187
  COMMANDS
188
- @strategy.send(:create_user_home)
188
+ @strategy.send(:create_user_home!)
189
189
  end
190
190
  end
191
191
 
@@ -215,14 +215,14 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
215
215
 
216
216
  ##################################################################################################
217
217
 
218
- describe '#create_sites_home (private)' do
218
+ describe '#create_sites_home! (private)' do
219
219
  it "should create a sites home with the correct ownership" do
220
220
  @strategy.stub!(:sites_home_path).and_return("/home/steve/sites")
221
221
  @strategy.should_receive(:shell).with(<<-COMMANDS)
222
- mkdir /home/steve/sites
223
- chown steve:steve /home/steve/sites
222
+ mkdir /home/steve/sites
223
+ chown steve:steve /home/steve/sites
224
224
  COMMANDS
225
- @strategy.send(:create_sites_home)
225
+ @strategy.send(:create_sites_home!)
226
226
  end
227
227
  end
228
228
 
@@ -252,49 +252,49 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
252
252
 
253
253
  ##################################################################################################
254
254
 
255
- describe '#create_app_root (private)' do
255
+ describe '#create_app_root! (private)' do
256
256
  it "should create an application home correctly" do
257
257
  @strategy.stub!(:app_root_path).and_return('/home/steve/sites/www.apple.com')
258
258
  @strategy.should_receive(:shell).with(<<-COMMANDS)
259
- mkdir /home/steve/sites/www.apple.com
260
- chown steve:steve /home/steve/sites/www.apple.com
259
+ mkdir /home/steve/sites/www.apple.com
260
+ chown steve:steve /home/steve/sites/www.apple.com
261
261
  COMMANDS
262
- @strategy.send(:create_app_root)
262
+ @strategy.send(:create_app_root!)
263
263
  end
264
264
  end
265
265
 
266
266
  ##################################################################################################
267
267
 
268
- describe '#create_app_public (private)' do
268
+ describe '#create_app_public! (private)' do
269
269
  it "should build an application's public files correctly" do
270
270
  @strategy.stub!(:app_public_path).and_return('/home/steve/sites/www.apple.com/public')
271
271
  @strategy.should_receive(:shell).with(<<-COMMANDS)
272
- mkdir /home/steve/sites/www.apple.com/public
273
- touch /home/steve/sites/www.apple.com/public/index.html
274
- chown -R steve:steve /home/steve/sites/www.apple.com/public
272
+ mkdir /home/steve/sites/www.apple.com/public
273
+ touch /home/steve/sites/www.apple.com/public/index.html
274
+ chown -R steve:steve /home/steve/sites/www.apple.com/public
275
275
  COMMANDS
276
- @strategy.send(:create_app_public)
276
+ @strategy.send(:create_app_public!)
277
277
  end
278
278
  end
279
279
 
280
280
  ##################################################################################################
281
281
 
282
- describe '#create_app_logs (private)' do
282
+ describe '#create_app_logs! (private)' do
283
283
  it "should build an application's log files correctly" do
284
284
  @strategy.stub!(:app_log_path).and_return('/home/steve/sites/www.apple.com/log')
285
285
  @strategy.should_receive(:shell).with(<<-COMMANDS)
286
- mkdir /home/steve/sites/www.apple.com/log
287
- mkdir /home/steve/sites/www.apple.com/log/apache2
288
- chmod 750 /home/steve/sites/www.apple.com/log/apache2
289
-
290
- touch /home/steve/sites/www.apple.com/log/apache2/access.log
291
- touch /home/steve/sites/www.apple.com/log/apache2/error.log
292
-
293
- chmod 640 /home/steve/sites/www.apple.com/log/apache2/*.log
294
- chown -R steve:steve /home/steve/sites/www.apple.com/log
295
- chown root -R /home/steve/sites/www.apple.com/log/apache2
286
+ mkdir /home/steve/sites/www.apple.com/log
287
+ mkdir /home/steve/sites/www.apple.com/log/apache2
288
+ chmod 750 /home/steve/sites/www.apple.com/log/apache2
289
+
290
+ touch /home/steve/sites/www.apple.com/log/apache2/access.log
291
+ touch /home/steve/sites/www.apple.com/log/apache2/error.log
292
+
293
+ chmod 640 /home/steve/sites/www.apple.com/log/apache2/*.log
294
+ chown -R steve:steve /home/steve/sites/www.apple.com/log
295
+ chown root -R /home/steve/sites/www.apple.com/log/apache2
296
296
  COMMANDS
297
- @strategy.send(:create_app_logs)
297
+ @strategy.send(:create_app_logs!)
298
298
  end
299
299
  end
300
300
 
@@ -314,7 +314,7 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
314
314
 
315
315
  ##################################################################################################
316
316
 
317
- describe '#create_vhost_config (private)' do
317
+ describe '#create_vhost_config! (private)' do
318
318
  before(:each) do
319
319
  @temp_file = Tempfile.new('generate_vhost_config')
320
320
  @strategy.stub!(:vhost_file_path).and_return(@temp_file.path)
@@ -324,7 +324,7 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
324
324
 
325
325
  it "should create a vhost config file from template file without site aliases" do
326
326
  @context.stub!(:site_aliases).and_return([])
327
- @strategy.send(:create_vhost_config)
327
+ @strategy.send(:create_vhost_config!)
328
328
 
329
329
  File.read(@temp_file.path).should == <<-CONFIG
330
330
 
@@ -343,7 +343,7 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
343
343
  end
344
344
 
345
345
  it "should create a vhost config file from template file with site aliases" do
346
- @strategy.send(:create_vhost_config)
346
+ @strategy.send(:create_vhost_config!)
347
347
  File.read(@temp_file.path).should == <<-CONFIG
348
348
 
349
349
  <VirtualHost *:80>
@@ -365,19 +365,19 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
365
365
 
366
366
  ##################################################################################################
367
367
 
368
- describe '#install_vhost_config (private)' do
368
+ describe '#install_vhost_config! (private)' do
369
369
  it "should enable vhost and restart apache2" do
370
370
  @strategy.should_receive(:shell).with(<<-COMMANDS)
371
- a2ensite www.apple.com.conf
372
- apache2ctl graceful
371
+ a2ensite www.apple.com.conf > /dev/null
372
+ apache2ctl graceful
373
373
  COMMANDS
374
- @strategy.send(:install_vhost_config)
374
+ @strategy.send(:install_vhost_config!)
375
375
  end
376
376
  end
377
377
 
378
378
  ##################################################################################################
379
379
 
380
- describe '#execute' do
380
+ describe '#execute!' do
381
381
  before(:each) do
382
382
  @strategy.stub!(:user_exists?).and_return(false)
383
383
  @strategy.stub!(:user_home_exists?).and_return(true)
@@ -397,16 +397,16 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
397
397
  end
398
398
 
399
399
  it "should run the default process" do
400
- @strategy.should_receive(:create_user)
401
- @strategy.should_not_receive(:create_user_home)
402
- @strategy.should_receive(:create_sites_home)
403
- @strategy.should_receive(:create_app_root)
404
- @strategy.should_receive(:create_app_public)
405
- @strategy.should_receive(:create_app_logs)
406
- @strategy.should_receive(:create_vhost_config)
407
- @strategy.should_receive(:install_vhost_config)
400
+ @strategy.should_receive(:create_user!)
401
+ @strategy.should_not_receive(:create_user_home!)
402
+ @strategy.should_receive(:create_sites_home!)
403
+ @strategy.should_receive(:create_app_root!)
404
+ @strategy.should_receive(:create_app_public!)
405
+ @strategy.should_receive(:create_app_logs!)
406
+ @strategy.should_receive(:create_vhost_config!)
407
+ @strategy.should_receive(:install_vhost_config!)
408
408
 
409
- @strategy.execute
409
+ @strategy.execute!
410
410
 
411
411
  @strategy.app_public_path.should == '/home/steve/sites/www.apple.com/public'
412
412
  @strategy.app_log_path.should == '/home/steve/sites/www.apple.com/log'
@@ -427,15 +427,15 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
427
427
  @strategy.stub!(:user_exists?).and_return(true)
428
428
 
429
429
  @strategy.should_not_receive(:create_user)
430
- @strategy.should_not_receive(:create_user_home)
431
- @strategy.should_receive(:create_sites_home)
432
- @strategy.should_receive(:create_app_root)
433
- @strategy.should_receive(:create_app_public)
434
- @strategy.should_receive(:create_app_logs)
435
- @strategy.should_receive(:create_vhost_config)
436
- @strategy.should_receive(:install_vhost_config)
430
+ @strategy.should_not_receive(:create_user_home!)
431
+ @strategy.should_receive(:create_sites_home!)
432
+ @strategy.should_receive(:create_app_root!)
433
+ @strategy.should_receive(:create_app_public!)
434
+ @strategy.should_receive(:create_app_logs!)
435
+ @strategy.should_receive(:create_vhost_config!)
436
+ @strategy.should_receive(:install_vhost_config!)
437
437
 
438
- @strategy.execute
438
+ @strategy.execute!
439
439
 
440
440
  @strategy.app_public_path.should == '/home/steve/sites/www.apple.com/public'
441
441
  @strategy.app_log_path.should == '/home/steve/sites/www.apple.com/log'
@@ -455,16 +455,16 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
455
455
  it "should run the missing user home process" do
456
456
  @strategy.stub!(:user_home_exists?).and_return(false)
457
457
 
458
- @strategy.should_receive(:create_user)
459
- @strategy.should_receive(:create_user_home)
460
- @strategy.should_receive(:create_sites_home)
461
- @strategy.should_receive(:create_app_root)
462
- @strategy.should_receive(:create_app_public)
463
- @strategy.should_receive(:create_app_logs)
464
- @strategy.should_receive(:create_vhost_config)
465
- @strategy.should_receive(:install_vhost_config)
458
+ @strategy.should_receive(:create_user!)
459
+ @strategy.should_receive(:create_user_home!)
460
+ @strategy.should_receive(:create_sites_home!)
461
+ @strategy.should_receive(:create_app_root!)
462
+ @strategy.should_receive(:create_app_public!)
463
+ @strategy.should_receive(:create_app_logs!)
464
+ @strategy.should_receive(:create_vhost_config!)
465
+ @strategy.should_receive(:install_vhost_config!)
466
466
 
467
- @strategy.execute
467
+ @strategy.execute!
468
468
 
469
469
  @strategy.app_public_path.should == '/home/steve/sites/www.apple.com/public'
470
470
  @strategy.app_log_path.should == '/home/steve/sites/www.apple.com/log'
@@ -484,16 +484,16 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
484
484
  it "should run the existing sites home process" do
485
485
  @strategy.stub!(:sites_home_exists?).and_return(true)
486
486
 
487
- @strategy.should_receive(:create_user)
488
- @strategy.should_not_receive(:create_user_home)
489
- @strategy.should_not_receive(:create_sites_home)
490
- @strategy.should_receive(:create_app_root)
491
- @strategy.should_receive(:create_app_public)
492
- @strategy.should_receive(:create_app_logs)
493
- @strategy.should_receive(:create_vhost_config)
494
- @strategy.should_receive(:install_vhost_config)
487
+ @strategy.should_receive(:create_user!)
488
+ @strategy.should_not_receive(:create_user_home!)
489
+ @strategy.should_not_receive(:create_sites_home!)
490
+ @strategy.should_receive(:create_app_root!)
491
+ @strategy.should_receive(:create_app_public!)
492
+ @strategy.should_receive(:create_app_logs!)
493
+ @strategy.should_receive(:create_vhost_config!)
494
+ @strategy.should_receive(:install_vhost_config!)
495
495
 
496
- @strategy.execute
496
+ @strategy.execute!
497
497
 
498
498
  @strategy.app_public_path.should == '/home/steve/sites/www.apple.com/public'
499
499
  @strategy.app_log_path.should == '/home/steve/sites/www.apple.com/log'
@@ -513,16 +513,16 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
513
513
  it "should run the existing app root process" do
514
514
  @strategy.stub!(:app_root_exists?).and_return(true)
515
515
 
516
- @strategy.should_receive(:create_user)
517
- @strategy.should_not_receive(:create_user_home)
518
- @strategy.should_receive(:create_sites_home)
519
- @strategy.should_not_receive(:create_app_root)
520
- @strategy.should_not_receive(:create_app_public)
521
- @strategy.should_not_receive(:create_app_logs)
522
- @strategy.should_not_receive(:create_vhost_config)
523
- @strategy.should_not_receive(:install_vhost_config)
516
+ @strategy.should_receive(:create_user!)
517
+ @strategy.should_not_receive(:create_user_home!)
518
+ @strategy.should_receive(:create_sites_home!)
519
+ @strategy.should_not_receive(:create_app_root!)
520
+ @strategy.should_not_receive(:create_app_public!)
521
+ @strategy.should_not_receive(:create_app_logs!)
522
+ @strategy.should_not_receive(:create_vhost_config!)
523
+ @strategy.should_not_receive(:install_vhost_config!)
524
524
 
525
- lambda { @strategy.execute }.should raise_error(Plow::AppRootAlreadyExistsError, '/home/steve/sites/www.apple.com')
525
+ lambda { @strategy.execute! }.should raise_error(Plow::AppRootAlreadyExistsError, '/home/steve/sites/www.apple.com')
526
526
 
527
527
  $stdout.string.should == <<-OUTPUT
528
528
  ==> creating steve user
@@ -534,16 +534,16 @@ describe Plow::Strategy::UbuntuHardy::UserHomeWebApp do
534
534
  it "should run the existing vhost config process" do
535
535
  @strategy.stub!(:vhost_config_exists?).and_return(true)
536
536
 
537
- @strategy.should_receive(:create_user)
538
- @strategy.should_not_receive(:create_user_home)
539
- @strategy.should_receive(:create_sites_home)
540
- @strategy.should_receive(:create_app_root)
541
- @strategy.should_receive(:create_app_public)
542
- @strategy.should_receive(:create_app_logs)
543
- @strategy.should_not_receive(:create_vhost_config)
544
- @strategy.should_not_receive(:install_vhost_config)
537
+ @strategy.should_receive(:create_user!)
538
+ @strategy.should_not_receive(:create_user_home!)
539
+ @strategy.should_receive(:create_sites_home!)
540
+ @strategy.should_receive(:create_app_root!)
541
+ @strategy.should_receive(:create_app_public!)
542
+ @strategy.should_receive(:create_app_logs!)
543
+ @strategy.should_not_receive(:create_vhost_config!)
544
+ @strategy.should_not_receive(:install_vhost_config!)
545
545
 
546
- lambda { @strategy.execute }.should raise_error(Plow::ConfigFileAlreadyExistsError, '/etc/apache2/sites-available/www.apple.com.conf')
546
+ lambda { @strategy.execute! }.should raise_error(Plow::ConfigFileAlreadyExistsError, '/etc/apache2/sites-available/www.apple.com.conf')
547
547
 
548
548
  @strategy.app_public_path.should == '/home/steve/sites/www.apple.com/public'
549
549
  @strategy.app_log_path.should == '/home/steve/sites/www.apple.com/log'
data/spec/plow_spec.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # encoding: UTF-8
2
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require 'spec_helper'
3
3
 
4
4
  describe "Plow" do
5
5
  describe "version synchronizing" do
6
6
  before(:each) do
7
- @expected = "0.1.0"
7
+ @expected = "1.0.0"
8
8
  end
9
9
 
10
10
  it "should be correct for Plow::VERSION" do
data/spec/spec_helper.rb CHANGED
@@ -1,29 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
- unless $LOAD_PATH.include?(File.dirname(__FILE__))
4
- $LOAD_PATH.unshift(File.dirname(__FILE__))
5
- end
6
-
7
- unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__) + '/../lib'))
8
- $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
9
- end
10
-
11
- begin
12
- require 'spec'
13
- require 'spec/autorun'
14
- rescue LoadError
15
- abort <<-ERROR
16
- Unexpected LoadError exception caught in #{__FILE__} on #{__LINE__}
17
-
18
- This file depends on the rspec library, which is not available.
19
- You may install the library via rubygems with: sudo gem install rspec
20
- ERROR
21
- end
22
-
23
3
  require 'plow'
24
4
 
25
5
  FIXTURES_PATH = File.dirname(__FILE__) + '/fixtures'
26
-
27
- Spec::Runner.configure do |config|
28
-
29
- end