aruba 0.3.3 → 0.3.4
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.
- data/History.txt +4 -0
- data/aruba.gemspec +5 -5
- data/features/exit_statuses.feature +17 -6
- data/features/flushing.feature +3 -3
- data/features/interactive.feature +3 -3
- data/features/output.feature +34 -34
- data/lib/aruba/cucumber.rb +15 -0
- metadata +12 -26
data/History.txt
CHANGED
data/aruba.gemspec
CHANGED
@@ -2,18 +2,18 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'aruba'
|
5
|
-
s.version = '0.3.
|
5
|
+
s.version = '0.3.4'
|
6
6
|
s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak"]
|
7
7
|
s.description = 'CLI Steps for Cucumber, hand-crafted for you in Aruba'
|
8
8
|
s.summary = "aruba-#{s.version}"
|
9
9
|
s.email = 'cukes@googlegroups.com'
|
10
10
|
s.homepage = 'http://github.com/aslakhellesoy/aruba'
|
11
11
|
|
12
|
-
s.add_dependency 'cucumber', '
|
13
|
-
s.add_dependency 'childprocess', '
|
14
|
-
s.add_dependency 'rspec', '
|
12
|
+
s.add_dependency 'cucumber', '>= 0.10.0'
|
13
|
+
s.add_dependency 'childprocess', '>= 0.1.7'
|
14
|
+
s.add_dependency 'rspec', '>= 2.5.0'
|
15
15
|
|
16
|
-
s.rubygems_version
|
16
|
+
s.rubygems_version = ">= 1.6.1"
|
17
17
|
s.files = `git ls-files`.split("\n")
|
18
18
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
@@ -5,25 +5,36 @@ Feature: exit statuses
|
|
5
5
|
I want to use the "the exit status should be" step
|
6
6
|
|
7
7
|
Scenario: exit status of 0
|
8
|
-
When I run
|
8
|
+
When I run `ruby -h`
|
9
|
+
Then the exit status should be 0
|
10
|
+
|
11
|
+
Scenario: exit status of 0 with `
|
12
|
+
When I run `ruby -h`
|
9
13
|
Then the exit status should be 0
|
10
14
|
|
11
15
|
Scenario: Not explicitly exiting at all
|
12
|
-
When I run
|
16
|
+
When I run `ruby -e '42'`
|
13
17
|
Then the exit status should be 0
|
14
18
|
|
15
19
|
Scenario: non-zero exit status
|
16
|
-
When I run
|
20
|
+
When I run `ruby -e 'exit 56'`
|
17
21
|
Then the exit status should be 56
|
18
22
|
And the exit status should not be 0
|
19
23
|
|
20
24
|
Scenario: Successfully run something
|
21
|
-
When I successfully run
|
25
|
+
When I successfully run `ruby -e 'exit 0'`
|
26
|
+
|
27
|
+
Scenario: Successfully run something with `
|
28
|
+
When I successfully run `ruby -e 'exit 0'`
|
22
29
|
|
23
30
|
Scenario: Unsuccessfully run something
|
24
|
-
When I do aruba I successfully run
|
31
|
+
When I do aruba I successfully run `ruby -e 'exit 10'`
|
25
32
|
Then aruba should fail with "Exit status was 10"
|
26
33
|
|
27
34
|
Scenario: Try to run something that doesn't exist
|
28
|
-
When I run
|
35
|
+
When I run `does_not_exist`
|
36
|
+
Then the exit status should be 1
|
37
|
+
|
38
|
+
Scenario: Try to run something that doesn't exist with `
|
39
|
+
When I run `does_not_exist`
|
29
40
|
Then the exit status should be 1
|
data/features/flushing.feature
CHANGED
@@ -5,19 +5,19 @@ Feature: Flushing output
|
|
5
5
|
I want to make sure that large amounts of output aren't buffered
|
6
6
|
|
7
7
|
Scenario: A little output
|
8
|
-
When I run
|
8
|
+
When I run `ruby -e 'puts :a.to_s * 256'`
|
9
9
|
Then the output should contain "a"
|
10
10
|
And the output should be 256 bytes long
|
11
11
|
And the exit status should be 0
|
12
12
|
|
13
13
|
Scenario: Tons of output
|
14
|
-
When I run
|
14
|
+
When I run `ruby -e 'puts :a.to_s * 65536'`
|
15
15
|
Then the output should contain "a"
|
16
16
|
And the output should be 65536 bytes long
|
17
17
|
And the exit status should be 0
|
18
18
|
|
19
19
|
Scenario: Tons of interactive output
|
20
|
-
When I run
|
20
|
+
When I run `ruby -e 'len = gets.chomp; puts :a.to_s * len.to_i'` interactively
|
21
21
|
And I type "65536"
|
22
22
|
Then the output should contain "a"
|
23
23
|
And the output should be 65536 bytes long
|
@@ -12,7 +12,7 @@ Feature: Interactive process control
|
|
12
12
|
puts res.reverse
|
13
13
|
end
|
14
14
|
"""
|
15
|
-
When I run
|
15
|
+
When I run `ruby echo.rb` interactively
|
16
16
|
And I type "hello, world"
|
17
17
|
And I type "quit"
|
18
18
|
Then the output should contain:
|
@@ -21,7 +21,7 @@ Feature: Interactive process control
|
|
21
21
|
"""
|
22
22
|
|
23
23
|
Scenario: Running a native binary interactively
|
24
|
-
When I run
|
24
|
+
When I run `bc -q` interactively
|
25
25
|
And I type "4 + 3"
|
26
26
|
And I type "quit"
|
27
27
|
Then the output should contain:
|
@@ -33,6 +33,6 @@ Feature: Interactive process control
|
|
33
33
|
See: http://github.com/aslakhellesoy/aruba/issues#issue/17 for context
|
34
34
|
|
35
35
|
Given a directory named "rename_me"
|
36
|
-
When I run
|
36
|
+
When I run `mv rename_me renamed` interactively
|
37
37
|
Then a directory named "renamed" should exist
|
38
38
|
And a directory named "rename_me" should not exist
|
data/features/output.feature
CHANGED
@@ -5,40 +5,40 @@ Feature: Output
|
|
5
5
|
I want to use the "the output should contain" step
|
6
6
|
|
7
7
|
Scenario: Run unknown command
|
8
|
-
When I run
|
8
|
+
When I run `neverever gonna work`
|
9
9
|
Then the output should contain:
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
"""
|
11
|
+
No such file or directory - neverever
|
12
|
+
"""
|
13
13
|
|
14
14
|
Scenario: Detect subset of one-line output
|
15
|
-
When I run
|
15
|
+
When I run `ruby -e 'puts \"hello world\"'`
|
16
16
|
Then the output should contain "hello world"
|
17
17
|
|
18
18
|
Scenario: Detect subset of one-line output
|
19
|
-
When I run
|
19
|
+
When I run `echo 'hello world'`
|
20
20
|
Then the output should contain "hello world"
|
21
21
|
|
22
22
|
Scenario: Detect absence of one-line output
|
23
|
-
When I run
|
23
|
+
When I run `ruby -e 'puts \"hello world\"'`
|
24
24
|
Then the output should not contain "good-bye"
|
25
25
|
|
26
26
|
Scenario: Detect subset of multiline output
|
27
|
-
When I run
|
27
|
+
When I run `ruby -e 'puts \"hello\\nworld\"'`
|
28
28
|
Then the output should contain:
|
29
29
|
"""
|
30
30
|
hello
|
31
31
|
"""
|
32
32
|
|
33
33
|
Scenario: Detect subset of multiline output
|
34
|
-
When I run
|
34
|
+
When I run `ruby -e 'puts \"hello\\nworld\"'`
|
35
35
|
Then the output should not contain:
|
36
36
|
"""
|
37
37
|
good-bye
|
38
38
|
"""
|
39
39
|
|
40
40
|
Scenario: Detect exact one-line output
|
41
|
-
When I run
|
41
|
+
When I run `ruby -e 'puts \"hello world\"'`
|
42
42
|
Then the output should contain exactly:
|
43
43
|
"""
|
44
44
|
hello world
|
@@ -46,7 +46,7 @@ Feature: Output
|
|
46
46
|
"""
|
47
47
|
|
48
48
|
Scenario: Detect exact multiline output
|
49
|
-
When I run
|
49
|
+
When I run `ruby -e 'puts "hello\nworld"'`
|
50
50
|
Then the output should contain exactly:
|
51
51
|
"""
|
52
52
|
hello
|
@@ -56,13 +56,13 @@ Feature: Output
|
|
56
56
|
|
57
57
|
@announce
|
58
58
|
Scenario: Detect subset of one-line output with regex
|
59
|
-
When I run
|
59
|
+
When I run `ruby --version`
|
60
60
|
Then the output should contain "ruby"
|
61
61
|
And the output should match /ruby ([\d]+\.[\d]+\.[\d]+)(p\d+)? \(.*$/
|
62
62
|
|
63
63
|
@announce
|
64
64
|
Scenario: Detect subset of multiline output with regex
|
65
|
-
When I run
|
65
|
+
When I run `ruby -e 'puts "hello\nworld\nextra line1\nextra line2\nimportant line"'`
|
66
66
|
Then the output should match:
|
67
67
|
"""
|
68
68
|
he..o
|
@@ -73,14 +73,14 @@ Feature: Output
|
|
73
73
|
|
74
74
|
@announce
|
75
75
|
Scenario: Match passing exit status and partial output
|
76
|
-
When I run
|
76
|
+
When I run `ruby -e 'puts "hello\nworld"'`
|
77
77
|
Then it should pass with:
|
78
78
|
"""
|
79
79
|
hello
|
80
80
|
"""
|
81
81
|
|
82
82
|
Scenario: Match passing exit status and exact output
|
83
|
-
When I run
|
83
|
+
When I run `ruby -e 'puts "hello\nworld"'`
|
84
84
|
Then it should pass with exactly:
|
85
85
|
"""
|
86
86
|
hello
|
@@ -90,14 +90,14 @@ Feature: Output
|
|
90
90
|
|
91
91
|
@announce-stdout
|
92
92
|
Scenario: Match failing exit status and partial output
|
93
|
-
When I run
|
93
|
+
When I run `ruby -e 'puts \"hello\\nworld\";exit 99'`
|
94
94
|
Then it should fail with:
|
95
95
|
"""
|
96
96
|
hello
|
97
97
|
"""
|
98
98
|
|
99
99
|
Scenario: Match failing exit status and exact output
|
100
|
-
When I run
|
100
|
+
When I run `ruby -e 'puts "hello\nworld";exit 99'`
|
101
101
|
Then it should fail with exactly:
|
102
102
|
"""
|
103
103
|
hello
|
@@ -107,7 +107,7 @@ Feature: Output
|
|
107
107
|
|
108
108
|
@announce-stdout
|
109
109
|
Scenario: Match failing exit status and output with regex
|
110
|
-
When I run
|
110
|
+
When I run `ruby -e 'puts \"hello\\nworld\";exit 99'`
|
111
111
|
Then it should fail with regex:
|
112
112
|
"""
|
113
113
|
hello\s*world
|
@@ -115,33 +115,33 @@ Feature: Output
|
|
115
115
|
|
116
116
|
@announce-cmd
|
117
117
|
Scenario: Match output in stdout
|
118
|
-
When I run
|
118
|
+
When I run `ruby -e 'puts \"hello\\nworld\"'`
|
119
119
|
Then the stdout should contain "hello"
|
120
120
|
Then the stderr should not contain "hello"
|
121
121
|
|
122
122
|
@announce
|
123
123
|
Scenario: Match output on several lines
|
124
|
-
When I run
|
124
|
+
When I run `ruby -e 'puts %{GET /}'`
|
125
125
|
Then the stdout should contain:
|
126
126
|
"""
|
127
127
|
GET /
|
128
128
|
"""
|
129
129
|
|
130
130
|
Scenario: Match output on several lines using quotes
|
131
|
-
When I run
|
131
|
+
When I run `ruby -e 'puts %{GET "/"}'`
|
132
132
|
Then the stdout should contain:
|
133
133
|
"""
|
134
134
|
GET "/"
|
135
135
|
"""
|
136
136
|
|
137
137
|
Scenario: Match output in stdout
|
138
|
-
When I run
|
138
|
+
When I run `ruby -e 'puts \"hello\\nworld\"'`
|
139
139
|
Then the stdout should contain "hello"
|
140
140
|
Then the stderr should not contain "hello"
|
141
141
|
|
142
142
|
Scenario: Detect output from all processes
|
143
|
-
When I run
|
144
|
-
And I run
|
143
|
+
When I run `ruby -e 'puts \"hello world!\"'`
|
144
|
+
And I run `ruby -e 'puts gets.chomp.reverse'` interactively
|
145
145
|
And I type "hello"
|
146
146
|
Then the output should contain exactly:
|
147
147
|
"""
|
@@ -151,8 +151,8 @@ Feature: Output
|
|
151
151
|
"""
|
152
152
|
|
153
153
|
Scenario: Detect stdout from all processes
|
154
|
-
When I run
|
155
|
-
And I run
|
154
|
+
When I run `ruby -e 'puts \"hello world!\"'`
|
155
|
+
And I run `ruby -e 'puts gets.chomp.reverse'` interactively
|
156
156
|
And I type "hello"
|
157
157
|
Then the stdout should contain:
|
158
158
|
"""
|
@@ -166,8 +166,8 @@ Feature: Output
|
|
166
166
|
"""
|
167
167
|
|
168
168
|
Scenario: Detect stderr from all processes
|
169
|
-
When I run
|
170
|
-
And I run
|
169
|
+
When I run `ruby -e 'STDERR.puts \"hello world!\"'`
|
170
|
+
And I run `ruby -e 'STDERR.puts gets.chomp.reverse'` interactively
|
171
171
|
And I type "hello"
|
172
172
|
Then the stderr should contain:
|
173
173
|
"""
|
@@ -181,22 +181,22 @@ Feature: Output
|
|
181
181
|
"""
|
182
182
|
|
183
183
|
Scenario: Detect output from named source
|
184
|
-
When I run
|
185
|
-
And I run
|
184
|
+
When I run `ruby -e 'puts :simple'`
|
185
|
+
And I run `ruby -e 'puts gets.chomp'` interactively
|
186
186
|
And I type "interactive"
|
187
187
|
Then the output from "ruby -e 'puts :simple'" should contain "simple"
|
188
188
|
And the output from "ruby -e 'puts gets.chomp'" should not contain "simple"
|
189
189
|
|
190
190
|
Scenario: Detect stdout from named source
|
191
|
-
When I run
|
192
|
-
And I run
|
191
|
+
When I run `ruby -e 'puts :hello'`
|
192
|
+
And I run `ruby -e 'puts :goodbye'`
|
193
193
|
Then the stdout from "ruby -e 'puts :hello'" should contain "hello"
|
194
194
|
And the stderr from "ruby -e 'puts :hello'" should not contain "hello"
|
195
195
|
And the stdout from "ruby -e 'puts :goodbye'" should not contain "hello"
|
196
196
|
|
197
197
|
Scenario: Detect stderr from named source
|
198
|
-
When I run
|
199
|
-
And I run
|
198
|
+
When I run `ruby -e 'STDERR.puts :hello'`
|
199
|
+
And I run `ruby -e 'puts :goodbye'`
|
200
200
|
Then the stderr from "ruby -e 'STDERR.puts :hello'" should contain "hello"
|
201
201
|
And the stdout from "ruby -e 'STDERR.puts :hello'" should not contain "hello"
|
202
202
|
And the stderr from "ruby -e 'puts :goodbye'" should not contain "hello"
|
data/lib/aruba/cucumber.rb
CHANGED
@@ -92,14 +92,29 @@ When /^I cd to "([^"]*)"$/ do |dir|
|
|
92
92
|
end
|
93
93
|
|
94
94
|
When /^I run "(.*)"$/ do |cmd|
|
95
|
+
warn(%{\e[35m The /^I run "(.*)"$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
96
|
+
run_simple(unescape(cmd), false)
|
97
|
+
end
|
98
|
+
|
99
|
+
When /^I run `([^`]*)`$/ do |cmd|
|
95
100
|
run_simple(unescape(cmd), false)
|
96
101
|
end
|
97
102
|
|
98
103
|
When /^I successfully run "(.*)"$/ do |cmd|
|
104
|
+
warn(%{\e[35m The /^I successfully run "(.*)"$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
105
|
+
run_simple(unescape(cmd))
|
106
|
+
end
|
107
|
+
|
108
|
+
When /^I successfully run `([^`]*)`$/ do |cmd|
|
99
109
|
run_simple(unescape(cmd))
|
100
110
|
end
|
101
111
|
|
102
112
|
When /^I run "([^"]*)" interactively$/ do |cmd|
|
113
|
+
warn(%{\e[35m The /^I run "([^"]*)" interactively$/ step definition is deprecated. Please use the `backticks` version\e[0m})
|
114
|
+
run_interactive(unescape(cmd))
|
115
|
+
end
|
116
|
+
|
117
|
+
When /^I run `([^`]*)` interactively$/ do |cmd|
|
103
118
|
run_interactive(unescape(cmd))
|
104
119
|
end
|
105
120
|
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aruba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 3
|
8
|
-
- 3
|
9
|
-
version: 0.3.3
|
4
|
+
prerelease:
|
5
|
+
version: 0.3.4
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- "Aslak Helles\xC3\xB8y"
|
@@ -16,7 +12,7 @@ autorequire:
|
|
16
12
|
bindir: bin
|
17
13
|
cert_chain: []
|
18
14
|
|
19
|
-
date: 2011-03-
|
15
|
+
date: 2011-03-20 00:00:00 +00:00
|
20
16
|
default_executable:
|
21
17
|
dependencies:
|
22
18
|
- !ruby/object:Gem::Dependency
|
@@ -24,12 +20,9 @@ dependencies:
|
|
24
20
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
21
|
none: false
|
26
22
|
requirements:
|
27
|
-
- -
|
23
|
+
- - ">="
|
28
24
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
- 0
|
31
|
-
- 10
|
32
|
-
version: "0.10"
|
25
|
+
version: 0.10.0
|
33
26
|
type: :runtime
|
34
27
|
prerelease: false
|
35
28
|
version_requirements: *id001
|
@@ -38,12 +31,8 @@ dependencies:
|
|
38
31
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
32
|
none: false
|
40
33
|
requirements:
|
41
|
-
- -
|
34
|
+
- - ">="
|
42
35
|
- !ruby/object:Gem::Version
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
- 1
|
46
|
-
- 7
|
47
36
|
version: 0.1.7
|
48
37
|
type: :runtime
|
49
38
|
prerelease: false
|
@@ -53,12 +42,9 @@ dependencies:
|
|
53
42
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
43
|
none: false
|
55
44
|
requirements:
|
56
|
-
- -
|
45
|
+
- - ">="
|
57
46
|
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
- 2
|
60
|
-
- 5
|
61
|
-
version: "2.5"
|
47
|
+
version: 2.5.0
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: *id003
|
@@ -109,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
95
|
requirements:
|
110
96
|
- - ">="
|
111
97
|
- !ruby/object:Gem::Version
|
112
|
-
hash:
|
98
|
+
hash: 2705483300968521573
|
113
99
|
segments:
|
114
100
|
- 0
|
115
101
|
version: "0"
|
@@ -118,17 +104,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
104
|
requirements:
|
119
105
|
- - ">="
|
120
106
|
- !ruby/object:Gem::Version
|
121
|
-
hash:
|
107
|
+
hash: 2705483300968521573
|
122
108
|
segments:
|
123
109
|
- 0
|
124
110
|
version: "0"
|
125
111
|
requirements: []
|
126
112
|
|
127
113
|
rubyforge_project:
|
128
|
-
rubygems_version: 1.
|
114
|
+
rubygems_version: 1.6.2
|
129
115
|
signing_key:
|
130
116
|
specification_version: 3
|
131
|
-
summary: aruba-0.3.
|
117
|
+
summary: aruba-0.3.4
|
132
118
|
test_files:
|
133
119
|
- features/exit_statuses.feature
|
134
120
|
- features/file_system_commands.feature
|