producer-core 0.1.15 → 0.1.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/features/tests/shell_command_status.feature +30 -0
- data/lib/producer/core/condition/dsl.rb +1 -0
- data/lib/producer/core/tests/shell_command_status.rb +18 -0
- data/lib/producer/core/version.rb +1 -1
- data/lib/producer/core.rb +1 -0
- data/spec/producer/core/condition/dsl_spec.rb +1 -0
- data/spec/producer/core/tests/shell_command_status_spec.rb +34 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 153b05ea6e95f6d5581779768786fe976302d410
|
4
|
+
data.tar.gz: 9be25d6883039b45ffe56000aa0b1c759ca907a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66029273ccafd41676b00d72f780f97a0cc19d60c52e467b041ef4c8955da96c86a802cabee060f1aff1059ab52f5a557a978edbae1a0fce27dd85c2db4c5aec
|
7
|
+
data.tar.gz: d28e5dddf8927383e725d17374de508619e6df622aff7e78e8718aff7d4834ba33c6daa5af87db2643961ee2acfb1d8d060262bf36a41d620d58acd6f7341ac1
|
@@ -0,0 +1,30 @@
|
|
1
|
+
@sshd
|
2
|
+
Feature: `` condition keyword
|
3
|
+
|
4
|
+
Scenario: succeeds when remote command execution is a success
|
5
|
+
Given a recipe with:
|
6
|
+
"""
|
7
|
+
target 'some_host.test'
|
8
|
+
|
9
|
+
task :testing_remote_command do
|
10
|
+
condition { `true` }
|
11
|
+
|
12
|
+
echo 'evaluated'
|
13
|
+
end
|
14
|
+
"""
|
15
|
+
When I successfully execute the recipe
|
16
|
+
Then the output must contain "evaluated"
|
17
|
+
|
18
|
+
Scenario: succeeds when remote executable is available
|
19
|
+
Given a recipe with:
|
20
|
+
"""
|
21
|
+
target 'some_host.test'
|
22
|
+
|
23
|
+
task :testing_remote_command do
|
24
|
+
condition { `false` }
|
25
|
+
|
26
|
+
echo 'evaluated'
|
27
|
+
end
|
28
|
+
"""
|
29
|
+
When I successfully execute the recipe
|
30
|
+
Then the output must not contain "evaluated"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Producer
|
2
|
+
module Core
|
3
|
+
module Tests
|
4
|
+
class ShellCommandStatus < Test
|
5
|
+
def verify
|
6
|
+
remote.execute(command)
|
7
|
+
true
|
8
|
+
rescue RemoteCommandExecutionError
|
9
|
+
false
|
10
|
+
end
|
11
|
+
|
12
|
+
def command
|
13
|
+
arguments.first
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/producer/core.rb
CHANGED
@@ -21,6 +21,7 @@ require 'producer/core/tests/has_dir'
|
|
21
21
|
require 'producer/core/tests/has_env'
|
22
22
|
require 'producer/core/tests/has_executable'
|
23
23
|
require 'producer/core/tests/has_file'
|
24
|
+
require 'producer/core/tests/shell_command_status'
|
24
25
|
|
25
26
|
require 'producer/core/cli'
|
26
27
|
require 'producer/core/condition'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Producer::Core
|
4
|
+
module Tests
|
5
|
+
describe ShellCommandStatus, :env do
|
6
|
+
let(:command) { 'true' }
|
7
|
+
subject(:test) { described_class.new(env, command) }
|
8
|
+
|
9
|
+
it_behaves_like 'test'
|
10
|
+
|
11
|
+
describe '#verify' do
|
12
|
+
context 'command return status is 0' do
|
13
|
+
it 'returns true' do
|
14
|
+
expect(test.verify).to be true
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'command return status is not 0' do
|
19
|
+
let(:command) { 'false' }
|
20
|
+
|
21
|
+
it 'returns false' do
|
22
|
+
expect(test.verify).to be false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#command' do
|
28
|
+
it 'returns the first argument' do
|
29
|
+
expect(test.command).to eq command
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: producer-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thibault Jouan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- features/tests/has_executable.feature
|
139
139
|
- features/tests/has_file.feature
|
140
140
|
- features/tests/negated_test.feature
|
141
|
+
- features/tests/shell_command_status.feature
|
141
142
|
- lib/producer/core.rb
|
142
143
|
- lib/producer/core/action.rb
|
143
144
|
- lib/producer/core/actions/echo.rb
|
@@ -167,6 +168,7 @@ files:
|
|
167
168
|
- lib/producer/core/tests/has_env.rb
|
168
169
|
- lib/producer/core/tests/has_executable.rb
|
169
170
|
- lib/producer/core/tests/has_file.rb
|
171
|
+
- lib/producer/core/tests/shell_command_status.rb
|
170
172
|
- lib/producer/core/version.rb
|
171
173
|
- lib/producer/core/worker.rb
|
172
174
|
- producer-core.gemspec
|
@@ -199,6 +201,7 @@ files:
|
|
199
201
|
- spec/producer/core/tests/has_env_spec.rb
|
200
202
|
- spec/producer/core/tests/has_executable_spec.rb
|
201
203
|
- spec/producer/core/tests/has_file_spec.rb
|
204
|
+
- spec/producer/core/tests/shell_command_status_spec.rb
|
202
205
|
- spec/producer/core/worker_spec.rb
|
203
206
|
- spec/spec_helper.rb
|
204
207
|
- spec/support/exit_helpers.rb
|
@@ -261,6 +264,7 @@ test_files:
|
|
261
264
|
- features/tests/has_executable.feature
|
262
265
|
- features/tests/has_file.feature
|
263
266
|
- features/tests/negated_test.feature
|
267
|
+
- features/tests/shell_command_status.feature
|
264
268
|
- spec/fixtures/recipes/empty.rb
|
265
269
|
- spec/fixtures/recipes/some_recipe.rb
|
266
270
|
- spec/fixtures/recipes/throw.rb
|
@@ -290,6 +294,7 @@ test_files:
|
|
290
294
|
- spec/producer/core/tests/has_env_spec.rb
|
291
295
|
- spec/producer/core/tests/has_executable_spec.rb
|
292
296
|
- spec/producer/core/tests/has_file_spec.rb
|
297
|
+
- spec/producer/core/tests/shell_command_status_spec.rb
|
293
298
|
- spec/producer/core/worker_spec.rb
|
294
299
|
- spec/spec_helper.rb
|
295
300
|
- spec/support/exit_helpers.rb
|