test-unit 3.0.7 → 3.0.8
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/README.md +2 -1
- data/doc/text/news.md +24 -0
- data/lib/test/unit/assertions.rb +49 -24
- data/lib/test/unit/autorunner.rb +4 -4
- data/lib/test/unit/code-snippet-fetcher.rb +32 -7
- data/lib/test/unit/version.rb +1 -1
- metadata +26 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93a1e018c9d985f96f57f4a1cb7c166ac584d4d7
|
4
|
+
data.tar.gz: 90fc5bcea7299d0fe43153e2eb6a447e9b3823f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22541bbd0a7fe30eb6227f6498e1af4316d749f2f766da3f9266562c9d39ac3f7650ea7e1764b05ec43b150019e8e073045f4a876a7f9ac305cffeb197cc5a79
|
7
|
+
data.tar.gz: bd5da3acef525e1c3f3539dd09a5509fa531c3be20c15567e955ce79573f57cbe7467cc143e25e9bcaf5dbe83a6289ad084262ccec99ff7cba18351a2be7553d
|
data/README.md
CHANGED
data/doc/text/news.md
CHANGED
@@ -1,5 +1,29 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 3.0.8 - 2014-12-12 {#version-3-0-8}
|
4
|
+
|
5
|
+
It's a release that support Ruby 2.2.0 preview2.
|
6
|
+
|
7
|
+
### Improvements
|
8
|
+
|
9
|
+
* Added a link for YARD in README.
|
10
|
+
[GitHub:test-unit.github.io#2][Reported by sunnyone]
|
11
|
+
* Added description about "/PATTERN/" style value in auto runner usage.
|
12
|
+
[GitHub#86][Suggested by sunnyone]
|
13
|
+
* Supported Ruby 2.2.0 preview2 in `assert_throw` and
|
14
|
+
`assert_nothing_thrown`.
|
15
|
+
|
16
|
+
### Fixes
|
17
|
+
|
18
|
+
* Fixed a bug that error report is failed when source encoding and
|
19
|
+
locale encoding are different.
|
20
|
+
[GitHub#87][Reported by scivola]
|
21
|
+
|
22
|
+
### Thanks
|
23
|
+
|
24
|
+
* sunnyone
|
25
|
+
* scivola
|
26
|
+
|
3
27
|
## 3.0.7 - 2014-11-14 {#version-3-0-7}
|
4
28
|
|
5
29
|
It's a minor update release.
|
data/lib/test/unit/assertions.rb
CHANGED
@@ -739,11 +739,47 @@ EOT
|
|
739
739
|
end
|
740
740
|
|
741
741
|
# @private
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
742
|
+
class ThrowTagExtractor
|
743
|
+
@@have_uncaught_throw_error = const_defined?(:UncaughtThrowError)
|
744
|
+
|
745
|
+
UncaughtThrowPatterns = {
|
746
|
+
NameError => /^uncaught throw `(.+)'$/,
|
747
|
+
ArgumentError => /^uncaught throw (`.+'|.+)$/,
|
748
|
+
ThreadError => /^uncaught throw `(.+)' in thread /,
|
749
|
+
}
|
750
|
+
|
751
|
+
def initialize(error)
|
752
|
+
@error = error
|
753
|
+
end
|
754
|
+
|
755
|
+
def extract_tag
|
756
|
+
tag = nil
|
757
|
+
if @@have_uncaught_throw_error
|
758
|
+
return nil unless @error.is_a?(UncaughtThrowError)
|
759
|
+
tag = @error.tag
|
760
|
+
else
|
761
|
+
pattern = UncaughtThrowPatterns[@error.class]
|
762
|
+
return nil if pattern.nil?
|
763
|
+
return nil unless pattern =~ @error.message
|
764
|
+
tag = $1
|
765
|
+
end
|
766
|
+
normalize_tag(tag)
|
767
|
+
end
|
768
|
+
|
769
|
+
private
|
770
|
+
def normalize_tag(tag)
|
771
|
+
case tag
|
772
|
+
when /\A:/
|
773
|
+
tag[1..-1].intern
|
774
|
+
when /\A`(.+)'\z/
|
775
|
+
$1.intern
|
776
|
+
when String
|
777
|
+
tag.intern
|
778
|
+
else
|
779
|
+
tag
|
780
|
+
end
|
781
|
+
end
|
782
|
+
end
|
747
783
|
|
748
784
|
##
|
749
785
|
# Passes if the block throws +expected_object+
|
@@ -773,9 +809,10 @@ EOT
|
|
773
809
|
"<?> should have been thrown.",
|
774
810
|
expected_object)
|
775
811
|
assert_block(full_message) {caught}
|
776
|
-
rescue
|
777
|
-
|
778
|
-
tag =
|
812
|
+
rescue => error
|
813
|
+
extractor = ThrowTagExtractor.new(error)
|
814
|
+
tag = extractor.extract_tag
|
815
|
+
raise if tag.nil?
|
779
816
|
full_message = build_message(message,
|
780
817
|
"<?> expected to be thrown but\n" +
|
781
818
|
"<?> was thrown.",
|
@@ -802,9 +839,10 @@ EOT
|
|
802
839
|
assert(block_given?, "Should have passed a block to assert_nothing_thrown")
|
803
840
|
begin
|
804
841
|
proc.call
|
805
|
-
rescue
|
806
|
-
|
807
|
-
tag =
|
842
|
+
rescue => error
|
843
|
+
extractor = ThrowTagExtractor.new(error)
|
844
|
+
tag = extractor.extract_tag
|
845
|
+
raise if tag.nil?
|
808
846
|
full_message = build_message(message,
|
809
847
|
"<?> was thrown when nothing was expected",
|
810
848
|
tag)
|
@@ -1671,19 +1709,6 @@ EOT
|
|
1671
1709
|
MaybeContainer.new(value, &formatter)
|
1672
1710
|
end
|
1673
1711
|
|
1674
|
-
def normalize_tag(tag)
|
1675
|
-
case tag
|
1676
|
-
when /\A:/
|
1677
|
-
tag[1..-1].intern
|
1678
|
-
when /\A`(.+)'\z/
|
1679
|
-
$1.intern
|
1680
|
-
when String
|
1681
|
-
tag.intern
|
1682
|
-
else
|
1683
|
-
tag
|
1684
|
-
end
|
1685
|
-
end
|
1686
|
-
|
1687
1712
|
MAX_DIFF_TARGET_STRING_SIZE = 1000
|
1688
1713
|
def max_diff_target_string_size
|
1689
1714
|
return @@max_diff_target_string_size if @@max_diff_target_string_size
|
data/lib/test/unit/autorunner.rb
CHANGED
@@ -212,7 +212,7 @@ module Test
|
|
212
212
|
|
213
213
|
o.on('-n', '--name=NAME', String,
|
214
214
|
"Runs tests matching NAME.",
|
215
|
-
"
|
215
|
+
"Use '/PATTERN/' for NAME to use regular expression.") do |name|
|
216
216
|
name = (%r{\A/(.*)/\Z} =~ name ? Regexp.new($1) : name)
|
217
217
|
@filters << lambda do |test|
|
218
218
|
return true if name === test.method_name
|
@@ -226,7 +226,7 @@ module Test
|
|
226
226
|
|
227
227
|
o.on('--ignore-name=NAME', String,
|
228
228
|
"Ignores tests matching NAME.",
|
229
|
-
"
|
229
|
+
"Use '/PATTERN/' for NAME to use regular expression.") do |n|
|
230
230
|
n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
|
231
231
|
case n
|
232
232
|
when Regexp
|
@@ -238,7 +238,7 @@ module Test
|
|
238
238
|
|
239
239
|
o.on('-t', '--testcase=TESTCASE', String,
|
240
240
|
"Runs tests in TestCases matching TESTCASE.",
|
241
|
-
"
|
241
|
+
"Use '/PATTERN/' for TESTCASE to use regular expression.") do |n|
|
242
242
|
n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
|
243
243
|
@filters << lambda do |test|
|
244
244
|
match_test_case_name(test, n)
|
@@ -247,7 +247,7 @@ module Test
|
|
247
247
|
|
248
248
|
o.on('--ignore-testcase=TESTCASE', String,
|
249
249
|
"Ignores tests in TestCases matching TESTCASE.",
|
250
|
-
"
|
250
|
+
"Use '/PATTERN/' for TESTCASE to use regular expression.") do |n|
|
251
251
|
n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
|
252
252
|
@filters << lambda do |test|
|
253
253
|
not match_test_case_name(test, n)
|
@@ -5,9 +5,9 @@ module Test
|
|
5
5
|
@sources = {}
|
6
6
|
end
|
7
7
|
|
8
|
-
def fetch(
|
8
|
+
def fetch(path, line, options={})
|
9
9
|
n_context_line = options[:n_context_line] || 3
|
10
|
-
lines = source(
|
10
|
+
lines = source(path)
|
11
11
|
return [] if lines.nil?
|
12
12
|
min_line = [line - n_context_line, 1].max
|
13
13
|
max_line = [line + n_context_line, lines.length].min
|
@@ -18,14 +18,39 @@ module Test
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
def source(
|
22
|
-
@sources[
|
21
|
+
def source(path)
|
22
|
+
@sources[path] ||= read_source(path)
|
23
23
|
end
|
24
24
|
|
25
25
|
private
|
26
|
-
def read_source(
|
27
|
-
return nil unless File.exist?(
|
28
|
-
|
26
|
+
def read_source(path)
|
27
|
+
return nil unless File.exist?(path)
|
28
|
+
lines = []
|
29
|
+
File.open(path) do |file|
|
30
|
+
first_line = file.gets
|
31
|
+
break if first_line.nil?
|
32
|
+
encoding = detect_encoding(first_line)
|
33
|
+
if encoding
|
34
|
+
first_line.force_encoding(encoding)
|
35
|
+
file.set_encoding(encoding)
|
36
|
+
end
|
37
|
+
lines << first_line
|
38
|
+
lines.concat(file.readlines)
|
39
|
+
end
|
40
|
+
lines
|
41
|
+
end
|
42
|
+
|
43
|
+
def detect_encoding(first_line)
|
44
|
+
return nil unless first_line.ascii_only?
|
45
|
+
if /\b(?:en)?coding[:=]\s*([a-z\d_-]+)/i =~ first_line
|
46
|
+
begin
|
47
|
+
Encoding.find($1)
|
48
|
+
rescue ArgumentError
|
49
|
+
nil
|
50
|
+
end
|
51
|
+
else
|
52
|
+
nil
|
53
|
+
end
|
29
54
|
end
|
30
55
|
end
|
31
56
|
end
|
data/lib/test/unit/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-unit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: power_assert
|
@@ -234,44 +234,44 @@ signing_key:
|
|
234
234
|
specification_version: 4
|
235
235
|
summary: An xUnit family unit testing framework for Ruby.
|
236
236
|
test_files:
|
237
|
-
- test/test-test-case.rb
|
238
237
|
- test/test-assertions.rb
|
238
|
+
- test/test-color.rb
|
239
239
|
- test/test-code-snippet.rb
|
240
240
|
- test/test-test-suite-creator.rb
|
241
|
-
- test/test-fault-location-detector.rb
|
242
|
-
- test/test-omission.rb
|
243
241
|
- test/test-test-result.rb
|
244
|
-
- test/collector/test-descendant.rb
|
245
|
-
- test/collector/test_dir.rb
|
246
|
-
- test/collector/test-load.rb
|
247
|
-
- test/collector/test_objectspace.rb
|
248
|
-
- test/test-color.rb
|
249
|
-
- test/test-attribute-matcher.rb
|
250
242
|
- test/test-error.rb
|
251
|
-
- test/test-
|
243
|
+
- test/test-failure.rb
|
244
|
+
- test/run-test.rb
|
252
245
|
- test/test-pending.rb
|
253
|
-
- test/test-
|
254
|
-
- test/
|
255
|
-
- test/util
|
246
|
+
- test/test-color-scheme.rb
|
247
|
+
- test/test-attribute-matcher.rb
|
248
|
+
- test/testunit-test-util.rb
|
249
|
+
- test/test-data.rb
|
250
|
+
- test/ui/test_testrunmediator.rb
|
251
|
+
- test/util/test-method-owner-finder.rb
|
256
252
|
- test/util/test-output.rb
|
257
253
|
- test/util/test_observable.rb
|
258
|
-
- test/util/
|
259
|
-
- test/
|
260
|
-
- test/
|
261
|
-
- test/
|
254
|
+
- test/util/test_backtracefilter.rb
|
255
|
+
- test/util/test_procwrapper.rb
|
256
|
+
- test/test-omission.rb
|
257
|
+
- test/test-test-case.rb
|
258
|
+
- test/test-fixture.rb
|
262
259
|
- test/fixtures/no-header.csv
|
263
260
|
- test/fixtures/header-label.tsv
|
264
261
|
- test/fixtures/plus.csv
|
262
|
+
- test/fixtures/no-header.tsv
|
263
|
+
- test/fixtures/header-label.csv
|
265
264
|
- test/fixtures/header.csv
|
266
265
|
- test/fixtures/header.tsv
|
267
|
-
- test/test-
|
268
|
-
- test/
|
266
|
+
- test/collector/test-descendant.rb
|
267
|
+
- test/collector/test_objectspace.rb
|
268
|
+
- test/collector/test-load.rb
|
269
|
+
- test/collector/test_dir.rb
|
269
270
|
- test/test-priority.rb
|
271
|
+
- test/test-test-suite.rb
|
272
|
+
- test/test-diff.rb
|
273
|
+
- test/test-emacs-runner.rb
|
270
274
|
- test/test-attribute.rb
|
271
|
-
- test/
|
272
|
-
- test/test-fixture.rb
|
275
|
+
- test/test-fault-location-detector.rb
|
273
276
|
- test/test-notification.rb
|
274
|
-
- test/test-failure.rb
|
275
|
-
- test/testunit-test-util.rb
|
276
|
-
- test/ui/test_testrunmediator.rb
|
277
277
|
has_rdoc:
|