attestify 0.1.0.pre.2 → 0.1.0.pre.3
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 +4 -4
- data/lib/attestify.rb +6 -1
- data/lib/attestify/assertions.rb +77 -72
- data/lib/attestify/assertions/output_assertion.rb +1 -3
- data/lib/attestify/autorun.rb +9 -1
- data/lib/attestify/cli.rb +1 -0
- data/lib/attestify/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7277786172463a5c2d2b1e37dcb5d9336e69465f
|
4
|
+
data.tar.gz: 3b2bdd5dbcf9cc1cad6d36f23fc2e13bce86e84d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1da0ce79a1f218b79f81f1d299957657f6a8b7308896ecdc59dfc1e4450e55e50a03ed3d3882e2f8fc3a0664ffb0e7af7cad70fbeb75567936a9190dee559213
|
7
|
+
data.tar.gz: eba4dafcd0f9bc8cafde2366fdf478af5a72e0490f136389083c2bbd16474b3418e7aaed97835920cb7447193f5e15d8ca2c7b6be743b5e371be9b4938b76879
|
data/lib/attestify.rb
CHANGED
@@ -20,7 +20,12 @@ module Attestify
|
|
20
20
|
@root ||= File.realpath(File.expand_path("../..", __FILE__)).freeze
|
21
21
|
end
|
22
22
|
|
23
|
+
def self.disable_autorun
|
24
|
+
@autorun_disabled = true
|
25
|
+
@autorun.disable if @autorun
|
26
|
+
end
|
27
|
+
|
23
28
|
def self.autorun
|
24
|
-
@autorun ||= Attestify::Autorun.new.tap
|
29
|
+
@autorun ||= Attestify::Autorun.new.tap { |a| a.enable unless @autorun_disabled }
|
25
30
|
end
|
26
31
|
end
|
data/lib/attestify/assertions.rb
CHANGED
@@ -9,100 +9,97 @@ module Attestify
|
|
9
9
|
autoload :OutputAssertion, "attestify/assertions/output_assertion"
|
10
10
|
|
11
11
|
def assert(value, message = nil)
|
12
|
-
record_assert(value) {
|
12
|
+
record_assert(value, message) { "Failed assertion." }
|
13
13
|
end
|
14
14
|
|
15
15
|
def assert_empty(object, message = nil)
|
16
16
|
if object.respond_to?(:empty?)
|
17
|
-
record_assert(object.empty
|
17
|
+
record_assert(object.empty?, message) { "Expected #{object.inspect} to be empty" }
|
18
18
|
else
|
19
|
-
record_assert(false) {
|
19
|
+
record_assert(false, message) { "Expected #{object.inspect} to be empty, but it didn't respond_to(:empty?)" }
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
def assert_equal(expected, actual, message = nil)
|
24
|
-
record_assert(expected == actual) {
|
24
|
+
record_assert(expected == actual, message) { "Expected #{expected.inspect} == #{actual.inspect}" }
|
25
25
|
end
|
26
26
|
|
27
27
|
def assert_in_delta(expected, actual, delta = 0.001, message = nil)
|
28
|
-
record_assert((expected - actual).abs < delta) do
|
29
|
-
|
28
|
+
record_assert((expected - actual).abs < delta, message) do
|
29
|
+
"Expected #{expected.inspect} == #{actual.inspect} within #{delta.inspect}"
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
def assert_includes(collection, object, message = nil)
|
34
34
|
if collection.respond_to?(:include?)
|
35
|
-
record_assert(collection.include?(object)) do
|
36
|
-
|
35
|
+
record_assert(collection.include?(object), message) do
|
36
|
+
"Expected #{collection.inspect} to include?(#{object.inspect})"
|
37
37
|
end
|
38
38
|
else
|
39
|
-
record_assert(false) do
|
40
|
-
|
41
|
-
"but it didn't respond_to(:include?)"
|
39
|
+
record_assert(false, message) do
|
40
|
+
"Expected #{collection.inspect} to include?(#{object.inspect}), but it didn't respond_to(:include?)"
|
42
41
|
end
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
45
|
def assert_instance_of(clazz, object, message = nil)
|
47
46
|
if clazz.is_a?(Module)
|
48
|
-
record_assert(object.instance_of?(clazz)) do
|
49
|
-
|
47
|
+
record_assert(object.instance_of?(clazz), message) do
|
48
|
+
"Expected #{object.inspect} to be an instance_of?(#{clazz.inspect})"
|
50
49
|
end
|
51
50
|
else
|
52
|
-
record_assert(false) do
|
53
|
-
|
54
|
-
|
51
|
+
record_assert(false, message) do
|
52
|
+
"Expected #{object.inspect} to be an instance_of?(#{clazz.inspect}), " \
|
53
|
+
"but #{clazz.inspect} is not a Class or Module"
|
55
54
|
end
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
58
|
def assert_kind_of(clazz, object, message = nil)
|
60
59
|
if clazz.is_a?(Module)
|
61
|
-
record_assert(object.is_a?(clazz)) do
|
62
|
-
|
60
|
+
record_assert(object.is_a?(clazz), message) do
|
61
|
+
"Expected #{object.inspect} to be a kind_of?(#{clazz.inspect})"
|
63
62
|
end
|
64
63
|
else
|
65
|
-
record_assert(false) do
|
66
|
-
|
67
|
-
"but #{clazz.inspect} is not a Class or Module"
|
64
|
+
record_assert(false, message) do
|
65
|
+
"Expected #{object.inspect} to be a kind_of?(#{clazz.inspect}), but #{clazz.inspect} is not a Class or Module"
|
68
66
|
end
|
69
67
|
end
|
70
68
|
end
|
71
69
|
|
72
70
|
def assert_match(matcher, object, message = nil)
|
73
|
-
record_assert(matcher =~ object) {
|
71
|
+
record_assert(matcher =~ object, message) { "Expected #{matcher.inspect} =~ #{object.inspect}" }
|
74
72
|
end
|
75
73
|
|
76
74
|
def assert_nil(object, message = nil)
|
77
|
-
record_assert(object.nil
|
75
|
+
record_assert(object.nil?, message) { "Expected #{object.inspect} to be nil" }
|
78
76
|
end
|
79
77
|
|
80
78
|
def assert_operator(left_operand, operator, right_operand, message = nil)
|
81
79
|
if left_operand.respond_to?(operator)
|
82
|
-
record_assert(left_operand.send(operator, right_operand)) do
|
83
|
-
|
80
|
+
record_assert(left_operand.send(operator, right_operand), message) do
|
81
|
+
"Expected #{left_operand.inspect} #{operator} #{right_operand.inspect}"
|
84
82
|
end
|
85
83
|
else
|
86
|
-
record_assert(false) do
|
87
|
-
|
88
|
-
|
84
|
+
record_assert(false, message) do
|
85
|
+
"Expected #{left_operand.inspect} #{operator} #{right_operand.inspect}, " \
|
86
|
+
"but #{left_operand.inspect} didn't respond_to?(#{operator})"
|
89
87
|
end
|
90
88
|
end
|
91
89
|
end
|
92
90
|
|
93
91
|
def assert_output(expected_stdout = nil, expected_stderr = nil, message = nil)
|
94
92
|
stdout, stderr = capture_io { yield }
|
95
|
-
assertion = Attestify::Assertions::OutputAssertion.new(expected_stdout, expected_stderr, stdout, stderr
|
96
|
-
record_assert(assertion.assert) { assertion.message }
|
93
|
+
assertion = Attestify::Assertions::OutputAssertion.new(expected_stdout, expected_stderr, stdout, stderr)
|
94
|
+
record_assert(assertion.assert, message) { assertion.message }
|
97
95
|
end
|
98
96
|
|
99
97
|
def assert_predicate(object, predicate, message = nil)
|
100
98
|
if object.respond_to?(predicate)
|
101
|
-
record_assert(object.send(predicate)) {
|
99
|
+
record_assert(object.send(predicate), message) { "Expected #{object.inspect} to be #{predicate}" }
|
102
100
|
else
|
103
|
-
record_assert(false) do
|
104
|
-
|
105
|
-
"but #{object.inspect} didn't respond_to?(#{predicate})"
|
101
|
+
record_assert(false, message) do
|
102
|
+
"Expected #{object.inspect} to be #{predicate}, but #{object.inspect} didn't respond_to?(#{predicate})"
|
106
103
|
end
|
107
104
|
end
|
108
105
|
end
|
@@ -111,11 +108,11 @@ module Attestify
|
|
111
108
|
message = exceptions.pop if exceptions.last.is_a?(String)
|
112
109
|
exceptions = [StandardError] if exceptions.empty?
|
113
110
|
yield
|
114
|
-
record_assert(false) {
|
111
|
+
record_assert(false, message) { "Expected one of: #{exceptions.inspect} to be raised, but nothing was raised" }
|
115
112
|
return nil
|
116
113
|
rescue => e
|
117
|
-
record_assert(exceptions.any? { |x| e.is_a?(x) }) do
|
118
|
-
|
114
|
+
record_assert(exceptions.any? { |x| e.is_a?(x) }, message) do
|
115
|
+
"Expected one of: #{exceptions.inspect} to be raised, but instead got: #{e.class.name}"
|
119
116
|
end
|
120
117
|
|
121
118
|
return e
|
@@ -123,31 +120,31 @@ module Attestify
|
|
123
120
|
|
124
121
|
def assert_respond_to(object, method, message = nil)
|
125
122
|
if method.is_a?(String) || method.is_a?(Symbol)
|
126
|
-
record_assert(object.respond_to?(method)) do
|
127
|
-
|
123
|
+
record_assert(object.respond_to?(method), message) do
|
124
|
+
"Expected #{object.inspect} to respond_to?(#{method.inspect})"
|
128
125
|
end
|
129
126
|
else
|
130
|
-
record_assert(false) do
|
131
|
-
|
132
|
-
|
127
|
+
record_assert(false, message) do
|
128
|
+
"Expected #{object.inspect} to respond_to?(#{method.inspect}), " \
|
129
|
+
"but #{method.inspect} is not a String or Symbol"
|
133
130
|
end
|
134
131
|
end
|
135
132
|
end
|
136
133
|
|
137
134
|
def assert_same(expected, actual, message = nil)
|
138
|
-
record_assert(expected.equal?(actual)) {
|
135
|
+
record_assert(expected.equal?(actual), message) { "Expected #{expected.inspect} is equal?(#{actual.inspect})" }
|
139
136
|
end
|
140
137
|
|
141
138
|
def assert_silent(message = nil)
|
142
139
|
stdout, stderr = capture_io { yield }
|
143
|
-
assertion = Attestify::Assertions::OutputAssertion.new("", "", stdout, stderr
|
140
|
+
assertion = Attestify::Assertions::OutputAssertion.new("", "", stdout, stderr)
|
144
141
|
|
145
|
-
record_assert(assertion.assert) do
|
146
|
-
|
142
|
+
record_assert(assertion.assert, message) do
|
143
|
+
"Expected silence, but instead got: $stdout: #{stdout.inspect}, and $stderr: #{stderr.inspect}"
|
147
144
|
end
|
148
145
|
end
|
149
146
|
|
150
|
-
def assert_42(expected, message = nil) # rubocop:disable Metrics/
|
147
|
+
def assert_42(expected, message = nil) # rubocop:disable Metrics/MethodLength
|
151
148
|
record_assert(
|
152
149
|
if expected.is_a?(Numeric)
|
153
150
|
expected == 42
|
@@ -157,9 +154,9 @@ module Attestify
|
|
157
154
|
expected.send("42?")
|
158
155
|
elsif expected.respond_to?(:forty_two?)
|
159
156
|
expected.forty_two?
|
160
|
-
end
|
157
|
+
end, message
|
161
158
|
) do
|
162
|
-
|
159
|
+
"Answer to the Ultimate Question of Life, The Universe, and Everything is Incorrect"
|
163
160
|
end
|
164
161
|
end
|
165
162
|
|
@@ -206,7 +203,7 @@ module Attestify
|
|
206
203
|
end
|
207
204
|
|
208
205
|
def flunk(message = nil)
|
209
|
-
record_assert(false) {
|
206
|
+
record_assert(false, message) { "Flunked assertion." }
|
210
207
|
end
|
211
208
|
|
212
209
|
def pass(_message = nil)
|
@@ -214,31 +211,31 @@ module Attestify
|
|
214
211
|
end
|
215
212
|
|
216
213
|
def refute(value, message = nil)
|
217
|
-
record_assert(!value) {
|
214
|
+
record_assert(!value, message) { "Failed refutation." }
|
218
215
|
end
|
219
216
|
|
220
217
|
def refute_empty(object, message = nil)
|
221
218
|
if object.respond_to?(:empty?)
|
222
|
-
record_assert(!object.empty
|
219
|
+
record_assert(!object.empty?, message) { "Expected #{object.inspect} to not be empty" }
|
223
220
|
else
|
224
221
|
pass
|
225
222
|
end
|
226
223
|
end
|
227
224
|
|
228
225
|
def refute_equal(expected, actual, message = nil)
|
229
|
-
record_assert(expected != actual) {
|
226
|
+
record_assert(expected != actual, message) { "Expected #{expected.inspect} != #{actual.inspect}" }
|
230
227
|
end
|
231
228
|
|
232
229
|
def refute_in_delta(expected, actual, delta = 0.001, message = nil)
|
233
|
-
record_assert((expected - actual).abs >= delta) do
|
234
|
-
|
230
|
+
record_assert((expected - actual).abs >= delta, message) do
|
231
|
+
"Expected #{expected.inspect} != #{actual.inspect} within #{delta.inspect}"
|
235
232
|
end
|
236
233
|
end
|
237
234
|
|
238
235
|
def refute_includes(collection, object, message = nil)
|
239
236
|
if collection.respond_to?(:include?)
|
240
|
-
record_assert(!collection.include?(object)) do
|
241
|
-
|
237
|
+
record_assert(!collection.include?(object), message) do
|
238
|
+
"Expected #{collection.inspect} to not include?(#{object.inspect})"
|
242
239
|
end
|
243
240
|
else
|
244
241
|
pass
|
@@ -247,8 +244,8 @@ module Attestify
|
|
247
244
|
|
248
245
|
def refute_instance_of(clazz, object, message = nil)
|
249
246
|
if clazz.is_a?(Module)
|
250
|
-
record_assert(!object.instance_of?(clazz)) do
|
251
|
-
|
247
|
+
record_assert(!object.instance_of?(clazz), message) do
|
248
|
+
"Expected #{object.inspect} to not be an instance_of?(#{clazz.inspect})"
|
252
249
|
end
|
253
250
|
else
|
254
251
|
pass
|
@@ -257,8 +254,8 @@ module Attestify
|
|
257
254
|
|
258
255
|
def refute_kind_of(clazz, object, message = nil)
|
259
256
|
if clazz.is_a?(Module)
|
260
|
-
record_assert(!object.is_a?(clazz)) do
|
261
|
-
|
257
|
+
record_assert(!object.is_a?(clazz), message) do
|
258
|
+
"Expected #{object.inspect} to not be a kind_of?(#{clazz.inspect})"
|
262
259
|
end
|
263
260
|
else
|
264
261
|
pass
|
@@ -266,17 +263,17 @@ module Attestify
|
|
266
263
|
end
|
267
264
|
|
268
265
|
def refute_match(matcher, object, message = nil)
|
269
|
-
record_assert(!(matcher =~ object)) {
|
266
|
+
record_assert(!(matcher =~ object), message) { "Expected not #{matcher.inspect} =~ #{object.inspect}" }
|
270
267
|
end
|
271
268
|
|
272
269
|
def refute_nil(object, message = nil)
|
273
|
-
record_assert(!object.nil
|
270
|
+
record_assert(!object.nil?, message) { "Expected #{object.inspect} to not be nil" }
|
274
271
|
end
|
275
272
|
|
276
273
|
def refute_operator(left_operand, operator, right_operand, message = nil)
|
277
274
|
if left_operand.respond_to?(operator)
|
278
|
-
record_assert(!left_operand.send(operator, right_operand)) do
|
279
|
-
|
275
|
+
record_assert(!left_operand.send(operator, right_operand), message) do
|
276
|
+
"Expected not #{left_operand.inspect} #{operator} #{right_operand.inspect}"
|
280
277
|
end
|
281
278
|
else
|
282
279
|
pass
|
@@ -285,7 +282,7 @@ module Attestify
|
|
285
282
|
|
286
283
|
def refute_predicate(object, predicate, message = nil)
|
287
284
|
if object.respond_to?(predicate)
|
288
|
-
record_assert(!object.send(predicate)) {
|
285
|
+
record_assert(!object.send(predicate), message) { "Expected not #{object.inspect} #{predicate}" }
|
289
286
|
else
|
290
287
|
pass
|
291
288
|
end
|
@@ -293,8 +290,8 @@ module Attestify
|
|
293
290
|
|
294
291
|
def refute_respond_to(object, method, message = nil)
|
295
292
|
if method.is_a?(String) || method.is_a?(Symbol)
|
296
|
-
record_assert(!object.respond_to?(method)) do
|
297
|
-
|
293
|
+
record_assert(!object.respond_to?(method), message) do
|
294
|
+
"Expected #{object.inspect} to not respond_to?(#{method.inspect})"
|
298
295
|
end
|
299
296
|
else
|
300
297
|
pass
|
@@ -302,8 +299,8 @@ module Attestify
|
|
302
299
|
end
|
303
300
|
|
304
301
|
def refute_same(expected, actual, message = nil)
|
305
|
-
record_assert(!expected.equal?(actual)) do
|
306
|
-
|
302
|
+
record_assert(!expected.equal?(actual), message) do
|
303
|
+
"Expected #{expected.inspect} is not equal?(#{actual.inspect})"
|
307
304
|
end
|
308
305
|
end
|
309
306
|
|
@@ -323,11 +320,19 @@ module Attestify
|
|
323
320
|
|
324
321
|
private
|
325
322
|
|
326
|
-
def record_assert(passed)
|
323
|
+
def record_assert(passed, message = nil)
|
327
324
|
if passed
|
328
325
|
assertions.record(passed)
|
329
326
|
else
|
330
|
-
assertions.record(passed, yield, caller_locations(2))
|
327
|
+
assertions.record(passed, combine_message(message, yield), caller_locations(2))
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
331
|
+
def combine_message(message, default_message)
|
332
|
+
if message && !message.empty?
|
333
|
+
"#{message}\n#{default_message}"
|
334
|
+
else
|
335
|
+
default_message
|
331
336
|
end
|
332
337
|
end
|
333
338
|
end
|
@@ -2,12 +2,11 @@ module Attestify
|
|
2
2
|
module Assertions
|
3
3
|
# A helper class for Attestify::Assertions#assert_output.
|
4
4
|
class OutputAssertion
|
5
|
-
def initialize(expected_stdout, expected_stderr, stdout, stderr
|
5
|
+
def initialize(expected_stdout, expected_stderr, stdout, stderr)
|
6
6
|
@expected_stdout = expected_stdout
|
7
7
|
@expected_stderr = expected_stderr
|
8
8
|
@stdout = stdout
|
9
9
|
@stderr = stderr
|
10
|
-
@message = message
|
11
10
|
end
|
12
11
|
|
13
12
|
def assert
|
@@ -15,7 +14,6 @@ module Attestify
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def message
|
18
|
-
return @message if @message
|
19
17
|
messages = [stdout_message, stderr_message]
|
20
18
|
"Expected #{messages.compact.join(", and ")}"
|
21
19
|
end
|
data/lib/attestify/autorun.rb
CHANGED
@@ -23,14 +23,22 @@ module Attestify
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
def disable
|
27
|
+
@disabled = true
|
28
|
+
end
|
29
|
+
|
26
30
|
def enable
|
27
31
|
parse_options
|
28
32
|
require_helper
|
29
|
-
at_exit {
|
33
|
+
at_exit { at_exit_hook }
|
30
34
|
end
|
31
35
|
|
32
36
|
private
|
33
37
|
|
38
|
+
def at_exit_hook
|
39
|
+
start unless @disabled
|
40
|
+
end
|
41
|
+
|
34
42
|
def parse_options
|
35
43
|
option_parser.parse!(@args)
|
36
44
|
end
|
data/lib/attestify/cli.rb
CHANGED
data/lib/attestify/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: attestify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre.
|
4
|
+
version: 0.1.0.pre.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Virata-Stone
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|