oktest 1.4.0 → 1.5.0

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.
data/test/visitor_test.rb CHANGED
@@ -2,15 +2,16 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  ###
5
- ### $Release: 1.4.0 $
5
+ ### $Release: 1.5.0 $
6
6
  ### $Copyright: copyright(c) 2011-2024 kuwata-lab.com all rights reserved $
7
7
  ### $License: MIT License $
8
8
  ###
9
9
 
10
- require_relative './initialize'
10
+ require_relative './init'
11
11
 
12
12
 
13
- class Visitor_TC < TC
13
+ class Visitor__Test
14
+ extend NanoTest
14
15
 
15
16
  class DummyVisitor0 < Oktest::Visitor
16
17
  def initialize
@@ -37,7 +38,7 @@ class Visitor_TC < TC
37
38
  end
38
39
  end
39
40
 
40
- def prepare()
41
+ def self.prepare()
41
42
  Oktest.scope do
42
43
  topic 'Example1' do
43
44
  topic 'sample1-1' do
@@ -48,15 +49,15 @@ class Visitor_TC < TC
48
49
  end
49
50
  end
50
51
 
51
- def setup
52
- end
53
-
54
- def teardown
52
+ def self.test_subject(desc, &b)
53
+ super
54
+ ensure
55
55
  Oktest::THE_GLOBAL_SCOPE.clear_children()
56
56
  end
57
57
 
58
- describe '#visit_spec()' do
59
- it "[!9f7i9] do something on spec." do
58
+
59
+ test_target 'Oktest::Visitor#visit_spec()' do
60
+ test_subject "[!9f7i9] do something on spec." do
60
61
  expected = <<'END'
61
62
  spec: sample {
62
63
  }
@@ -64,12 +65,12 @@ END
64
65
  sp = Oktest::SpecLeaf.new(nil, "sample")
65
66
  visitor = DummyVisitor0.new
66
67
  visitor.visit_spec(sp, 0, nil)
67
- assert_eq visitor.log.join(), expected
68
+ test_eq? visitor.log.join(), expected
68
69
  end
69
70
  end
70
71
 
71
- describe '#visit_topic()' do
72
- it "[!mu3fn] visits each child of topic." do
72
+ test_target 'Oktest::Visitor#visit_topic()' do
73
+ test_subject "[!mu3fn] visits each child of topic." do
73
74
  expected = <<'END'
74
75
  topic: example {
75
76
  spec: sample {
@@ -80,12 +81,12 @@ END
80
81
  sp = Oktest::SpecLeaf.new(to, "sample")
81
82
  visitor = DummyVisitor0.new
82
83
  visitor.visit_topic(to, 0, nil)
83
- assert_eq visitor.log.join(), expected
84
+ test_eq? visitor.log.join(), expected
84
85
  end
85
86
  end
86
87
 
87
- describe '#visit_scope()' do
88
- it "[!hebhz] visits each child scope." do
88
+ test_target 'Oktest::Visitor#visit_scope()' do
89
+ test_subject "[!hebhz] visits each child scope." do
89
90
  expected = <<'END'
90
91
  scope: file.rb {
91
92
  topic: example {
@@ -99,12 +100,12 @@ END
99
100
  sp = Oktest::SpecLeaf.new(sc, "sample")
100
101
  visitor = DummyVisitor0.new
101
102
  visitor.visit_scope(sc, 0, nil)
102
- assert_eq visitor.log.join(), expected
103
+ test_eq? visitor.log.join(), expected
103
104
  end
104
105
  end
105
106
 
106
- describe '#start()' do
107
- it "[!8h8qf] start visiting tree." do
107
+ test_target 'Oktest::Visitor#start()' do
108
+ test_subject "[!8h8qf] start visiting tree." do
108
109
  expected = <<'END'
109
110
  scope: test/visitor_test.rb {
110
111
  topic: Example1 {
@@ -120,14 +121,15 @@ END
120
121
  prepare()
121
122
  visitor = DummyVisitor0.new
122
123
  visitor.start()
123
- assert_eq visitor.log.join(), expected
124
+ test_eq? visitor.log.join(), expected
124
125
  end
125
126
  end
126
127
 
127
128
  end
128
129
 
129
130
 
130
- class Traverser_TC < TC
131
+ class Traverser__Test
132
+ extend NanoTest
131
133
 
132
134
  class MyTraverser < Oktest::Traverser
133
135
  def on_scope(filename, tag, depth)
@@ -159,7 +161,7 @@ class Traverser_TC < TC
159
161
  end
160
162
  end
161
163
 
162
- def prepare()
164
+ def self.prepare()
163
165
  Oktest.scope do
164
166
  topic 'Example' do
165
167
  topic Integer, tag: 'cls' do
@@ -180,13 +182,15 @@ class Traverser_TC < TC
180
182
  end
181
183
  end
182
184
 
183
- def teardown()
185
+ def self.test_subject(desc, &b)
186
+ super
187
+ ensure
184
188
  Oktest::THE_GLOBAL_SCOPE.clear_children()
185
189
  end
186
190
 
187
191
 
188
- describe '#start()' do
189
- it "[!5zonp] visits topics and specs and calls callbacks." do
192
+ test_target 'Oktest::Traverser#start()' do
193
+ test_subject "[!5zonp] visits topics and specs and calls callbacks." do
190
194
  expected = <<'END'
191
195
  * scope: test/visitor_test.rb
192
196
  + topic: Example
@@ -202,22 +206,22 @@ class Traverser_TC < TC
202
206
  - spec: 1/1 should be 1. (tag: err)
203
207
  END
204
208
  prepare()
205
- sout, serr = capture { MyTraverser.new.start() }
206
- assert_eq sout, expected
207
- assert_eq serr, ""
209
+ sout, serr = capture_output! { MyTraverser.new.start() }
210
+ test_eq? sout, expected
211
+ test_eq? serr, ""
208
212
  end
209
- it "[!gkopz] doesn't change Oktest::THE_GLOBAL_SCOPE." do
213
+ test_subject "[!gkopz] doesn't change Oktest::THE_GLOBAL_SCOPE." do
210
214
  prepare()
211
215
  n = Oktest::THE_GLOBAL_SCOPE.each_child.to_a.length
212
- sout, serr = capture do
216
+ sout, serr = capture_output! do
213
217
  MyTraverser.new.start()
214
218
  end
215
- assert_eq Oktest::THE_GLOBAL_SCOPE.each_child.to_a.length, n
219
+ test_eq? Oktest::THE_GLOBAL_SCOPE.each_child.to_a.length, n
216
220
  end
217
221
  end
218
222
 
219
- describe '#visit_scope()' do
220
- it "[!ledj3] calls on_scope() callback on scope." do
223
+ test_target 'Oktest::Traverser#visit_scope()' do
224
+ test_subject "[!ledj3] calls on_scope() callback on scope." do
221
225
  expected = <<'END'
222
226
  * scope: test/visitor_test.rb
223
227
  * scope: test/visitor_test.rb
@@ -226,14 +230,14 @@ END
226
230
  end
227
231
  Oktest.scope do
228
232
  end
229
- sout, serr = capture { MyTraverser.new.start() }
230
- assert_eq sout, expected
231
- assert_eq serr, ""
233
+ sout, serr = capture_output! { MyTraverser.new.start() }
234
+ test_eq? sout, expected
235
+ test_eq? serr, ""
232
236
  end
233
237
  end
234
238
 
235
- describe '#visit_topic()' do
236
- it "[!x8r9w] calls on_topic() callback on topic." do
239
+ test_target 'Oktest::Traverser#visit_topic()' do
240
+ test_subject "[!x8r9w] calls on_topic() callback on topic." do
237
241
  expected = <<'END'
238
242
  * scope: test/visitor_test.rb
239
243
  + topic: Parent
@@ -245,11 +249,11 @@ END
245
249
  end
246
250
  end
247
251
  end
248
- sout, serr = capture { MyTraverser.new.start() }
249
- assert_eq sout, expected
250
- assert_eq serr, ""
252
+ sout, serr = capture_output! { MyTraverser.new.start() }
253
+ test_eq? sout, expected
254
+ test_eq? serr, ""
251
255
  end
252
- it "[!qh0q3] calls on_case() callback on case_when or case_else." do
256
+ test_subject "[!qh0q3] calls on_case() callback on case_when or case_else." do
253
257
  expected = <<'END'
254
258
  * scope: test/visitor_test.rb
255
259
  + topic: Parent
@@ -264,14 +268,14 @@ END
264
268
  end
265
269
  end
266
270
  end
267
- sout, serr = capture { MyTraverser.new.start() }
268
- assert_eq sout, expected
269
- assert_eq serr, ""
271
+ sout, serr = capture_output! { MyTraverser.new.start() }
272
+ test_eq? sout, expected
273
+ test_eq? serr, ""
270
274
  end
271
275
  end
272
276
 
273
- describe '#visit_spec()' do
274
- it "[!41uyj] calls on_spec() callback." do
277
+ test_target 'Oktest::Traverser#visit_spec()' do
278
+ test_subject "[!41uyj] calls on_spec() callback." do
275
279
  expected = <<'END'
276
280
  * scope: test/visitor_test.rb
277
281
  + topic: Example
@@ -284,9 +288,9 @@ END
284
288
  spec "sample #2" do ok {1-1} == 0 end
285
289
  end
286
290
  end
287
- sout, serr = capture { MyTraverser.new.start() }
288
- assert_eq sout, expected
289
- assert_eq serr, ""
291
+ sout, serr = capture_output! { MyTraverser.new.start() }
292
+ test_eq? sout, expected
293
+ test_eq? serr, ""
290
294
  end
291
295
  end
292
296
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oktest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kwatch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-04 00:00:00.000000000 Z
11
+ date: 2024-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -76,20 +76,20 @@ files:
76
76
  - bin/oktest
77
77
  - lib/oktest.rb
78
78
  - oktest.gemspec
79
+ - test/all.rb
79
80
  - test/assertion_test.rb
80
81
  - test/filter_test.rb
81
82
  - test/fixture_test.rb
82
83
  - test/generator_test.rb
83
84
  - test/helper_test.rb
84
- - test/initialize.rb
85
+ - test/init.rb
85
86
  - test/mainapp_test.rb
86
87
  - test/matcher_test.rb
87
88
  - test/misc_test.rb
89
+ - test/nanot.rb
88
90
  - test/node_test.rb
89
91
  - test/reporter_test.rb
90
- - test/run_all.rb
91
92
  - test/runner_test.rb
92
- - test/tc.rb
93
93
  - test/util_test.rb
94
94
  - test/utilhelper_test.rb
95
95
  - test/visitor_test.rb
@@ -97,7 +97,7 @@ homepage: https://github.com/kwatch/oktest/tree/ruby/ruby
97
97
  licenses:
98
98
  - MIT
99
99
  metadata: {}
100
- post_install_message:
100
+ post_install_message:
101
101
  rdoc_options: []
102
102
  require_paths:
103
103
  - lib
@@ -112,9 +112,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  - !ruby/object:Gem::Version
113
113
  version: '0'
114
114
  requirements: []
115
- rubygems_version: 3.0.3.1
116
- signing_key:
115
+ rubygems_version: 3.4.19
116
+ signing_key:
117
117
  specification_version: 4
118
118
  summary: a new style testing library
119
119
  test_files:
120
- - test/run_all.rb
120
+ - test/all.rb
data/test/initialize.rb DELETED
@@ -1,22 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # frozen_string_literal: true
3
-
4
- ###
5
- ### $Release: 1.4.0 $
6
- ### $Copyright: copyright(c) 2011-2024 kuwata-lab.com all rights reserved $
7
- ### $License: MIT License $
8
- ###
9
-
10
- File.class_eval do
11
- $LOAD_PATH << join(dirname(dirname(expand_path(__FILE__))), 'lib')
12
- end
13
-
14
- require_relative './tc'
15
- require 'oktest'
16
-
17
-
18
- # for Ruby 2.4 or older
19
- require 'set'
20
- unless Set.instance_methods(false).include?(:===)
21
- class Set; alias === include?; end
22
- end
data/test/tc.rb DELETED
@@ -1,128 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # frozen_string_literal: true
3
-
4
- ## micro test case class
5
- class TC
6
-
7
- COUNTS = {:ok => 0, :fail => 0, :error => 0}
8
-
9
- def self.report_result()
10
- ok, fail, error = COUNTS[:ok], COUNTS[:fail], COUNTS[:error]
11
- COUNTS.keys.each {|k| COUNTS[k] = 0 }
12
- red = proc {|s| "\033[0;31m#{s}\033[0m" }
13
- fail_s = "fail: #{fail}" ; fail_s = red.call(fail_s) if fail > 0
14
- error_s = "error: #{error}" ; error_s = red.call(error_s) if error > 0
15
- STDOUT.puts "## total: #{ok+fail+error} (ok: #{ok}, #{fail_s}, #{error_s})"
16
- end
17
-
18
- def self.describe(target, &b)
19
- prev, @curr_target = @curr_target, target
20
- yield
21
- ensure
22
- @curr_target = prev
23
- end
24
-
25
- def self.curr_target()
26
- @curr_target
27
- end
28
-
29
- def self.it(spec, &b)
30
- t = @curr_target
31
- print "[#{self.name}#{t ? ' > ' : ''}#{t}] #{spec} ... " unless ENV['TC_QUIET']
32
- obj = self.new
33
- obj.setup()
34
- begin
35
- obj.instance_eval(&b)
36
- rescue => exc
37
- if exc.is_a?(AssertionFailed)
38
- COUNTS[:fail] += 1; puts "\e[31mFAILED!\e[0m" unless ENV['TC_QUIET']
39
- else
40
- COUNTS[:error] += 1; puts "\e[31mERROR!\e[0m" unless ENV['TC_QUIET']
41
- end
42
- puts " #{exc.class.name}: #{exc.message}"
43
- exc.backtrace.each do |bt|
44
- puts " #{bt}" if bt.index(__FILE__) == nil
45
- end
46
- else
47
- COUNTS[:ok] += 1; puts "ok." unless ENV['TC_QUIET']
48
- ensure
49
- obj.teardown()
50
- end
51
- end
52
-
53
- def setup
54
- end
55
-
56
- def teardown
57
- end
58
-
59
- class AssertionFailed < StandardError
60
- end
61
-
62
- def assert(cond, msg="assertion failed")
63
- raise msg unless cond
64
- end
65
-
66
- def assert_eq(actual, expected)
67
- return if actual == expected
68
- multiline_p = actual.is_a?(String) && actual =~ /\n/ \
69
- && expected.is_a?(String) && expected =~ /\n/
70
- errmsg = (multiline_p \
71
- ? "$<actual> == $<expected> : failed.\n" +
72
- " $<actual>: <<END\n#{actual}END\n" +
73
- " $<expected>: <<END\n#{expected}END"
74
- : "$<actual> == $<expected> : failed.\n" +
75
- " $<actual>: #{actual.inspect}\n" +
76
- " $<expected>: #{expected.inspect}")
77
- raise AssertionFailed, errmsg
78
- end
79
-
80
- def assert_exc(errcls, errmsg=nil, &b)
81
- begin
82
- yield
83
- rescue NoMemoryError, SystemExit, SyntaxError, SignalException
84
- raise
85
- rescue Exception => exc
86
- exc.class == errcls or
87
- raise AssertionFailed, "#{errcls} should be raised but got #{exc.inspect}"
88
- errmsg.nil? || errmsg === exc.message or
89
- raise AssertionFailed, ("invalid error message.\n"\
90
- " $<actual>: #{exc.message.inspect}\n"\
91
- " $<expected>: #{errmsg.inspect}")
92
- return exc
93
- else
94
- raise AssertionFailed, "#{errcls.name} should be raised but not."
95
- end
96
- end
97
-
98
- def capture(input="", tty: true, &b)
99
- require 'stringio' unless defined?(StringIO)
100
- stdin, stdout, stderr = $stdin, $stdout, $stderr
101
- $stdin = sin = StringIO.new(input)
102
- $stdout = sout = StringIO.new
103
- $stderr = serr = StringIO.new
104
- def sin.tty? ; true; end if tty
105
- def sout.tty?; true; end if tty
106
- def sout.tty?; true; end if tty
107
- yield
108
- return sout.string, serr.string
109
- ensure
110
- $stdin, $stdout, $stderr = stdin, stdout, stderr
111
- end
112
-
113
- def plain2colored(str)
114
- str = str.gsub(/<R>(.*?)<\/R>/) { Oktest::Color.red($1) }
115
- str = str.gsub(/<G>(.*?)<\/G>/) { Oktest::Color.green($1) }
116
- str = str.gsub(/<B>(.*?)<\/B>/) { Oktest::Color.blue($1) }
117
- str = str.gsub(/<C>(.*?)<\/C>/) { Oktest::Color.cyan($1) }
118
- str = str.gsub(/<M>(.*?)<\/M>/) { Oktest::Color.magenta($1) }
119
- str = str.gsub(/<Y>(.*?)<\/Y>/) { Oktest::Color.yellow($1) }
120
- str = str.gsub(/<b>(.*?)<\/b>/) { Oktest::Color.bold($1) }
121
- str = str.gsub(/<E>(.*?)<\/E>/) { Oktest::Color.red_b($1) }
122
- return str
123
- end
124
-
125
- end
126
-
127
-
128
- at_exit { TC.report_result() }
File without changes