test-unit 3.3.0 → 3.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c6d7db2480ed758082e59182df3607410a66eb81c5c3433b3dd76bd1cf31e5f3
4
- data.tar.gz: e25d8749320d74cef4eb57f44acee0d7797bab72568e1e3cdf9b23249b1ebf97
3
+ metadata.gz: 93aaef767a30d0882b6048299d858f799ea416bfdccc9daef7d2686b5a913f98
4
+ data.tar.gz: 00a5b7f5ccfe50603d4d1b926424b3d8336c21b3126e0dc324b17f156a48ef6a
5
5
  SHA512:
6
- metadata.gz: 4b18901db0bab8ecfbba34de97e02163598b729e6be44a176ebfb1b06586e7f9079fe674f18275e2c06dfedea024a88bb06596040b250bfa6f5d2ae40e99c181
7
- data.tar.gz: 1a6ebdaeebe74f649aa06f94e205d216300aeb018f762b2082382cbef405e5482a03a8095b2b3b86210ad6379bce8ba481b7fd25dec60a15b8206340c18b45a8
6
+ metadata.gz: a8edd6f065bf74bd4ead4dc49c6a96a635c92cfec4f7089202e658361a715d003b2c0422b58f8e97a84f7fa4ec90b137343e4737ef81741c32cb53c1191c182b
7
+ data.tar.gz: be3541d1116d75979c82060d17278e40397adc8df4dea96b982fc5b61583749b975d1cdfcfbc634dc1f4045c8d7994575897e38ccc78c785049ea6673d973f67
@@ -1,5 +1,18 @@
1
1
  # News
2
2
 
3
+ ## 3.3.1 - 2019-03-27 {#version-3-3-1}
4
+
5
+ ### Improvements
6
+
7
+ * Added support for `Test::Unit::AssertionFailedError#user_message`
8
+ for not only `assert_equal` and `assert_raise` but also all
9
+ assertions.
10
+ [GitHub#162][Reported by xgraffm]
11
+
12
+ ### Thanks
13
+
14
+ * xgraffm
15
+
3
16
  ## 3.3.0 - 2019-01-23 {#version-3-3-0}
4
17
 
5
18
  ### Improvements
@@ -32,9 +32,9 @@ module Test
32
32
  #
33
33
  # @example Example Custom Assertion
34
34
  #
35
- # def deny(boolean, message = nil)
36
- # message = build_message message, '<?> is not false or nil.', boolean
37
- # assert_block message do
35
+ # def deny(boolean, message=nil)
36
+ # message = build_message(message, '<?> is not false or nil.', boolean)
37
+ # assert_block(message) do
38
38
  # not boolean
39
39
  # end
40
40
  # end
@@ -52,7 +52,11 @@ module Test
52
52
  def assert_block(message="assert_block failed.")
53
53
  _wrap_assertion do
54
54
  if (! yield)
55
- raise AssertionFailedError.new(message.to_s)
55
+ options = {}
56
+ if message.respond_to?(:user_message)
57
+ options[:user_message] = message.user_message
58
+ end
59
+ raise AssertionFailedError.new(message.to_s, options)
56
60
  end
57
61
  end
58
62
  end
@@ -239,7 +243,7 @@ EOT
239
243
  begin
240
244
  assert_block(full_message) { expected == actual }
241
245
  rescue AssertionFailedError => failure
242
- _set_failed_information(failure, expected, actual, message)
246
+ _set_failed_information(failure, expected, actual)
243
247
  raise failure # For JRuby. :<
244
248
  end
245
249
  end
@@ -275,8 +279,7 @@ EOT
275
279
  assert_exception_helper.expected?(actual_exception)
276
280
  end
277
281
  rescue AssertionFailedError => failure
278
- _set_failed_information(failure, expected, actual_exception,
279
- message)
282
+ _set_failed_information(failure, expected, actual_exception)
280
283
  raise failure # For JRuby. :<
281
284
  end
282
285
  end
@@ -319,7 +322,7 @@ EOT
319
322
  # assert_instance_of(String, 'foo') # -> pass
320
323
  # assert_instance_of([Fixnum, NilClass], 100) # -> pass
321
324
  # assert_instance_of([Numeric, NilClass], 100) # -> fail
322
- def assert_instance_of(klass, object, message="")
325
+ def assert_instance_of(klass, object, message=nil)
323
326
  _wrap_assertion do
324
327
  if klass.is_a?(Array)
325
328
  klasses = klass
@@ -355,7 +358,7 @@ EOT
355
358
  # assert_not_instance_of([Numeric, NilClass], 100) # -> fail
356
359
  #
357
360
  # @since 3.0.0
358
- def assert_not_instance_of(klass, object, message="")
361
+ def assert_not_instance_of(klass, object, message=nil)
359
362
  _wrap_assertion do
360
363
  if klass.is_a?(Array)
361
364
  klasses = klass
@@ -390,7 +393,7 @@ EOT
390
393
  #
391
394
  # @example
392
395
  # assert_nil [1, 2].uniq!
393
- def assert_nil(object, message="")
396
+ def assert_nil(object, message=nil)
394
397
  full_message = build_message(message, <<EOT, object)
395
398
  <?> was expected to be nil.
396
399
  EOT
@@ -406,7 +409,7 @@ EOT
406
409
  # assert_kind_of(Object, 'foo') # -> pass
407
410
  # assert_kind_of([Fixnum, NilClass], 100) # -> pass
408
411
  # assert_kind_of([Fixnum, NilClass], "string") # -> fail
409
- def assert_kind_of(klass, object, message="")
412
+ def assert_kind_of(klass, object, message=nil)
410
413
  _wrap_assertion do
411
414
  if klass.is_a?(Array)
412
415
  klasses = klass
@@ -444,7 +447,7 @@ EOT
444
447
  # assert_not_kind_of([Fixnum, NilClass], 100) # -> fail
445
448
  #
446
449
  # @since 3.0.0
447
- def assert_not_kind_of(klass, object, message="")
450
+ def assert_not_kind_of(klass, object, message=nil)
448
451
  _wrap_assertion do
449
452
  if klass.is_a?(Array)
450
453
  klasses = klass
@@ -479,7 +482,7 @@ EOT
479
482
  #
480
483
  # @example
481
484
  # assert_respond_to 'bugbear', :slice
482
- def assert_respond_to(object, method, message="")
485
+ def assert_respond_to(object, method, message=nil)
483
486
  _wrap_assertion do
484
487
  full_message = build_message(message,
485
488
  "<?>.kind_of\\?(Symbol) or\n" +
@@ -502,7 +505,7 @@ EOT
502
505
  # @example
503
506
  # assert_not_respond_to('bugbear', :nonexistence) # -> pass
504
507
  # assert_not_respond_to('bugbear', :size) # -> fail
505
- def assert_not_respond_to(object, method, message="")
508
+ def assert_not_respond_to(object, method, message=nil)
506
509
  _wrap_assertion do
507
510
  full_message = build_message(message,
508
511
  "<?>.kind_of\\?(Symbol) or\n" +
@@ -529,7 +532,7 @@ EOT
529
532
  #
530
533
  # @example
531
534
  # assert_match(/\d+/, 'five, 6, seven')
532
- def assert_match(pattern, string, message="")
535
+ def assert_match(pattern, string, message=nil)
533
536
  _wrap_assertion do
534
537
  pattern = case(pattern)
535
538
  when String
@@ -551,7 +554,7 @@ EOT
551
554
  # @example
552
555
  # o = Object.new
553
556
  # assert_same o, o
554
- def assert_same(expected, actual, message="")
557
+ def assert_same(expected, actual, message=nil)
555
558
  full_message = build_message(message, <<EOT, expected, expected.__id__, actual, actual.__id__)
556
559
  <?>
557
560
  with id <?> was expected to be equal\\? to
@@ -568,7 +571,7 @@ EOT
568
571
  #
569
572
  # @example
570
573
  # assert_operator 5, :>=, 4
571
- def assert_operator(object1, operator, object2, message="")
574
+ def assert_operator(object1, operator, object2, message=nil)
572
575
  _wrap_assertion do
573
576
  full_message = build_message(nil, "<?>\ngiven as the operator for #assert_operator must be a Symbol or #respond_to\\?(:to_str).", operator)
574
577
  assert_block(full_message){operator.kind_of?(Symbol) || operator.respond_to?(:to_str)}
@@ -591,7 +594,7 @@ EOT
591
594
  # assert_not_operator(5, :>, 4) # => fail
592
595
  #
593
596
  # @since 3.0.0
594
- def assert_not_operator(object1, operator, object2, message="")
597
+ def assert_not_operator(object1, operator, object2, message=nil)
595
598
  _wrap_assertion do
596
599
  full_message = build_message(nil, "<?>\ngiven as the operator for #assert_not_operator must be a Symbol or #respond_to\\?(:to_str).", operator)
597
600
  assert_block(full_message){operator.kind_of?(Symbol) || operator.respond_to?(:to_str)}
@@ -653,7 +656,7 @@ EOT
653
656
  #
654
657
  # @example
655
658
  # assert_not_same Object.new, Object.new
656
- def assert_not_same(expected, actual, message="")
659
+ def assert_not_same(expected, actual, message=nil)
657
660
  full_message = build_message(message, <<EOT, expected, expected.__id__, actual, actual.__id__)
658
661
  <?>
659
662
  with id <?> was expected to not be equal\\? to
@@ -673,7 +676,7 @@ EOT
673
676
  #
674
677
  # @example
675
678
  # assert_not_equal 'some string', 5
676
- def assert_not_equal(expected, actual, message="")
679
+ def assert_not_equal(expected, actual, message=nil)
677
680
  full_message = build_message(message,
678
681
  "<?> was expected to be != to\n<?>.",
679
682
  expected, actual)
@@ -690,7 +693,7 @@ EOT
690
693
  #
691
694
  # @example
692
695
  # assert_not_nil '1 two 3'.sub!(/two/, '2')
693
- def assert_not_nil(object, message="")
696
+ def assert_not_nil(object, message=nil)
694
697
  full_message = build_message(message,
695
698
  "<?> was expected to not be nil.",
696
699
  object)
@@ -708,7 +711,7 @@ EOT
708
711
  # @example
709
712
  # assert_not_match(/two/, 'one 2 three') # -> pass
710
713
  # assert_not_match(/three/, 'one 2 three') # -> fail
711
- def assert_not_match(regexp, string, message="")
714
+ def assert_not_match(regexp, string, message=nil)
712
715
  _wrap_assertion do
713
716
  assert_instance_of(Regexp, regexp,
714
717
  "<REGEXP> in assert_not_match(<REGEXP>, ...) " +
@@ -792,7 +795,7 @@ EOT
792
795
  # assert_throw(:done) do
793
796
  # throw(:done)
794
797
  # end
795
- def assert_throw(expected_object, message="", &proc)
798
+ def assert_throw(expected_object, message=nil, &proc)
796
799
  _wrap_assertion do
797
800
  begin
798
801
  catch([]) {}
@@ -838,7 +841,7 @@ EOT
838
841
  # assert_nothing_thrown do
839
842
  # [1, 2].uniq
840
843
  # end
841
- def assert_nothing_thrown(message="", &proc)
844
+ def assert_nothing_thrown(message=nil, &proc)
842
845
  _wrap_assertion do
843
846
  assert(block_given?, "Should have passed a block to assert_nothing_thrown")
844
847
  begin
@@ -1617,11 +1620,12 @@ EOT
1617
1620
  alias_method :refute_empty, :assert_not_empty
1618
1621
 
1619
1622
  ##
1620
- # Builds a failure message. +head+ is added before the +template+ and
1621
- # +arguments+ replaces the '?'s positionally in the template.
1622
- def build_message(head, template=nil, *arguments)
1623
+ # Builds a failure message. +user_message+ is added before the
1624
+ # +template+ and +arguments+ replaces the '?'s positionally in
1625
+ # the template.
1626
+ def build_message(user_message, template=nil, *arguments)
1623
1627
  template &&= template.chomp
1624
- return AssertionMessage.new(head, template, arguments)
1628
+ return AssertionMessage.new(user_message, template, arguments)
1625
1629
  end
1626
1630
 
1627
1631
  private
@@ -1688,12 +1692,11 @@ EOT
1688
1692
  end
1689
1693
  end
1690
1694
 
1691
- def _set_failed_information(failure, expected, actual, user_message)
1695
+ def _set_failed_information(failure, expected, actual)
1692
1696
  failure.expected = expected
1693
1697
  failure.actual = actual
1694
1698
  failure.inspected_expected = AssertionMessage.convert(expected)
1695
1699
  failure.inspected_actual = AssertionMessage.convert(actual)
1696
- failure.user_message = user_message
1697
1700
  end
1698
1701
 
1699
1702
  class AssertionMessage
@@ -2071,8 +2074,8 @@ EOT
2071
2074
 
2072
2075
  include Util::BacktraceFilter
2073
2076
 
2074
- def initialize(head, template_string, parameters)
2075
- @head = head
2077
+ def initialize(user_message, template_string, parameters)
2078
+ @user_message = user_message
2076
2079
  @template_string = template_string
2077
2080
  @parameters = parameters
2078
2081
  end
@@ -2085,24 +2088,28 @@ EOT
2085
2088
  @template ||= Template.create(@template_string)
2086
2089
  end
2087
2090
 
2088
- def add_period(string)
2089
- (string =~ /\.\Z/ ? string : string + '.')
2091
+ def user_message
2092
+ return nil unless @user_message
2093
+ message = @user_message
2094
+ message = message.call if message.respond_to?(:call)
2095
+ message.to_s
2090
2096
  end
2091
2097
 
2092
2098
  def to_s
2093
2099
  message_parts = []
2094
- if (@head)
2095
- head = @head
2096
- head = head.call if head.respond_to?(:call)
2097
- head = head.to_s
2098
- unless(head.empty?)
2099
- message_parts << add_period(head)
2100
- end
2100
+ head = user_message
2101
+ if head and not head.empty?
2102
+ message_parts << add_period(head)
2101
2103
  end
2102
2104
  tail = template.result(@parameters.collect{|e| convert(e)})
2103
2105
  message_parts << tail unless(tail.empty?)
2104
2106
  message_parts.join("\n")
2105
2107
  end
2108
+
2109
+ private
2110
+ def add_period(string)
2111
+ (string =~ /\.\Z/ ? string : string + '.')
2112
+ end
2106
2113
  end
2107
2114
 
2108
2115
  class AssertExceptionHelper
@@ -1,5 +1,5 @@
1
1
  module Test
2
2
  module Unit
3
- VERSION = "3.3.0"
3
+ VERSION = "3.3.1"
4
4
  end
5
5
  end
@@ -32,6 +32,7 @@ module Test
32
32
  return_value = yield
33
33
  failed = false
34
34
  rescue AssertionFailedError => error
35
+ return_value = error
35
36
  actual_message = error.message
36
37
  end
37
38
  @catch_assertions = false
@@ -1168,9 +1169,10 @@ EOM
1168
1169
  assert_true(1)
1169
1170
  end
1170
1171
 
1171
- check_fail("message.\n<true> expected but was\n<nil>") do
1172
+ exception = check_fail("message.\n<true> expected but was\n<nil>") do
1172
1173
  assert_true(nil, "message")
1173
1174
  end
1175
+ assert_equal("message", exception.user_message)
1174
1176
  end
1175
1177
 
1176
1178
  def test_assert_false
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.3.0
4
+ version: 3.3.1
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: 2019-01-23 00:00:00.000000000 Z
12
+ date: 2019-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: power_assert
@@ -231,48 +231,49 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0'
233
233
  requirements: []
234
- rubygems_version: 3.0.2
234
+ rubyforge_project:
235
+ rubygems_version: 2.7.6
235
236
  signing_key:
236
237
  specification_version: 4
237
238
  summary: An xUnit family unit testing framework for Ruby.
238
239
  test_files:
239
- - test/run-test.rb
240
- - test/testunit-test-util.rb
241
- - test/test-priority.rb
242
- - test/test-test-suite.rb
243
- - test/test-error.rb
244
- - test/test-notification.rb
240
+ - test/test-code-snippet.rb
245
241
  - test/test-fault-location-detector.rb
246
- - test/test-test-suite-creator.rb
247
- - test/test-data.rb
248
- - test/util/test-output.rb
249
- - test/util/test_backtracefilter.rb
250
- - test/util/test_procwrapper.rb
251
- - test/util/test_observable.rb
252
- - test/util/test-method-owner-finder.rb
242
+ - test/test-attribute.rb
243
+ - test/test-priority.rb
244
+ - test/test-color-scheme.rb
253
245
  - test/test-failure.rb
254
- - test/test-pending.rb
255
- - test/test-test-case.rb
256
- - test/test-attribute-matcher.rb
257
- - test/test-omission.rb
258
246
  - test/test-color.rb
259
247
  - test/ui/test_testrunmediator.rb
260
- - test/test-fixture.rb
261
- - test/test-attribute.rb
262
- - test/test-code-snippet.rb
263
- - test/collector/test_objectspace.rb
264
- - test/collector/test-load.rb
265
- - test/collector/test-descendant.rb
266
- - test/collector/test_dir.rb
267
- - test/test-color-scheme.rb
268
- - test/test-assertions.rb
269
- - test/fixtures/plus.csv
270
- - test/fixtures/header-label.csv
248
+ - test/test-attribute-matcher.rb
249
+ - test/test-test-suite.rb
250
+ - test/test-test-suite-creator.rb
251
+ - test/test-diff.rb
252
+ - test/test-emacs-runner.rb
253
+ - test/test-data.rb
254
+ - test/fixtures/header.csv
271
255
  - test/fixtures/header.tsv
272
256
  - test/fixtures/no-header.tsv
273
- - test/fixtures/header.csv
274
- - test/fixtures/header-label.tsv
257
+ - test/fixtures/plus.csv
275
258
  - test/fixtures/no-header.csv
276
- - test/test-emacs-runner.rb
259
+ - test/fixtures/header-label.tsv
260
+ - test/fixtures/header-label.csv
261
+ - test/test-assertions.rb
277
262
  - test/test-test-result.rb
278
- - test/test-diff.rb
263
+ - test/testunit-test-util.rb
264
+ - test/collector/test-load.rb
265
+ - test/collector/test_dir.rb
266
+ - test/collector/test_objectspace.rb
267
+ - test/collector/test-descendant.rb
268
+ - test/test-error.rb
269
+ - test/run-test.rb
270
+ - test/test-pending.rb
271
+ - test/test-fixture.rb
272
+ - test/util/test-output.rb
273
+ - test/util/test-method-owner-finder.rb
274
+ - test/util/test_observable.rb
275
+ - test/util/test_procwrapper.rb
276
+ - test/util/test_backtracefilter.rb
277
+ - test/test-notification.rb
278
+ - test/test-omission.rb
279
+ - test/test-test-case.rb