rspec-bash 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49d5aad81e5823b77cd475a99f803af8afc6f445
|
4
|
+
data.tar.gz: 8dbe7fb5dfb13c7cccc5b6b791318a4341afc53c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 956d35847b75501827d811a4453c1db3dd988baec17306aaa4bb8ee82dbd49f42b635ade5e19fe56da6ed82a98bff3fc7c1853db70b8e2e2d2b1b8fc2fbdf34d
|
7
|
+
data.tar.gz: 0a308ef87217a944f9bcbeda8444d797daf6f3ea3cd4d6f057d718179cea4fe198ce8a5da4b0aaad03fba0c3dca12362a001b5151bfa9ffef4512f1c429b1d45
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
[](http://waffle.io/mdurban/rspec-bash)
|
2
2
|
[](https://travis-ci.org/mdurban/rspec-bash)
|
3
|
+
[](https://gemnasium.com/github.com/mdurban/rspec-bash)
|
3
4
|
|
4
5
|
# Rspec::Bash
|
5
6
|
|
data/bin/bash_stub.sh
CHANGED
@@ -55,8 +55,12 @@ function send-to-server {
|
|
55
55
|
echo -n "${2}" | nc localhost ${1}
|
56
56
|
}
|
57
57
|
|
58
|
-
function extract-properties {
|
59
|
-
echo -n "${1}" | sed -En "s/^\"${2}\"
|
58
|
+
function extract-number-properties {
|
59
|
+
echo -n "${1}" | sed -En "s/^\"${2}\":([0-9]+),?$/\1/gp"
|
60
|
+
}
|
61
|
+
|
62
|
+
function extract-string-properties {
|
63
|
+
echo -n "${1}" | sed -En "s/^\"${2}\":\"(.*)\",?$/\1/gp"
|
60
64
|
}
|
61
65
|
|
62
66
|
function print-output {
|
@@ -76,9 +80,9 @@ function main {
|
|
76
80
|
client_message=$(create-call-log "${@}")
|
77
81
|
server_message=$(send-to-server "${2}" "${client_message}")
|
78
82
|
IFS=$'\n'
|
79
|
-
target_list=( $(extract-properties "${server_message}" "outputs\..*\.target") )
|
80
|
-
content_list=( $(extract-properties "${server_message}" "outputs\..*\.content") )
|
81
|
-
exit_code=$(extract-properties "${server_message}" "exitcode")
|
83
|
+
target_list=( $(extract-string-properties "${server_message}" "outputs\..*\.target") )
|
84
|
+
content_list=( $(extract-string-properties "${server_message}" "outputs\..*\.content") )
|
85
|
+
exit_code=$(extract-number-properties "${server_message}" "exitcode")
|
82
86
|
|
83
87
|
for index in "${!target_list[@]}"; do
|
84
88
|
target=${target_list[${index}]}
|
data/rspec-bash.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'rspec-bash'
|
7
|
-
spec.version = '0.2.
|
7
|
+
spec.version = '0.2.1'
|
8
8
|
spec.authors = ['Ben Brewer', 'Mike Urban', 'Matthijs Groen']
|
9
9
|
spec.email = ['ben@benbrewer.me', 'mike.david.urban@gmail.com']
|
10
10
|
spec.summary = 'Test Bash with RSpec'
|
File without changes
|
@@ -159,25 +159,29 @@ describe 'BashStub' do
|
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
|
-
context '.extract
|
162
|
+
context '.extract-*-properties' do
|
163
163
|
context 'given a standard call conf message' do
|
164
164
|
let(:call_conf) do
|
165
165
|
JSON.pretty_generate(
|
166
166
|
Sparsify.sparse(
|
167
167
|
{
|
168
|
-
exitcode:
|
168
|
+
exitcode: 10_000,
|
169
169
|
outputs: [
|
170
170
|
{
|
171
171
|
target: 'stdout',
|
172
|
-
content: "stdout\nstdout
|
172
|
+
content: "stdout\nstdout,stdout"
|
173
|
+
},
|
174
|
+
{
|
175
|
+
target: 'stdout',
|
176
|
+
content: 1
|
173
177
|
},
|
174
178
|
{
|
175
179
|
target: 'stderr',
|
176
|
-
content: "stderr stderr\nstderr"
|
180
|
+
content: "stderr\" stderr\nstderr"
|
177
181
|
},
|
178
182
|
{
|
179
183
|
target: 'tofile',
|
180
|
-
content: "tofile\ntofile tofile"
|
184
|
+
content: "tofile\ntofile:\", tofile"
|
181
185
|
}
|
182
186
|
]
|
183
187
|
}, sparse_array: true
|
@@ -188,18 +192,18 @@ describe 'BashStub' do
|
|
188
192
|
it 'extracts a single value field' do
|
189
193
|
stdout, = stubbed_env.execute_function(
|
190
194
|
BashStubScript.path,
|
191
|
-
"extract-properties '#{call_conf}' 'exitcode'"
|
195
|
+
"extract-number-properties '#{call_conf}' 'exitcode'"
|
192
196
|
)
|
193
|
-
expect(stdout.chomp).to eql '
|
197
|
+
expect(stdout.chomp).to eql '10000'
|
194
198
|
end
|
195
199
|
|
196
200
|
it 'extracts a multiple value field' do
|
197
201
|
stdout, _stderr = stubbed_env.execute_function(
|
198
202
|
BashStubScript.path,
|
199
|
-
"extract-properties '#{call_conf}' 'outputs\\..*\\.content'"
|
203
|
+
"extract-string-properties '#{call_conf}' 'outputs\\..*\\.content'"
|
200
204
|
)
|
201
|
-
expect(stdout.chomp).to eql "stdout\\nstdout
|
202
|
-
"\ntofile\\ntofile tofile"
|
205
|
+
expect(stdout.chomp).to eql "stdout\\nstdout,stdout\nstderr\\\" stderr\\nstderr" \
|
206
|
+
"\ntofile\\ntofile:\\\", tofile"
|
203
207
|
end
|
204
208
|
end
|
205
209
|
end
|
@@ -318,19 +322,20 @@ describe 'BashStub' do
|
|
318
322
|
context '.main' do
|
319
323
|
context 'with stdin, command, port and arguments' do
|
320
324
|
before(:all) do
|
321
|
-
stubbed_env
|
322
|
-
@create_call_log
|
323
|
-
@send_to_server
|
324
|
-
@
|
325
|
-
@
|
326
|
-
|
327
|
-
|
325
|
+
stubbed_env = create_stubbed_env
|
326
|
+
@create_call_log = stubbed_env.stub_command('create-call-log').outputs('call log')
|
327
|
+
@send_to_server = stubbed_env.stub_command('send-to-server').outputs('call conf')
|
328
|
+
@extract_string_properties = stubbed_env.stub_command('extract-string-properties')
|
329
|
+
@extract_number_properties = stubbed_env.stub_command('extract-number-properties')
|
330
|
+
@print_output = stubbed_env.stub_command('print-output')
|
331
|
+
|
332
|
+
@extract_string_properties
|
328
333
|
.with_args('call conf', 'outputs\..*\.target')
|
329
334
|
.outputs("stdout\nstderr\ntofile\n")
|
330
|
-
@
|
335
|
+
@extract_string_properties
|
331
336
|
.with_args('call conf', 'outputs\..*\.content')
|
332
337
|
.outputs("\\nstd out\\n\n\\nstd err\\n\n\\nto file\\n\n")
|
333
|
-
@
|
338
|
+
@extract_number_properties.with_args('call conf', 'exitcode').outputs("3\n")
|
334
339
|
|
335
340
|
_, _, @status = stubbed_env.execute_function(
|
336
341
|
BashStubScript.path,
|
@@ -350,17 +355,17 @@ describe 'BashStub' do
|
|
350
355
|
)
|
351
356
|
end
|
352
357
|
it 'extracts the target list from the call conf returned by the server' do
|
353
|
-
expect(@
|
358
|
+
expect(@extract_string_properties).to be_called_with_arguments(
|
354
359
|
'call conf', 'outputs\..*\.target'
|
355
360
|
)
|
356
361
|
end
|
357
362
|
it 'extracts the content list from the call conf returned by the server' do
|
358
|
-
expect(@
|
363
|
+
expect(@extract_string_properties).to be_called_with_arguments(
|
359
364
|
'call conf', 'outputs\..*\.content'
|
360
365
|
)
|
361
366
|
end
|
362
367
|
it 'extracts the exit code from the call conf returned by the server' do
|
363
|
-
expect(@
|
368
|
+
expect(@extract_number_properties).to be_called_with_arguments(
|
364
369
|
'call conf', 'exitcode'
|
365
370
|
)
|
366
371
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-bash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Brewer
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-12-
|
13
|
+
date: 2017-12-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sparsify
|
@@ -121,7 +121,7 @@ files:
|
|
121
121
|
- spec/integration/call_log/called_with_args_spec.rb
|
122
122
|
- spec/integration/call_log/called_with_no_args_spec.rb
|
123
123
|
- spec/integration/call_log/stdin_spec.rb
|
124
|
-
- spec/integration/
|
124
|
+
- spec/integration/edge_cases/long_command_spec.rb
|
125
125
|
- spec/integration/matchers/be_called_with_arguments_spec.rb
|
126
126
|
- spec/integration/matchers/be_called_with_no_arguments_spec.rb
|
127
127
|
- spec/integration/stubbed_command/outputs_spec.rb
|
@@ -177,7 +177,7 @@ test_files:
|
|
177
177
|
- spec/integration/call_log/called_with_args_spec.rb
|
178
178
|
- spec/integration/call_log/called_with_no_args_spec.rb
|
179
179
|
- spec/integration/call_log/stdin_spec.rb
|
180
|
-
- spec/integration/
|
180
|
+
- spec/integration/edge_cases/long_command_spec.rb
|
181
181
|
- spec/integration/matchers/be_called_with_arguments_spec.rb
|
182
182
|
- spec/integration/matchers/be_called_with_no_arguments_spec.rb
|
183
183
|
- spec/integration/stubbed_command/outputs_spec.rb
|