test-unit 3.3.7 → 3.4.2

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: fa35cb23e3ed29c4404a4547bafab08b764435c98defa3f630bd651238261f01
4
- data.tar.gz: a792423f3928652f0dec87ab0d29b2acdbd1f100c3e62e64db3f57ecb788f918
3
+ metadata.gz: 4b0ea1c609f04e687f6b9c2bbc5d02efc79b1cf02516ddd36ff73a2cb974a2b0
4
+ data.tar.gz: 5110042334219485a6e99963685c6a51497509da5ec833516c0fa7a7a6eb0294
5
5
  SHA512:
6
- metadata.gz: 8ba6bc75724ad5d7919ea7cc23fee209c654443641d4e74a4a070b27a83babe70773538556a4762e35c77adf4bb9016191500c33ea1d4412116003d944528eab
7
- data.tar.gz: bf6d06a9591db3d142e10f5924f92ee144c291ad1e083d745533d8b0c57555ffdb1b0fe033cab20ecb9eda4f037c9fe5ec1418176fad0ffd948e6bff48f6373a
6
+ metadata.gz: 7201589c5975139093ac4618f696ba4f40448f9d4da7e2d437545d3f105563aed379d382ce57fe09ac5b27aa41af235019befaf2a8d96d5dcc6d6609cc13798e
7
+ data.tar.gz: e65b33f3f9560ad8581987617520b03ccdd63d59d5354546663fc0898209b3bbcebdc471c2afca5c2112897d34ad6d933f7ef416f2d6ccaad805f45b0a17a24b
data/doc/text/news.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # News
2
2
 
3
+ ## 3.4.2 - 2021-05-30 {#version-3-4-2}
4
+
5
+ ### Improvements
6
+
7
+ * [UI][console]: Improved diff readability for no color
8
+ case. Character based diff marks are always showed.
9
+
10
+ ## 3.4.1 - 2021-04-19 {#version-3-4-1}
11
+
12
+ ### Fixes
13
+
14
+ * Fixed a bug that `setup`/`cleanup`/`teardown` with block may be
15
+ overwritten by another `setup`/`cleanup`/`teardown` with
16
+ block. It's caused only with Ruby 2.6 or earlier.
17
+ [GitHub#179][Reported by akira yamada]
18
+
19
+ ### Thanks
20
+
21
+ * akira yamada
22
+
23
+ ## 3.4.0 - 2021-01-30 {#version-3-4-0}
24
+
25
+ ### Improvements
26
+
27
+ * Enable deprecated warnings by default.
28
+
29
+ ## 3.3.9 - 2020-12-29 {#version-3-3-9}
30
+
31
+ ### Improvements
32
+
33
+ * `assert_not_match`: Add support for `String` as pattern.
34
+ [GitHub#178][Patch by David Rodríguez]
35
+
36
+ ### Thanks
37
+
38
+ * David Rodríguez
39
+
40
+ ## 3.3.8 - 2020-12-25 {#version-3-3-8}
41
+
42
+ ### Improvements
43
+
44
+ * [UI][console]: Removed reverse mode because Ruby 3.0 reverts
45
+ reverse backtrace.
46
+
3
47
  ## 3.3.7 - 2020-11-18 {#version-3-3-7}
4
48
 
5
49
  ### Improvements
data/lib/test-unit.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # Copyright (C) 2012-2015 Kouhei Sutou <kou@clear-code.com>
2
2
 
3
+ require "test/unit/warning"
4
+
3
5
  module Test
4
6
  module Unit
5
7
  autoload :TestCase, "test/unit/testcase"
data/lib/test/unit.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "test/unit/warning"
2
+
1
3
  require 'test/unit/testcase'
2
4
  require 'test/unit/autorunner'
3
5
 
@@ -534,12 +534,7 @@ EOT
534
534
  # assert_match(/\d+/, 'five, 6, seven')
535
535
  def assert_match(pattern, string, message=nil)
536
536
  _wrap_assertion do
537
- pattern = case(pattern)
538
- when String
539
- Regexp.new(Regexp.escape(pattern))
540
- else
541
- pattern
542
- end
537
+ pattern = Regexp.new(Regexp.escape(pattern)) if pattern.is_a?(String)
543
538
  full_message = build_message(message,
544
539
  "<?> was expected to be =~\n<?>.",
545
540
  pattern, string)
@@ -711,15 +706,13 @@ EOT
711
706
  # @example
712
707
  # assert_not_match(/two/, 'one 2 three') # -> pass
713
708
  # assert_not_match(/three/, 'one 2 three') # -> fail
714
- def assert_not_match(regexp, string, message=nil)
709
+ def assert_not_match(pattern, string, message=nil)
715
710
  _wrap_assertion do
716
- assert_instance_of(Regexp, regexp,
717
- "<REGEXP> in assert_not_match(<REGEXP>, ...) " +
718
- "should be a Regexp.")
711
+ pattern = Regexp.new(Regexp.escape(pattern)) if pattern.is_a?(String)
719
712
  full_message = build_message(message,
720
713
  "<?> was expected to not match\n<?>.",
721
- regexp, string)
722
- assert_block(full_message) { regexp !~ string }
714
+ pattern, string)
715
+ assert_block(full_message) { pattern !~ string }
723
716
  end
724
717
  end
725
718
 
@@ -103,6 +103,7 @@ module Test
103
103
  @test_case = test_case
104
104
  @type = type
105
105
  @default_options = default_options
106
+ @callbacks = {}
106
107
  @before_prepend_callbacks = []
107
108
  @before_append_callbacks = []
108
109
  @after_prepend_callbacks = []
@@ -130,6 +131,11 @@ module Test
130
131
  @test_case.attribute(:source_location,
131
132
  callback.source_location,
132
133
  method_name)
134
+ # For Ruby 2.6 or earlier. callback may be GC-ed. If
135
+ # callback is GC-ed, callback_method_name may be
136
+ # duplicated because callback_method_name uses callback.object_id.
137
+ # See also: https://github.com/test-unit/test-unit/issues/179
138
+ @callbacks[callback] = true
133
139
  @test_case.__send__(:define_method, method_name, &callback)
134
140
  else
135
141
  method_name = method_name_or_callback
@@ -47,8 +47,6 @@ module Test
47
47
  @progress_row_max ||= guess_progress_row_max
48
48
  @show_detail_immediately = @options[:show_detail_immediately]
49
49
  @show_detail_immediately = true if @show_detail_immediately.nil?
50
- @reverse_output = @options[:reverse_output]
51
- @reverse_output = @output.tty? if @reverse_output.nil?
52
50
  @already_outputted = false
53
51
  @indent = 0
54
52
  @top_level = true
@@ -184,29 +182,15 @@ module Test
184
182
  if fault.is_a?(Failure) and
185
183
  fault.inspected_expected and
186
184
  fault.inspected_actual
187
- if @reverse_output
188
- output_fault_backtrace(fault)
189
- output_failure_message(fault)
190
- output_single("#{fault.label}: ")
191
- output(fault.test_name, fault_color(fault))
192
- else
193
- output_single("#{fault.label}: ")
194
- output(fault.test_name, fault_color(fault))
195
- output_fault_backtrace(fault)
196
- output_failure_message(fault)
197
- end
185
+ output_single("#{fault.label}: ")
186
+ output(fault.test_name, fault_color(fault))
187
+ output_fault_backtrace(fault)
188
+ output_failure_message(fault)
198
189
  else
199
- if @reverse_output
200
- output_fault_backtrace(fault)
201
- output_single("#{fault.label}: ")
202
- output_single(fault.test_name, fault_color(fault))
203
- output_fault_message(fault)
204
- else
205
- output_single("#{fault.label}: ")
206
- output_single(fault.test_name, fault_color(fault))
207
- output_fault_message(fault)
208
- output_fault_backtrace(fault)
209
- end
190
+ output_single("#{fault.label}: ")
191
+ output_single(fault.test_name, fault_color(fault))
192
+ output_fault_message(fault)
193
+ output_fault_backtrace(fault)
210
194
  end
211
195
  end
212
196
 
@@ -244,19 +228,10 @@ module Test
244
228
  end
245
229
  end
246
230
 
247
- if @reverse_output
248
- backtrace.each_with_index.reverse_each do |entry, i|
249
- if i == code_snippet_backtrace_index
250
- output_code_snippet(code_snippet_lines, fault_color(fault))
251
- end
252
- output(entry)
253
- end
254
- else
255
- backtrace.each_with_index do |entry, i|
256
- output(entry)
257
- if i == code_snippet_backtrace_index
258
- output_code_snippet(code_snippet_lines, fault_color(fault))
259
- end
231
+ backtrace.each_with_index do |entry, i|
232
+ output(entry)
233
+ if i == code_snippet_backtrace_index
234
+ output_code_snippet(code_snippet_lines, fault_color(fault))
260
235
  end
261
236
  end
262
237
  end
@@ -336,17 +311,10 @@ module Test
336
311
  end
337
312
 
338
313
  def output_fault_in_short(fault)
339
- if @reverse_output
340
- output(fault.location.first)
341
- output_single("#{fault.label}: ")
342
- output_single(fault.message, fault_color(fault))
343
- output(" [#{fault.test_name}]")
344
- else
345
- output_single("#{fault.label}: ")
346
- output_single(fault.message, fault_color(fault))
347
- output(" [#{fault.test_name}]")
348
- output(fault.location.first)
349
- end
314
+ output_single("#{fault.label}: ")
315
+ output_single(fault.message, fault_color(fault))
316
+ output(" [#{fault.test_name}]")
317
+ output(fault.location.first)
350
318
  end
351
319
 
352
320
  def format_fault(fault)
@@ -692,6 +660,7 @@ module Test
692
660
 
693
661
  def diff_line(from_line, to_line)
694
662
  to_operations = []
663
+ mark_operations = []
695
664
  from_line, to_line, _operations = line_operations(from_line, to_line)
696
665
 
697
666
  no_replace = true
@@ -721,11 +690,22 @@ module Test
721
690
  output_single(" " * (from_width - to_width))
722
691
  end
723
692
  end
693
+ mark_operations << Proc.new do
694
+ output_single("?" * from_width,
695
+ color("diff-difference-tag"))
696
+ if (to_width < from_width)
697
+ output_single(" " * (from_width - to_width))
698
+ end
699
+ end
724
700
  when :delete
725
701
  output_single(from_line[from_start...from_end],
726
702
  color("diff-deleted"))
727
703
  unless no_replace
728
704
  to_operations << Proc.new {output_single(" " * from_width)}
705
+ mark_operations << Proc.new do
706
+ output_single("-" * from_width,
707
+ color("diff-deleted"))
708
+ end
729
709
  end
730
710
  when :insert
731
711
  if no_replace
@@ -737,11 +717,16 @@ module Test
737
717
  output_single(to_line[to_start...to_end],
738
718
  color("diff-inserted"))
739
719
  end
720
+ mark_operations << Proc.new do
721
+ output_single("+" * to_width,
722
+ color("diff-inserted"))
723
+ end
740
724
  end
741
725
  when :equal
742
726
  output_single(from_line[from_start...from_end])
743
727
  unless no_replace
744
728
  to_operations << Proc.new {output_single(" " * to_width)}
729
+ mark_operations << Proc.new {output_single(" " * to_width)}
745
730
  end
746
731
  else
747
732
  raise "unknown tag: #{tag}"
@@ -757,6 +742,15 @@ module Test
757
742
  end
758
743
  output("")
759
744
  end
745
+
746
+ unless mark_operations.empty?
747
+ output_single("?", color("diff-difference-tag"))
748
+ output_single(" ")
749
+ mark_operations.each do |operation|
750
+ operation.call
751
+ end
752
+ output("")
753
+ end
760
754
  end
761
755
  end
762
756
  end
@@ -1,5 +1,5 @@
1
1
  module Test
2
2
  module Unit
3
- VERSION = "3.3.7"
3
+ VERSION = "3.4.2"
4
4
  end
5
5
  end
@@ -0,0 +1,3 @@
1
+ if defined?(Warning) and Warning.respond_to?(:[]=)
2
+ Warning[:deprecated] = true
3
+ end
@@ -956,16 +956,6 @@ EOM
956
956
  end
957
957
  end
958
958
 
959
- def test_assert_not_match_fail_not_regexp
960
- check_fail("<REGEXP> in assert_not_match(<REGEXP>, ...) " +
961
- "should be a Regexp.\n" +
962
- "<\"asdf\"> was expected to be instance_of?\n" +
963
- "<Regexp> but was\n" +
964
- "<String>.") do
965
- assert_not_match("asdf", "asdf")
966
- end
967
- end
968
-
969
959
  def test_assert_not_match_fail_match
970
960
  check_fail("</string/> was expected to not match\n" +
971
961
  "<\"string\">.") do
@@ -973,6 +963,13 @@ EOM
973
963
  end
974
964
  end
975
965
 
966
+ def test_assert_not_match_fail_match_string
967
+ check_fail("</asdf/> was expected to not match\n" +
968
+ "<\"asdf\">.") do
969
+ assert_not_match("asdf", "asdf")
970
+ end
971
+ end
972
+
976
973
  def test_assert_not_match_fail_match_with_message
977
974
  check_fail("message.\n" +
978
975
  "</string/> was expected to not match\n" +
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.7
4
+ version: 3.4.2
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: 2020-11-18 00:00:00.000000000 Z
12
+ date: 2021-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: power_assert
@@ -164,6 +164,7 @@ files:
164
164
  - lib/test/unit/util/output.rb
165
165
  - lib/test/unit/util/procwrapper.rb
166
166
  - lib/test/unit/version.rb
167
+ - lib/test/unit/warning.rb
167
168
  - sample/adder.rb
168
169
  - sample/subtracter.rb
169
170
  - sample/test_adder.rb
@@ -231,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
232
  - !ruby/object:Gem::Version
232
233
  version: '0'
233
234
  requirements: []
234
- rubygems_version: 3.2.0.rc.2
235
+ rubygems_version: 3.3.0.dev
235
236
  signing_key:
236
237
  specification_version: 4
237
238
  summary: An xUnit family unit testing framework for Ruby.