baleen 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OGY2MjEyY2M5YTgyY2FiMzBiZTE1ODI4NjkxNTE3M2NiMjVlMDU2Mg==
5
- data.tar.gz: !binary |-
6
- ZTFhNWQ0M2NjYzk5MDgxMDIxNzNmYjEyNzZhMjU1OWQyOWQyNjZiZQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZjM1MzFjMzJkZjU0ZThmNDNlMmQxMWM3OTc3ZTRkM2I5YzRlZDNmMTgzN2Ux
10
- MGYwZDdkMDAzNmYxZWFhODYwNjc4MGVmNjhiMDc2YjBiN2U0NGQyY2M1NDY4
11
- YjM3ODdmY2VhZWMyYzE3ZDJhYWFhMWM3NTliMDUxMTA0NDlhMjA=
12
- data.tar.gz: !binary |-
13
- M2M1ZGM4YzcxZjViYzMwOWI1NjE2ZDBiZTc5MzlkMzIyYTIxOWU1OTIwZTlk
14
- MjYwZDEzNDhiNDk4MDA4OTczNmQ5MzBiMTU1ZmYxNWNlYTYzMGYxODEzMjVj
15
- YTRkYWVmNjE0ZjM1OWMzN2JmMjdkZTAxNjg2ODUyYTcwYWU1OTc=
2
+ SHA1:
3
+ metadata.gz: 9df0bfc4b8a205c46c3e13fbf2906087e6c1a033
4
+ data.tar.gz: f197d4b4e8e14d113d0f41c4daf3e747b34898c5
5
+ SHA512:
6
+ metadata.gz: 26902b9e10a2489d82c769a873fcab7a5214eef1d8ad707d46a8c7245d11d58209bdf21e0b3e590455db66ae5fda608b051f42ec6521871849c710747524ad7c
7
+ data.tar.gz: ebfec9d50b6b5ba7c249d50a00fc8390fcdb5b73876f802f849b85aff3f9a66c159103718f476bbad850de15d600ff742141a40846a44c879369331ba3e27ecb
@@ -6,7 +6,6 @@ require 'baleen/utils/logger'
6
6
  require 'baleen/serializable'
7
7
  require 'baleen/client'
8
8
  require 'baleen/task/task'
9
- require 'baleen/task'
10
9
  require 'baleen/job'
11
10
  require 'baleen/server'
12
11
  require 'baleen/runner'
@@ -23,7 +23,7 @@ module Baleen
23
23
  private
24
24
 
25
25
  def show_results(s_time, e_time)
26
- display = ResultDisplay.new(@response.results, s_time, e_time, STDOUT)
26
+ display = ResultDisplay.new(@response.results, s_time, e_time)
27
27
  display.report_result
28
28
  end
29
29
 
@@ -113,6 +113,7 @@ module Baleen
113
113
  Baleen::Task::Cucumber.new(
114
114
  image: @config[:runner][:image],
115
115
  work_dir: @config[:runner][:work_dir],
116
+ options: @config[:framework][:options],
116
117
  files: @config[:framework][:files],
117
118
  before_command: @config[:runner][:before_command],
118
119
  concurrency: @config[:runner][:concurrency].to_i,
@@ -2,7 +2,7 @@ require "colorize"
2
2
 
3
3
  module Baleen
4
4
  class ResultDisplay
5
- def initialize(result, start_time, end_time, output)
5
+ def initialize(result, start_time, end_time, output=$stdout)
6
6
  @result = result
7
7
  @start_time = start_time
8
8
  @end_time = end_time
@@ -44,7 +44,7 @@ module Baleen
44
44
  def_delegator :@connection, :notify_info
45
45
 
46
46
  def initialize(task, connection=nil)
47
- @container = Docker::Container.create('Cmd' => [task.shell, task.opt, task.commands], 'Image' => task.image)
47
+ @container = Docker::Container.create('Cmd' => ["bash", "-c", task.commands], 'Image' => task.image)
48
48
  @connection = connection ? connection : Connection.new
49
49
  @task = task
50
50
  end
@@ -6,11 +6,10 @@ module Baleen
6
6
  def initialize
7
7
  @params = {}
8
8
  @params[:klass] = self.class.to_s
9
- @params[:shell] = nil
10
- @params[:opt] = nil
11
9
  @params[:work_dir] = nil
12
10
  @params[:files] = nil
13
- @params[:exe] = nil
11
+ @params[:bin] = nil
12
+ @params[:options] = nil
14
13
  @params[:concurrency] = nil
15
14
  @params[:image] = nil
16
15
  @params[:before_command] = nil
@@ -29,7 +28,7 @@ module Baleen
29
28
  end
30
29
 
31
30
  def command
32
- @params[:command] ||= %{#{@params[:exe]} #{@params[:files]}}
31
+ @params[:command] ||= %{#{@params[:bin]} #{@params[:options]} #{@params[:files]}}
33
32
  end
34
33
 
35
34
  def command=(c)
@@ -11,9 +11,8 @@ module Baleen
11
11
 
12
12
  def initialize(opt)
13
13
  super()
14
- @params[:shell] = opt[:shell] || "/bin/bash"
15
- @params[:opt] = opt[:opt] || "-c"
16
- @params[:exe] = opt[:exe] || "bundle exec cucumber"
14
+ @params[:bin] = opt[:bin] || "bundle exec cucumber"
15
+ @params[:options] = opt[:options]
17
16
  @params[:work_dir] = opt[:work_dir] || default_work_dir
18
17
  @params[:files] = opt[:files] || default_features
19
18
  @params[:concurrency] = opt[:concurrency] || default_concurrency
@@ -27,8 +26,6 @@ module Baleen
27
26
 
28
27
  def prepare
29
28
  task = Generic.new(
30
- shell: shell,
31
- opt: opt,
32
29
  work_dir: work_dir,
33
30
  image: image,
34
31
  command: %{find #{files} | grep "\\.feature"}
@@ -6,8 +6,6 @@ module Baleen
6
6
 
7
7
  def initialize(opt)
8
8
  super()
9
- @params[:shell] = opt[:shell] ||="/bin/bash"
10
- @params[:opt] = opt[:opt] ||="-c"
11
9
  @params[:work_dir] = opt[:work_dir] ||="./"
12
10
  @params[:image] = opt[:image]
13
11
  @params[:command] = opt[:command]
@@ -8,8 +8,6 @@ module Baleen
8
8
 
9
9
  def initialize(opt)
10
10
  super()
11
- @params[:shell] = opt[:shell] ||="/bin/bash"
12
- @params[:opt] = opt[:opt] ||="-c"
13
11
  @params[:image] = opt[:image] ||="kimh/baleen-poc"
14
12
  @params[:command] = opt[:command]
15
13
  @params[:work_dir] = opt[:work_dir]
@@ -84,6 +84,7 @@ module Baleen
84
84
  def optional_attributes
85
85
  [
86
86
  target_files,
87
+ :options,
87
88
  ]
88
89
  end
89
90
 
@@ -1,3 +1,3 @@
1
1
  module Baleen
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -3,45 +3,74 @@ require_relative '../../spec_helper'
3
3
  describe Baleen::ResultDisplay do
4
4
  describe "#summary" do
5
5
  context "when all test passes" do
6
- it "should display Pass" do
7
- result = [
8
- {
9
- "status_code" => 0,
10
- "container_id" => "aaaaaa",
11
- "log" => "brabrabra",
12
- "file" => "feature/t1.feature"
13
- },
14
- {
15
- "status_code" => 0,
16
- "container_id" => "bbbbbb",
17
- "log" => "brabrabra",
18
- "file" => "feature/t2.feature"
19
- }
20
- ]
21
- displayer = Baleen::ResultDisplay.new(result, Time.now, Time.now+10)
22
- capture(:stdout) { displayer.summary }.should include 'Pass'
6
+ result = [
7
+ {
8
+ "status_code" => 0,
9
+ "container_id" => "aaaaaa",
10
+ "log" => "brabrabra",
11
+ "file" => "feature/t1.feature"
12
+ },
13
+ {
14
+ "status_code" => 0,
15
+ "container_id" => "bbbbbb",
16
+ "log" => "brabrabra",
17
+ "file" => "feature/t2.feature"
18
+ }
19
+ ]
20
+
21
+ context "when output is STDOUT" do
22
+ it "should display Pass" do
23
+ displayer = Baleen::ResultDisplay.new(result, Time.now, Time.now+10, Kernel)
24
+ capture(:stdout) { displayer.summary }.should include 'Pass'
25
+ end
26
+ end
27
+
28
+ context "when output is logger" do
29
+ it "should contain Pass" do
30
+ logger = Baleen::BL.instance
31
+ log_file = File.join(Baleen::Configuration.instance.dir, "log", "baleen.log")
32
+
33
+ Baleen::ResultDisplay.new(result, Time.now, Time.now+10, logger).summary
34
+ expect(File.open(log_file).read).to include 'Pass'
35
+ end
23
36
  end
37
+
24
38
  end
25
39
 
26
40
  context "when some test fails" do
27
- it "should display Fail" do
28
- result = [
29
- {
30
- "status_code" => 0,
31
- "container_id" => "aaaaaa",
32
- "log" => "brabrabra",
33
- "file" => "feature/t1.feature"
34
- },
35
- {
36
- "status_code" => 1,
37
- "container_id" => "bbbbbb",
38
- "log" => "brabrabra",
39
- "file" => "feature/t2.feature"
40
- }
41
- ]
42
- displayer = Baleen::ResultDisplay.new(result, Time.now, Time.now+10)
43
- capture(:stdout) { displayer.summary }.should include 'Fail'
41
+ result = [
42
+ {
43
+ "status_code" => 0,
44
+ "container_id" => "aaaaaa",
45
+ "log" => "brabrabra",
46
+ "file" => "feature/t1.feature"
47
+ },
48
+ {
49
+ "status_code" => 1,
50
+ "container_id" => "bbbbbb",
51
+ "log" => "brabrabra",
52
+ "file" => "feature/t2.feature"
53
+ }
54
+ ]
55
+
56
+ context "when output is STDOUT" do
57
+ it "should display Fail" do
58
+ displayer = Baleen::ResultDisplay.new(result, Time.now, Time.now+10, Kernel)
59
+ capture(:stdout) { displayer.summary }.should include 'Fail'
60
+ end
44
61
  end
62
+
63
+ context "when output is logger" do
64
+ it "should contain Pass" do
65
+ logger = Baleen::BL.instance
66
+ log_file = File.join(Baleen::Configuration.instance.dir, "log", "baleen.log")
67
+
68
+ Baleen::ResultDisplay.new(result, Time.now, Time.now+10, logger).summary
69
+ expect(File.open(log_file).read).to include 'Fail'
70
+ end
71
+ end
72
+
45
73
  end
74
+
46
75
  end
47
76
  end
@@ -13,7 +13,7 @@ describe Baleen::Task do
13
13
  )
14
14
  runner = Baleen::Runner.new(task)
15
15
  result = runner.run
16
- expect(result[:log]).to include string
16
+ expect(result[:stdout].join("\n")).to include string
17
17
  end
18
18
  end
19
19
 
@@ -28,7 +28,7 @@ describe Baleen::Task do
28
28
  )
29
29
  runner = Baleen::Runner.new(task)
30
30
  result = runner.run
31
- expect(result[:log]).to include "Scenario"
31
+ expect(result[:stdout].join("\n")).to include "Scenario"
32
32
  end
33
33
  end
34
34
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baleen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kim, Hirokuni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-04 00:00:00.000000000 Z
11
+ date: 2013-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,154 +28,154 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: awesome_print
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: interactive_editor
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: celluloid
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: celluloid-io
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: docker-api
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: colorize
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: thor
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ! '>='
157
+ - - '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ! '>='
164
+ - - '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: sinatra
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ! '>='
171
+ - - '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ! '>='
178
+ - - '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  description: Ballen allows you to run standard ruby tests in parallel and isolated
@@ -217,7 +217,6 @@ files:
217
217
  - lib/baleen/runner.rb
218
218
  - lib/baleen/serializable.rb
219
219
  - lib/baleen/server.rb
220
- - lib/baleen/task.rb
221
220
  - lib/baleen/task/base.rb
222
221
  - lib/baleen/task/cucumber.rb
223
222
  - lib/baleen/task/generic.rb
@@ -243,12 +242,12 @@ require_paths:
243
242
  - lib
244
243
  required_ruby_version: !ruby/object:Gem::Requirement
245
244
  requirements:
246
- - - ! '>='
245
+ - - '>='
247
246
  - !ruby/object:Gem::Version
248
247
  version: 2.0.0
249
248
  required_rubygems_version: !ruby/object:Gem::Requirement
250
249
  requirements:
251
- - - ! '>='
250
+ - - '>='
252
251
  - !ruby/object:Gem::Version
253
252
  version: '0'
254
253
  requirements: []
@@ -263,4 +262,3 @@ test_files:
263
262
  - spec/lib/baleen/spec_task.rb
264
263
  - spec/lib/baleen/spec_validator.rb
265
264
  - spec/spec_helper.rb
266
- has_rdoc:
@@ -1,44 +0,0 @@
1
- module Baleen
2
- module Task
3
-
4
- class Command
5
- def initialize(work_dir, files, bundler)
6
- @work_dir = work_dir
7
- @files = files
8
- @bundler = bundler
9
- @before = []
10
- build_default_arg
11
- end
12
-
13
- def before(commands=nil)
14
- commands = sanitize_and_tokenize(commands) if commands
15
- commands ? @before = commands : @before
16
- end
17
-
18
- def commands
19
- @before ? @before + @args : @args
20
- end
21
-
22
- def <<(arg)
23
- @args << arg
24
- end
25
-
26
- private
27
-
28
- def build_default_arg
29
- exe = @bundler ? "bundle exec cucumber" : "cucumber"
30
- @args = ["cd #{@work_dir}", "#{exe} #{@files}"]
31
- end
32
-
33
- def sanitize_and_tokenize(arg)
34
- # sanitize
35
- arg = arg.strip.gsub(/^ */, '').gsub(/\n+/, "\n")
36
- # tokenize
37
- arg = arg.gsub(";", "\n")
38
- arg.split("\n")
39
- end
40
- end
41
-
42
- end
43
- end
44
-