auger 1.2.4 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +13 -0
- data/VERSION +1 -1
- data/bin/aug +27 -2
- data/lib/auger/project.rb +8 -0
- data/lib/auger/request.rb +5 -0
- data/lib/auger/result.rb +23 -19
- data/lib/auger/test.rb +5 -3
- metadata +3 -3
data/README.md
CHANGED
@@ -103,6 +103,19 @@ a request, in the case of `http` the response is an HTTP::Reponse object.
|
|
103
103
|
and the response is passed to a block. The result of executing the block is
|
104
104
|
presented as the result of this test (in this case true or false).
|
105
105
|
|
106
|
+
For better control over the result, it is possible to construct and
|
107
|
+
return an Auger::Result object, with an outcome (string to be
|
108
|
+
printed) and a boolean status (which aug client will use to print
|
109
|
+
the result in green or red), for example:
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
test 'http status code' do |response|
|
113
|
+
Result(r.code, r.code == '200')
|
114
|
+
end
|
115
|
+
```
|
116
|
+
|
117
|
+
will always show the code, in green if 200, red otherwise.
|
118
|
+
|
106
119
|
Save the config to a file `fe_web` and run with the `aug` command:
|
107
120
|
|
108
121
|
$ aug ./fe_web
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/bin/aug
CHANGED
@@ -74,6 +74,32 @@ def format_outcome(outcome)
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
## pretty-print Result object
|
78
|
+
module Auger
|
79
|
+
class Result
|
80
|
+
def format
|
81
|
+
output =
|
82
|
+
case self.outcome
|
83
|
+
when TrueClass then "\u2713"
|
84
|
+
when MatchData then outcome.captures.empty? ? "\u2713" : outcome.captures.join(' ')
|
85
|
+
when FalseClass then "\u2717"
|
86
|
+
when NilClass then "nil"
|
87
|
+
when Exception then "#{outcome.class}: #{outcome.to_s}"
|
88
|
+
else outcome.to_s
|
89
|
+
end
|
90
|
+
|
91
|
+
color =
|
92
|
+
case self.status
|
93
|
+
when FalseClass, NilClass then :red
|
94
|
+
when Exception then :magenta
|
95
|
+
else :green
|
96
|
+
end
|
97
|
+
|
98
|
+
return output.color(color)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
77
103
|
Auger::Config.load(cfg).projects.each do |project|
|
78
104
|
|
79
105
|
threads = Hash.new { |h,k| h[k] = [] }
|
@@ -103,8 +129,7 @@ Auger::Config.load(cfg).projects.each do |project|
|
|
103
129
|
threads[server].each do |thread|
|
104
130
|
results = thread.value # this waits on thread
|
105
131
|
results.flatten.each do |result|
|
106
|
-
|
107
|
-
puts " %+#{max_test_length}s %-30s" % [result.test.name, output]
|
132
|
+
puts " %+#{max_test_length}s %-30s" % [result.test.name, result.format]
|
108
133
|
end
|
109
134
|
end
|
110
135
|
end
|
data/lib/auger/project.rb
CHANGED
data/lib/auger/request.rb
CHANGED
@@ -18,6 +18,11 @@ module Auger
|
|
18
18
|
@tests << Test.new(name, block)
|
19
19
|
end
|
20
20
|
|
21
|
+
## called within test block to return a Result object
|
22
|
+
def Result(*args)
|
23
|
+
Auger::Result.new(*args)
|
24
|
+
end
|
25
|
+
|
21
26
|
## callback to be run after request, but before tests
|
22
27
|
def before_tests(&block)
|
23
28
|
@before_tests_proc = block
|
data/lib/auger/result.rb
CHANGED
@@ -1,26 +1,30 @@
|
|
1
1
|
module Auger
|
2
|
-
|
2
|
+
|
3
3
|
class Result
|
4
|
-
attr_accessor :test, :outcome
|
5
|
-
|
6
|
-
|
4
|
+
attr_accessor :test, :outcome, :status
|
5
|
+
|
6
|
+
# def initialize(test, outcome)
|
7
|
+
# @test = test
|
8
|
+
# @outcome = outcome
|
9
|
+
# end
|
10
|
+
|
11
|
+
# def initialize(*args)
|
12
|
+
# hash = args.last.is_a?(Hash) ? args.pop : {}
|
13
|
+
# hash.each { |k,v| puts "got hash: #{k} = #{v}" }
|
14
|
+
# (@outcome, @status) = args
|
15
|
+
# end
|
16
|
+
|
17
|
+
## optional args are outcome, status, Hash of instance variables
|
18
|
+
# def initialize(*args)
|
19
|
+
# hash = args.last.is_a?(Hash) ? args.pop : {}
|
20
|
+
# (@outcome, @status) = args
|
21
|
+
# hash.each { |k,v| self.instance_variable_set("@#{k}", v) }
|
22
|
+
# end
|
23
|
+
|
24
|
+
def initialize(outcome = nil, status = outcome)
|
7
25
|
@outcome = outcome
|
26
|
+
@status = status
|
8
27
|
end
|
9
|
-
|
10
|
-
# def to_s
|
11
|
-
# case @outcome
|
12
|
-
# when MatchData then
|
13
|
-
# @outcome.captures.empty? ? "\u2713" : @outcome.captures.join(' ')
|
14
|
-
# when TrueClass then
|
15
|
-
# "\u2713"
|
16
|
-
# when FalseClass then
|
17
|
-
# "\u2717"
|
18
|
-
# when NilClass then
|
19
|
-
# "\u2717"
|
20
|
-
# else
|
21
|
-
# @outcome.to_s
|
22
|
-
# end
|
23
|
-
# end
|
24
28
|
|
25
29
|
end
|
26
30
|
|
data/lib/auger/test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Auger
|
2
2
|
|
3
3
|
class Test
|
4
|
-
attr_accessor :name, :block
|
4
|
+
attr_accessor :name, :block, :id
|
5
5
|
|
6
6
|
def initialize(name, block)
|
7
7
|
@name = name
|
@@ -14,10 +14,12 @@ module Auger
|
|
14
14
|
if response.is_a?(Exception) or @block.nil?
|
15
15
|
response
|
16
16
|
else
|
17
|
-
@block.call(response) rescue $!
|
17
|
+
@block.call(response) rescue $! # run the test
|
18
18
|
end
|
19
19
|
|
20
|
-
Auger::Result.new(
|
20
|
+
result = outcome.is_a?(Result) ? outcome : Auger::Result.new(outcome)
|
21
|
+
result.test = self
|
22
|
+
result
|
21
23
|
end
|
22
24
|
|
23
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-06-
|
13
|
+
date: 2012-06-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project:
|
184
|
-
rubygems_version: 1.8.
|
184
|
+
rubygems_version: 1.8.23
|
185
185
|
signing_key:
|
186
186
|
specification_version: 3
|
187
187
|
summary: App && infrastructure testing DSL
|