petitest 0.1.0 → 0.1.1
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/CHANGELOG.md +6 -0
- data/README.md +3 -0
- data/lib/petitest/assertion_failure_error.rb +36 -0
- data/lib/petitest/assertions.rb +46 -26
- data/lib/petitest/subscribers/json_report_subscriber.rb +2 -1
- data/lib/petitest/test_case.rb +18 -4
- data/lib/petitest/texts/failure_message_text.rb +7 -1
- data/lib/petitest/version.rb +1 -1
- data/lib/petitest.rb +0 -1
- data/petitest.gemspec +1 -1
- metadata +2 -3
- data/lib/petitest/assertion_failure_message.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 352ae5dae0ba8eb8e866f277ae8252b94c15f4bd
|
4
|
+
data.tar.gz: c5feb6113073d80f36e406e6cfd4f4929cd2160a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd63a6b94dd92d850e56e96ca98e0eabfc80feaa1312b112f8c229f73b149a4c32acd0940a45ef0918acc75956bd5f43c949672fd6e2d2ebf5c64d9a74de87d4
|
7
|
+
data.tar.gz: 712f51bada7fd39c605d340629a072c9930a91563d27c9eb18ada7903ecde018dc949adfa4f0aef3ca0d6c878f63b629cc4c11e20eb1fad884bd36df01f436b1
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Petitest
|
2
2
|
|
3
|
+
[](https://rubygems.org/gems/petitest)
|
4
|
+
[](http://www.rubydoc.info/github/petitest/petitest)
|
5
|
+
|
3
6
|
A minimal solid testing framework for Ruby.
|
4
7
|
|
5
8
|
## Installation
|
@@ -1,4 +1,40 @@
|
|
1
1
|
module Petitest
|
2
2
|
class AssertionFailureError < ::StandardError
|
3
|
+
# @return [String, nil]
|
4
|
+
attr_reader :additional_message
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
attr_reader :template
|
8
|
+
|
9
|
+
# @return [Hash{Symbol => Object}]
|
10
|
+
attr_reader :template_variables
|
11
|
+
|
12
|
+
# @param additional_message [String, nil]
|
13
|
+
# @param template [String]
|
14
|
+
# @param template_variables [Hash, nil]
|
15
|
+
def initialize(
|
16
|
+
additional_message:,
|
17
|
+
template:,
|
18
|
+
template_variables:
|
19
|
+
)
|
20
|
+
@additional_message = additional_message
|
21
|
+
@template = template
|
22
|
+
@template_variables = template_variables
|
23
|
+
super(assertion_type_message)
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [String]
|
27
|
+
def assertion_type_message
|
28
|
+
template % inspected_template_variables
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
# @return [Hash{Symbol => String}]
|
34
|
+
def inspected_template_variables
|
35
|
+
template_variables.map do |key, value|
|
36
|
+
[key, value.inspect]
|
37
|
+
end.to_h
|
38
|
+
end
|
3
39
|
end
|
4
40
|
end
|
data/lib/petitest/assertions.rb
CHANGED
@@ -1,45 +1,65 @@
|
|
1
1
|
module Petitest
|
2
2
|
module Assertions
|
3
|
-
# @param
|
4
|
-
# @param
|
5
|
-
def assert(
|
6
|
-
|
7
|
-
|
3
|
+
# @param actual_or_message [Object]
|
4
|
+
# @param message [String, nil]
|
5
|
+
def assert(actual_or_message = nil, message = nil, &block)
|
6
|
+
if block
|
7
|
+
assert_block(actual_or_message, &block)
|
8
|
+
else
|
9
|
+
actual = actual_or_message
|
10
|
+
check(
|
11
|
+
message: message,
|
8
12
|
template: "%{actual} is not truthy",
|
9
13
|
template_variables: {
|
10
14
|
actual: actual,
|
11
15
|
},
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
) do
|
17
|
+
actual
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# @param message [String, nil]
|
23
|
+
def assert_block(message = nil, &block)
|
24
|
+
check(
|
25
|
+
message: message,
|
26
|
+
template: "Given block returned falsy",
|
27
|
+
&block
|
15
28
|
)
|
16
29
|
end
|
17
30
|
|
18
31
|
# @param expected [Object]
|
19
32
|
# @param actual [Object]
|
20
|
-
# @param
|
21
|
-
def assert_equal(expected, actual,
|
22
|
-
result = expected == actual
|
33
|
+
# @param message [String, nil]
|
34
|
+
def assert_equal(expected, actual, message = nil)
|
23
35
|
check(
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
)
|
36
|
+
message: message,
|
37
|
+
template: "%{expected} expected but was %{actual}",
|
38
|
+
template_variables: {
|
39
|
+
actual: actual,
|
40
|
+
expected: expected,
|
41
|
+
},
|
42
|
+
) do
|
43
|
+
expected == actual
|
44
|
+
end
|
34
45
|
end
|
35
46
|
|
36
47
|
private
|
37
48
|
|
38
|
-
# @param
|
39
|
-
# @param
|
40
|
-
|
41
|
-
|
42
|
-
|
49
|
+
# @param message [String, nil]
|
50
|
+
# @param template [String]
|
51
|
+
# @param template_variables [Hash, nil]
|
52
|
+
def check(
|
53
|
+
message:,
|
54
|
+
template:,
|
55
|
+
template_variables: {}
|
56
|
+
)
|
57
|
+
unless yield
|
58
|
+
raise ::Petitest::AssertionFailureError.new(
|
59
|
+
additional_message: message,
|
60
|
+
template: template,
|
61
|
+
template_variables: template_variables,
|
62
|
+
)
|
43
63
|
end
|
44
64
|
end
|
45
65
|
end
|
@@ -16,7 +16,8 @@ module Petitest
|
|
16
16
|
error_class_name: test_case.error_class_name,
|
17
17
|
error_message: test_case.error_message,
|
18
18
|
failed: test_case.failed?,
|
19
|
-
|
19
|
+
failure_additional_message: test_case.failure_additional_message,
|
20
|
+
failure_assertion_type_message: test_case.failure_assertion_type_message,
|
20
21
|
finished_at: test_case.finished_at.iso8601(6),
|
21
22
|
method_line_number: test_case.test_method.line_number,
|
22
23
|
method_name: test_case.test_method.method_name,
|
data/lib/petitest/test_case.rb
CHANGED
@@ -61,9 +61,16 @@ module Petitest
|
|
61
61
|
end
|
62
62
|
|
63
63
|
# @return [String, nil]
|
64
|
-
def
|
64
|
+
def failure_additional_message
|
65
65
|
if failed?
|
66
|
-
error.
|
66
|
+
error.additional_message
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# @return [String, nil]
|
71
|
+
def failure_assertion_type_message
|
72
|
+
if failed?
|
73
|
+
error.assertion_type_message
|
67
74
|
end
|
68
75
|
end
|
69
76
|
|
@@ -74,8 +81,15 @@ module Petitest
|
|
74
81
|
|
75
82
|
# @return [Array<String>, nil]
|
76
83
|
def filtered_backtrace
|
77
|
-
@filtered_backtrace ||=
|
78
|
-
|
84
|
+
@filtered_backtrace ||= begin
|
85
|
+
backtrace.reverse_each.each_with_object([]) do |line, lines|
|
86
|
+
if line.start_with?(::File.expand_path("../assertions.rb", __FILE__))
|
87
|
+
break lines
|
88
|
+
end
|
89
|
+
unless line.start_with?(self.class.prefix_to_filter_backtrace)
|
90
|
+
lines << line
|
91
|
+
end
|
92
|
+
end.reverse
|
79
93
|
end
|
80
94
|
end
|
81
95
|
|
@@ -13,7 +13,13 @@ module Petitest
|
|
13
13
|
|
14
14
|
# @note Override
|
15
15
|
def to_s
|
16
|
-
colorize(
|
16
|
+
colorize(
|
17
|
+
[
|
18
|
+
test_case.failure_assertion_type_message,
|
19
|
+
test_case.failure_additional_message,
|
20
|
+
].compact.join("\n"),
|
21
|
+
:failure,
|
22
|
+
)
|
17
23
|
end
|
18
24
|
end
|
19
25
|
end
|
data/lib/petitest/version.rb
CHANGED
data/lib/petitest.rb
CHANGED
data/petitest.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ["Ryo Nakamura"]
|
9
9
|
spec.email = ["r7kamura@gmail.com"]
|
10
10
|
spec.summary = "A minimal solid testing framework for Ruby."
|
11
|
-
spec.homepage = "https://github.com/
|
11
|
+
spec.homepage = "https://github.com/petitest/petitest"
|
12
12
|
spec.license = "MIT"
|
13
13
|
|
14
14
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: petitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
@@ -53,7 +53,6 @@ files:
|
|
53
53
|
- Rakefile
|
54
54
|
- lib/petitest.rb
|
55
55
|
- lib/petitest/assertion_failure_error.rb
|
56
|
-
- lib/petitest/assertion_failure_message.rb
|
57
56
|
- lib/petitest/assertions.rb
|
58
57
|
- lib/petitest/autorun.rb
|
59
58
|
- lib/petitest/configuration.rb
|
@@ -81,7 +80,7 @@ files:
|
|
81
80
|
- lib/petitest/texts/times_text.rb
|
82
81
|
- lib/petitest/version.rb
|
83
82
|
- petitest.gemspec
|
84
|
-
homepage: https://github.com/
|
83
|
+
homepage: https://github.com/petitest/petitest
|
85
84
|
licenses:
|
86
85
|
- MIT
|
87
86
|
metadata: {}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Petitest
|
2
|
-
class AssertionFailureMessage
|
3
|
-
# @return [String]
|
4
|
-
attr_reader :template
|
5
|
-
|
6
|
-
# @return [Hash{Symbol => Object}]
|
7
|
-
attr_reader :template_variables
|
8
|
-
|
9
|
-
# @return [String, nil]
|
10
|
-
attr_reader :user_specified_message
|
11
|
-
|
12
|
-
# @param template [String]
|
13
|
-
# @param template_variables [Hash{Symbol => Object}]
|
14
|
-
# @param user_specified_message [String, nil]
|
15
|
-
def initialize(template:, template_variables: {}, user_specified_message:)
|
16
|
-
@template = template
|
17
|
-
@template_variables = template_variables
|
18
|
-
@user_specified_message = user_specified_message
|
19
|
-
end
|
20
|
-
|
21
|
-
# @note Override
|
22
|
-
def to_s
|
23
|
-
template % inspected_template_variables
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
# @return [Hash{Symbol => String}]
|
29
|
-
def inspected_template_variables
|
30
|
-
template_variables.map do |key, value|
|
31
|
-
[key, value.inspect]
|
32
|
-
end.to_h
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|