test_bench-fixture 1.2.3.0 → 1.4.0.0
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd27a4edf7acf4edf1164412314db924454693e2f72f0e574bec02a58af093ae
|
4
|
+
data.tar.gz: bc3a36d8ad06b43cc579ef4f0f5b0c5f88218bc1a3d59619bf5de16a6b28f2d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 582d6f3112ba646f6e0c44bd23e8a7a1edc2cd56cc0f7fe50fac7165e512be215dba275d44535042fd19fa03dfbc96d693a066802f3aab3c2e0e23a13a270a1d
|
7
|
+
data.tar.gz: 7a496e3c08dbb33f894d09609d735868c22904355fabb162a500b9cd8aa3ad566a652758e15187de9fb5fca9a0ca1ce4fda9981cecd2e25a41da8e5ebdb22cd8
|
@@ -24,7 +24,7 @@ module TestBench
|
|
24
24
|
policies.fetch(policy) do
|
25
25
|
*policies, final_policy = self.policies.keys
|
26
26
|
|
27
|
-
policy_list = "#{policies.map(&:inspect)
|
27
|
+
policy_list = "#{policies.map(&:inspect).join(', ')} or #{final_policy.inspect}"
|
28
28
|
|
29
29
|
raise PolicyError, "Policy #{policy.inspect} is unknown. It must be one of: #{policy_list}"
|
30
30
|
end
|
@@ -37,7 +37,11 @@ module TestBench
|
|
37
37
|
def self.call(cls, *args, **kwargs, &block)
|
38
38
|
factory_method = factory_method(cls)
|
39
39
|
|
40
|
-
|
40
|
+
if factory_method.name == :new
|
41
|
+
last_parameter_type, _ = cls.instance_method(:initialize).parameters.last
|
42
|
+
else
|
43
|
+
last_parameter_type, _ = factory_method.parameters.last
|
44
|
+
end
|
41
45
|
|
42
46
|
if last_parameter_type == :block
|
43
47
|
instance = build(cls, *args, **kwargs, &block)
|
@@ -58,12 +62,20 @@ module TestBench
|
|
58
62
|
alias_method :session, :test_session
|
59
63
|
alias_method :session=, :test_session=
|
60
64
|
|
61
|
-
def comment(text)
|
65
|
+
def comment(text, *additional_lines)
|
62
66
|
test_session.comment(text)
|
67
|
+
|
68
|
+
additional_lines.each do |text|
|
69
|
+
test_session.comment(text)
|
70
|
+
end
|
63
71
|
end
|
64
72
|
|
65
|
-
def detail(text)
|
73
|
+
def detail(text, *additional_lines)
|
66
74
|
test_session.detail(text)
|
75
|
+
|
76
|
+
additional_lines.each do |text|
|
77
|
+
test_session.detail(text)
|
78
|
+
end
|
67
79
|
end
|
68
80
|
|
69
81
|
def assert(value, caller_location: nil)
|
@@ -95,8 +107,6 @@ module TestBench
|
|
95
107
|
|
96
108
|
detail "(No error was raised)"
|
97
109
|
|
98
|
-
assert(false, caller_location: caller_location)
|
99
|
-
|
100
110
|
rescue error_class => error
|
101
111
|
|
102
112
|
detail "Raised error: #{error.inspect}#{" (subclass of #{error_class})" if error.class < error_class}"
|
@@ -112,6 +122,9 @@ module TestBench
|
|
112
122
|
end
|
113
123
|
|
114
124
|
assert(result, caller_location: caller_location)
|
125
|
+
|
126
|
+
else
|
127
|
+
assert(false, caller_location: caller_location)
|
115
128
|
end
|
116
129
|
|
117
130
|
def refute_raises(error_class=nil, strict: nil, caller_location: nil, &block)
|
@@ -156,6 +169,16 @@ module TestBench
|
|
156
169
|
test_session.test(text, &block)
|
157
170
|
end
|
158
171
|
|
172
|
+
def test!(text=nil, &block)
|
173
|
+
result = test(text, &block)
|
174
|
+
|
175
|
+
unless result
|
176
|
+
raise Session::Abort.new, "Context aborted"
|
177
|
+
end
|
178
|
+
|
179
|
+
result
|
180
|
+
end
|
181
|
+
|
159
182
|
def fixture(cls, *args, **kwargs, &block)
|
160
183
|
Fixture.(cls, *args, session: test_session, **kwargs, &block)
|
161
184
|
end
|
@@ -59,7 +59,7 @@ module TestBench
|
|
59
59
|
|
60
60
|
def self.assure_level(level)
|
61
61
|
unless level_ordinals.key?(level)
|
62
|
-
raise Error, "Unknown log level #{level.inspect} (Valid levels: #{levels.map(&:inspect)
|
62
|
+
raise Error, "Unknown log level #{level.inspect} (Valid levels: #{levels.map(&:inspect).join(', ')})"
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -2,22 +2,22 @@ module TestBench
|
|
2
2
|
module Fixture
|
3
3
|
class Session
|
4
4
|
Error = Class.new(RuntimeError)
|
5
|
+
Abort = Class.new(RuntimeError)
|
5
6
|
|
6
7
|
def assertion_counter
|
7
8
|
@assertion_counter ||= 0
|
8
9
|
end
|
9
10
|
attr_writer :assertion_counter
|
10
11
|
|
11
|
-
def
|
12
|
-
@
|
12
|
+
def failure_counter
|
13
|
+
@failure_counter ||= 0
|
13
14
|
end
|
14
|
-
attr_writer :
|
15
|
+
attr_writer :failure_counter
|
15
16
|
|
16
|
-
def
|
17
|
-
@
|
17
|
+
def skip_counter
|
18
|
+
@skip_counter ||= 0
|
18
19
|
end
|
19
|
-
attr_writer :
|
20
|
-
alias_method :skip?, :skip
|
20
|
+
attr_writer :skip_counter
|
21
21
|
|
22
22
|
def started
|
23
23
|
instance_variable_defined?(:@started) ?
|
@@ -36,7 +36,7 @@ module TestBench
|
|
36
36
|
alias_method :finished?, :finished
|
37
37
|
|
38
38
|
def error_policy
|
39
|
-
@error_policy ||= ErrorPolicy::
|
39
|
+
@error_policy ||= ErrorPolicy::RescueAssert.new
|
40
40
|
end
|
41
41
|
attr_writer :error_policy
|
42
42
|
|
@@ -105,14 +105,6 @@ module TestBench
|
|
105
105
|
output.detail(text)
|
106
106
|
end
|
107
107
|
|
108
|
-
def error(error)
|
109
|
-
fail!
|
110
|
-
|
111
|
-
output.error(error)
|
112
|
-
|
113
|
-
error_policy.(error)
|
114
|
-
end
|
115
|
-
|
116
108
|
def assert(value, caller_location: nil)
|
117
109
|
caller_location ||= caller[0]
|
118
110
|
|
@@ -123,8 +115,6 @@ module TestBench
|
|
123
115
|
output.assert(result, caller_location)
|
124
116
|
|
125
117
|
unless result
|
126
|
-
self.error_counter += 1
|
127
|
-
|
128
118
|
assertion_failure = AssertionFailure.build(caller_location)
|
129
119
|
raise assertion_failure
|
130
120
|
end
|
@@ -135,30 +125,36 @@ module TestBench
|
|
135
125
|
def load(path)
|
136
126
|
output.enter_file(path)
|
137
127
|
|
138
|
-
|
128
|
+
result = false
|
139
129
|
|
140
|
-
|
130
|
+
Kernel.load(path)
|
141
131
|
|
142
|
-
|
132
|
+
result = true
|
143
133
|
|
144
|
-
|
134
|
+
ensure
|
135
|
+
|
136
|
+
output.exit_file(path, result)
|
145
137
|
end
|
146
138
|
|
147
139
|
def test(title=nil, &block)
|
148
140
|
if block.nil?
|
141
|
+
record_skip
|
149
142
|
output.skip_test(title)
|
150
143
|
return
|
151
144
|
end
|
152
145
|
|
153
146
|
output.start_test(title)
|
154
147
|
|
148
|
+
previous_failure_counter = self.failure_counter
|
155
149
|
previous_assertion_counter = self.assertion_counter
|
156
150
|
|
157
|
-
action =
|
151
|
+
action = ->{
|
158
152
|
block.()
|
159
153
|
|
160
|
-
|
161
|
-
|
154
|
+
if failure_counter == previous_failure_counter
|
155
|
+
if assertion_counter == previous_assertion_counter
|
156
|
+
raise Error, "Test did not perform an assertion"
|
157
|
+
end
|
162
158
|
end
|
163
159
|
}
|
164
160
|
|
@@ -169,6 +165,7 @@ module TestBench
|
|
169
165
|
|
170
166
|
def context(title=nil, &block)
|
171
167
|
if block.nil?
|
168
|
+
record_skip
|
172
169
|
output.skip_context(title)
|
173
170
|
return
|
174
171
|
end
|
@@ -198,26 +195,32 @@ module TestBench
|
|
198
195
|
output.start_fixture(fixture)
|
199
196
|
|
200
197
|
action = proc { actions.each(&:call) }
|
201
|
-
result = evaluate(action)
|
202
198
|
|
203
|
-
|
199
|
+
result = evaluate(action) do |result|
|
200
|
+
output.finish_fixture(fixture, result)
|
201
|
+
end
|
204
202
|
|
205
203
|
result
|
206
204
|
end
|
207
205
|
|
208
206
|
def evaluate(action, &block)
|
209
|
-
|
207
|
+
previous_failure_counter = self.failure_counter
|
210
208
|
|
211
209
|
begin
|
212
210
|
action.()
|
213
211
|
|
212
|
+
rescue Abort
|
213
|
+
|
214
214
|
rescue => error
|
215
|
-
|
215
|
+
record_failure
|
216
|
+
|
217
|
+
output.error(error)
|
216
218
|
|
219
|
+
error_policy.(error)
|
217
220
|
error = nil
|
218
221
|
|
219
222
|
ensure
|
220
|
-
result =
|
223
|
+
result = failure_counter == previous_failure_counter
|
221
224
|
|
222
225
|
block.(result, error) unless block.nil?
|
223
226
|
end
|
@@ -225,17 +228,21 @@ module TestBench
|
|
225
228
|
result
|
226
229
|
end
|
227
230
|
|
228
|
-
def
|
229
|
-
self.
|
230
|
-
self.error_counter += 1
|
231
|
+
def record_failure
|
232
|
+
self.failure_counter += 1
|
231
233
|
end
|
234
|
+
alias_method :fail!, :record_failure
|
232
235
|
|
233
236
|
def failed?
|
234
|
-
|
237
|
+
failure_counter.nonzero? ? true : false
|
238
|
+
end
|
239
|
+
|
240
|
+
def record_skip
|
241
|
+
self.skip_counter += 1
|
235
242
|
end
|
236
243
|
|
237
|
-
def
|
238
|
-
|
244
|
+
def skipped?
|
245
|
+
skip_counter.nonzero? ? true : false
|
239
246
|
end
|
240
247
|
end
|
241
248
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_bench-fixture
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Ladd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test_bench-bootstrap
|
@@ -71,8 +71,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
73
|
requirements: []
|
74
|
-
rubygems_version: 3.1.
|
74
|
+
rubygems_version: 3.1.6
|
75
75
|
signing_key:
|
76
76
|
specification_version: 4
|
77
|
-
summary: Test object framework
|
77
|
+
summary: Test object framework for Ruby and MRuby
|
78
78
|
test_files: []
|