theorem 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/src/theorem/beaker.rb +8 -3
- data/src/theorem/harness.rb +16 -1
- data/src/theorem/notation.rb +1 -1
- data/src/theorem/reporter.rb +2 -1
- data/src/theorem/test.rb +7 -7
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee6da97e143aea34cbdcac8dc8399267376345c958186bb4fcd3db2a282553e8
|
4
|
+
data.tar.gz: 7312e470f9ad0442de46f23b8d755389a6a3c43891c1f98ed9fce1ab4ae31036
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 721afc1fff1e6dee399907cadfb453633ec2b848b2e847968e0ca56f7db490bb69100e3887faa3769653c7fd090ece96e3aa2527f9cb890030905063302b5ae2
|
7
|
+
data.tar.gz: 932e5c189ed8c47d3c4e96da2591bd54d17bd5c3abfb0d480db0093823dbd40d76f84ac329bcaab47b2271e364abb32ce192306fdee197e6160ab86f6d63610d
|
data/src/theorem/beaker.rb
CHANGED
@@ -50,10 +50,15 @@ module Theorem
|
|
50
50
|
@state = []
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
54
|
-
|
53
|
+
def clone
|
54
|
+
@state.map!(&:clone)
|
55
|
+
self
|
56
|
+
end
|
57
|
+
|
58
|
+
def reverse_run!(ctx, **params)
|
59
|
+
ctx.instance_exec @state.reverse, ctx, params do |state, ctx, params|
|
55
60
|
state.each do |b|
|
56
|
-
ctx.
|
61
|
+
ctx.instance_exec **params, &b
|
57
62
|
end
|
58
63
|
end
|
59
64
|
end
|
data/src/theorem/harness.rb
CHANGED
@@ -27,7 +27,8 @@ module Theorem
|
|
27
27
|
inner.suite_finished_subscribers.each do |subscriber|
|
28
28
|
subscriber.call(results, duration)
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
|
+
inner.instance_exec results, &mod.run_exit
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
@@ -39,10 +40,18 @@ module Theorem
|
|
39
40
|
@on_load_tests = block
|
40
41
|
end
|
41
42
|
|
43
|
+
def on_exit(&block)
|
44
|
+
@on_exit = block
|
45
|
+
end
|
46
|
+
|
42
47
|
def on_run(&block)
|
43
48
|
@on_run = block
|
44
49
|
end
|
45
50
|
|
51
|
+
def run_exit
|
52
|
+
@on_exit || default_exit
|
53
|
+
end
|
54
|
+
|
46
55
|
def run_loader
|
47
56
|
@on_run || default_runner
|
48
57
|
end
|
@@ -53,6 +62,12 @@ module Theorem
|
|
53
62
|
|
54
63
|
private
|
55
64
|
|
65
|
+
def default_exit
|
66
|
+
lambda do |results|
|
67
|
+
exit results.any?(&:failed?) ? 1 : 0
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
56
71
|
def default_loader
|
57
72
|
lambda do |options|
|
58
73
|
directory = options[:directory] || '.'
|
data/src/theorem/notation.rb
CHANGED
data/src/theorem/reporter.rb
CHANGED
@@ -7,7 +7,8 @@ module Theorem
|
|
7
7
|
def self.extended(mod)
|
8
8
|
mod.extend(mod)
|
9
9
|
mod.define_singleton_method :included do |root|
|
10
|
-
mod.subscriptions
|
10
|
+
subscriptions = mod.subscriptions || []
|
11
|
+
subscriptions.each do |subscription, handler|
|
11
12
|
mod.instance_exec root, subscription, handler do |root, sub, handle|
|
12
13
|
root.send(sub, &handle)
|
13
14
|
end
|
data/src/theorem/test.rb
CHANGED
@@ -37,16 +37,16 @@ module Theorem
|
|
37
37
|
klass.include(control)
|
38
38
|
klass.instance_exec self do |me|
|
39
39
|
@parent_before_all ||= []
|
40
|
-
@before_all.concat me.before_all_beaker
|
40
|
+
@before_all.concat me.before_all_beaker.clone
|
41
41
|
|
42
42
|
@parent_before_each ||= []
|
43
|
-
@before_each.concat me.before_each_beaker
|
43
|
+
@before_each.concat me.before_each_beaker.clone
|
44
44
|
|
45
45
|
@parent_after_each ||= []
|
46
|
-
@after_each.concat me.after_each_beaker
|
46
|
+
@after_each.concat me.after_each_beaker.clone
|
47
47
|
|
48
48
|
@parent_after_all ||= []
|
49
|
-
@after_all.concat me.after_all_beaker
|
49
|
+
@after_all.concat me.after_all_beaker.clone
|
50
50
|
end
|
51
51
|
super
|
52
52
|
end
|
@@ -132,7 +132,7 @@ module Theorem
|
|
132
132
|
|
133
133
|
before_test_case = test_case.clone
|
134
134
|
error ||= run_test(test, before_test_case)
|
135
|
-
error ||= run_after_each_beakers(before_test_case)
|
135
|
+
error ||= run_after_each_beakers(before_test_case, error: error)
|
136
136
|
|
137
137
|
notary = test_case.notary.merge(test.notary)
|
138
138
|
|
@@ -200,8 +200,8 @@ module Theorem
|
|
200
200
|
results
|
201
201
|
end
|
202
202
|
|
203
|
-
def run_after_each_beakers(test_case)
|
204
|
-
@after_each.reverse_run!(test_case)
|
203
|
+
def run_after_each_beakers(test_case, **params)
|
204
|
+
@after_each.reverse_run!(test_case, **params)
|
205
205
|
nil
|
206
206
|
rescue Exception => error
|
207
207
|
Theorem.handle_exception(error)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theorem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Gregory
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: extended_dir
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: parallel
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: simple and extensible test library toolkit
|
112
126
|
email: sean.christopher.gregory@gmail.com
|
113
127
|
executables:
|