polonium 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES
CHANGED
data/Rakefile
CHANGED
@@ -1,10 +1,35 @@
|
|
1
1
|
module Polonium
|
2
2
|
module ServerRunners
|
3
3
|
class ExternalServerRunner < ServerRunner
|
4
|
+
DEFAULT_START_SERVER_COMMAND = lambda do |configuration|
|
5
|
+
"cd #{configuration.rails_root}; script/server -e #{configuration.rails_env} -p #{configuration.internal_app_server_port} -c #{configuration.rails_root}"
|
6
|
+
end
|
7
|
+
DEFAULT_STOP_SERVER_COMMAND = lambda do |configuration|
|
8
|
+
"ps ax | grep 'script/server -e #{configuration.rails_env}' | sed /grep/d | awk '{print $1}' | xargs kill -9 2>/dev/null"
|
9
|
+
end
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def start_server_command(&blk)
|
13
|
+
if blk
|
14
|
+
@start_server_command = blk
|
15
|
+
else
|
16
|
+
@start_server_command ||= DEFAULT_START_SERVER_COMMAND
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def stop_server_command(&blk)
|
21
|
+
if blk
|
22
|
+
@stop_server_command = blk
|
23
|
+
else
|
24
|
+
@stop_server_command ||= DEFAULT_STOP_SERVER_COMMAND
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
4
29
|
protected
|
5
30
|
def start_server
|
6
31
|
stop_server
|
7
|
-
system(
|
32
|
+
system(self.class.start_server_command.call(configuration))
|
8
33
|
rescue Exception => e
|
9
34
|
puts e.message
|
10
35
|
puts e.backtrace
|
@@ -12,8 +37,7 @@ module Polonium
|
|
12
37
|
end
|
13
38
|
|
14
39
|
def stop_server
|
15
|
-
|
16
|
-
system(cmd)
|
40
|
+
system(self.class.stop_server_command.call(configuration))
|
17
41
|
end
|
18
42
|
end
|
19
43
|
end
|
@@ -3,30 +3,71 @@ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
|
|
3
3
|
module Polonium
|
4
4
|
module ServerRunners
|
5
5
|
describe ExternalServerRunner do
|
6
|
-
attr_reader :configuration, :rails_env, :rails_root, :runner, :
|
6
|
+
attr_reader :configuration, :rails_env, :rails_root, :runner, :start_server_command, :stop_server_command, :original_start_server_command, :original_stop_server_command
|
7
7
|
before do
|
8
8
|
@configuration = Configuration.new
|
9
9
|
@rails_env = configuration.rails_env = 'test'
|
10
10
|
@rails_root = configuration.rails_root = File.dirname(__FILE__)
|
11
|
-
|
12
|
-
@
|
11
|
+
|
12
|
+
@start_server_command = "cd #{rails_root}; script/server -e #{rails_env} -p #{configuration.internal_app_server_port} -c #{rails_root}"
|
13
|
+
@stop_server_command = "ps ax | grep 'script/server -e #{rails_env}' | sed /grep/d | awk '{print $1}' | xargs kill -9 2>/dev/null"
|
13
14
|
|
14
15
|
@runner = ExternalServerRunner.new(configuration)
|
15
16
|
end
|
16
17
|
|
18
|
+
after do
|
19
|
+
ExternalServerRunner.start_server_command(&ExternalServerRunner::DEFAULT_START_SERVER_COMMAND)
|
20
|
+
ExternalServerRunner.stop_server_command(&ExternalServerRunner::DEFAULT_STOP_SERVER_COMMAND)
|
21
|
+
end
|
22
|
+
|
17
23
|
describe "#start" do
|
18
24
|
it "stops the server, then starts an external rails server" do
|
19
|
-
mock(runner).system(
|
20
|
-
mock(runner).system(
|
25
|
+
mock(runner).system(stop_server_command).ordered
|
26
|
+
mock(runner).system(start_server_command).ordered
|
21
27
|
runner.start
|
22
28
|
end
|
29
|
+
|
30
|
+
context "with a custom start_server_command" do
|
31
|
+
it "stops the server, then starts an external rails server with the custom command" do
|
32
|
+
ExternalServerRunner.start_server_command do
|
33
|
+
"custom start server command"
|
34
|
+
end
|
35
|
+
|
36
|
+
mock(runner).system(stop_server_command).ordered
|
37
|
+
mock(runner).system("custom start server command").ordered
|
38
|
+
runner.start
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "with a custom stop_server_command" do
|
43
|
+
it "stops the server with the custom command, then starts an external rails server" do
|
44
|
+
ExternalServerRunner.stop_server_command do
|
45
|
+
"custom stop server command"
|
46
|
+
end
|
47
|
+
|
48
|
+
mock(runner).system("custom stop server command").ordered
|
49
|
+
mock(runner).system(start_server_command).ordered
|
50
|
+
runner.start
|
51
|
+
end
|
52
|
+
end
|
23
53
|
end
|
24
54
|
|
25
55
|
describe "#stop" do
|
26
56
|
it "stops the server" do
|
27
|
-
mock(runner).system(
|
57
|
+
mock(runner).system(stop_server_command)
|
28
58
|
runner.stop
|
29
59
|
end
|
60
|
+
|
61
|
+
context "with a custom stop_server_command" do
|
62
|
+
it "stops the server with the custom command" do
|
63
|
+
ExternalServerRunner.stop_server_command do
|
64
|
+
"custom stop server command"
|
65
|
+
end
|
66
|
+
|
67
|
+
mock(runner).system("custom stop server command")
|
68
|
+
runner.stop
|
69
|
+
end
|
70
|
+
end
|
30
71
|
end
|
31
72
|
end
|
32
73
|
end
|