ZenTest 3.4.3 → 3.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +46 -3
- data/Manifest.txt +13 -0
- data/README.txt +1 -0
- data/Rakefile +20 -3
- data/bin/autotest +23 -37
- data/bin/multiruby +13 -7
- data/bin/unit_diff +1 -1
- data/example_dot_autotest.rb +14 -0
- data/lib/autotest.rb +77 -30
- data/lib/autotest/autoupdate.rb +26 -0
- data/lib/autotest/emacs.rb +29 -0
- data/lib/autotest/fixtures.rb +12 -0
- data/lib/autotest/growl.rb +7 -17
- data/lib/autotest/heckle.rb +14 -0
- data/lib/autotest/migrate.rb +7 -0
- data/lib/autotest/notify.rb +38 -0
- data/lib/autotest/redgreen.rb +7 -4
- data/lib/autotest/screen.rb +77 -0
- data/lib/autotest/shame.rb +45 -0
- data/lib/autotest/timestamp.rb +3 -1
- data/lib/camping_autotest.rb +37 -0
- data/lib/functional_test_matrix.rb +85 -0
- data/lib/rails_autotest.rb +49 -41
- data/lib/rspec_rails_autotest.rb +119 -0
- data/lib/test/rails.rb +28 -1
- data/lib/test/rails/controller_test_case.rb +27 -6
- data/lib/test/rails/functional_test_case.rb +3 -0
- data/lib/test/rails/helper_test_case.rb +3 -0
- data/lib/test/rails/view_test_case.rb +13 -5
- data/lib/test/zentest_assertions.rb +42 -23
- data/lib/unit_diff.rb +86 -69
- data/lib/zentest.rb +58 -87
- data/lib/zentest_mapping.rb +97 -0
- data/test/test_autotest.rb +23 -3
- data/test/test_help.rb +10 -4
- data/test/test_rails_autotest.rb +6 -4
- data/test/test_rails_controller_test_case.rb +10 -2
- data/test/test_ruby_fork.rb +12 -12
- data/test/test_unit_diff.rb +37 -33
- data/test/test_zentest.rb +15 -141
- data/test/test_zentest_assertions.rb +38 -18
- data/test/test_zentest_mapping.rb +213 -0
- metadata +18 -4
@@ -0,0 +1,97 @@
|
|
1
|
+
##
|
2
|
+
# ZenTestMapping - mapping method names from impl to test.
|
3
|
+
#
|
4
|
+
# Method names are mapped bidirectionally in the following way:
|
5
|
+
#
|
6
|
+
# method test_method
|
7
|
+
# method? test_method_eh (too much exposure to Canadians :)
|
8
|
+
# method! test_method_bang
|
9
|
+
# method= test_method_equals
|
10
|
+
# [] test_index
|
11
|
+
# * test_times
|
12
|
+
# == test_equals2
|
13
|
+
# === test_equals3
|
14
|
+
#
|
15
|
+
# Further, any of the test methods should be able to have arbitrary
|
16
|
+
# extensions put on the name to distinguish edge cases:
|
17
|
+
#
|
18
|
+
# method test_method
|
19
|
+
# method test_method_simple
|
20
|
+
# method test_method_no_network
|
21
|
+
#
|
22
|
+
# To allow for unmapped test methods (ie, non-unit tests), name them:
|
23
|
+
#
|
24
|
+
# test_integration_.*
|
25
|
+
|
26
|
+
module ZenTestMapping
|
27
|
+
|
28
|
+
@@orig_method_map = {
|
29
|
+
'!' => 'bang',
|
30
|
+
'%' => 'percent',
|
31
|
+
'&' => 'and',
|
32
|
+
'*' => 'times',
|
33
|
+
'**' => 'times2',
|
34
|
+
'+' => 'plus',
|
35
|
+
'-' => 'minus',
|
36
|
+
'/' => 'div',
|
37
|
+
'<' => 'lt',
|
38
|
+
'<=' => 'lte',
|
39
|
+
'<=>' => 'spaceship',
|
40
|
+
"<\<" => 'lt2',
|
41
|
+
'==' => 'equals2',
|
42
|
+
'===' => 'equals3',
|
43
|
+
'=~' => 'equalstilde',
|
44
|
+
'>' => 'gt',
|
45
|
+
'>=' => 'ge',
|
46
|
+
'>>' => 'gt2',
|
47
|
+
'+@' => 'unary_plus',
|
48
|
+
'-@' => 'unary_minus',
|
49
|
+
'[]' => 'index',
|
50
|
+
'[]=' => 'index_equals',
|
51
|
+
'^' => 'carat',
|
52
|
+
'|' => 'or',
|
53
|
+
'~' => 'tilde',
|
54
|
+
}
|
55
|
+
|
56
|
+
@@method_map = @@orig_method_map.merge(@@orig_method_map.invert)
|
57
|
+
|
58
|
+
# Generates a test method name from a normal method,
|
59
|
+
# taking into account names composed of metacharacters
|
60
|
+
# (used for arithmetic, etc
|
61
|
+
def normal_to_test(name)
|
62
|
+
name = name.dup # wtf?
|
63
|
+
is_cls_method = name.sub!(/^self\./, '')
|
64
|
+
name = @@method_map[name] if @@method_map.has_key? name
|
65
|
+
name = name.sub(/=$/, '_equals')
|
66
|
+
name = name.sub(/\?$/, '_eh')
|
67
|
+
name = name.sub(/\!$/, '_bang')
|
68
|
+
name = "class_" + name if is_cls_method
|
69
|
+
"test_#{name}"
|
70
|
+
end
|
71
|
+
|
72
|
+
# Converts a method name beginning with test to its
|
73
|
+
# corresponding normal method name, taking into account
|
74
|
+
# symbolic names which may have been anglicised by
|
75
|
+
# #normal_to_test().
|
76
|
+
def test_to_normal(name, klassname=nil)
|
77
|
+
known_methods = (@inherited_methods[klassname] || {}).keys.sort.reverse
|
78
|
+
|
79
|
+
mapped_re = @@orig_method_map.values.sort_by { |k| k.length }.map {|s| Regexp.escape(s)}.reverse.join("|")
|
80
|
+
known_methods_re = known_methods.map {|s| Regexp.escape(s)}.join("|")
|
81
|
+
|
82
|
+
name = name.sub(/^test_/, '')
|
83
|
+
name = name.sub(/_equals/, '=') unless name =~ /index/
|
84
|
+
name = name.sub(/_bang.*$/, '!') # FIX: deal w/ extensions separately
|
85
|
+
name = name.sub(/_eh/, '?')
|
86
|
+
is_cls_method = name.sub!(/^class_/, '')
|
87
|
+
name = name.sub(/^(#{mapped_re})(.*)$/) {$1}
|
88
|
+
name = name.sub(/^(#{known_methods_re})(.*)$/) {$1} unless known_methods_re.empty?
|
89
|
+
|
90
|
+
# look up in method map
|
91
|
+
name = @@method_map[name] if @@method_map.has_key? name
|
92
|
+
|
93
|
+
name = 'self.' + name if is_cls_method
|
94
|
+
|
95
|
+
name
|
96
|
+
end
|
97
|
+
end
|
data/test/test_autotest.rb
CHANGED
@@ -172,19 +172,39 @@ test_fail2(#{@test_class}) [#{@test}:60]:
|
|
172
172
|
test_error1(#{@test_class}):
|
173
173
|
3) Error:
|
174
174
|
test_error2(#{@test_class}):
|
175
|
+
|
176
|
+
12 tests, 18 assertions, 2 failures, 2 errors
|
175
177
|
"
|
176
178
|
|
177
179
|
@a.handle_results(s2)
|
178
180
|
expected = { @test => %w( test_fail1 test_fail2 test_error1 test_error2 ) }
|
179
181
|
assert_equal expected, @a.files_to_test
|
182
|
+
assert @a.tainted
|
180
183
|
|
181
184
|
@a.handle_results(s1)
|
182
185
|
assert_equal empty, @a.files_to_test
|
183
|
-
end
|
184
186
|
|
185
|
-
|
187
|
+
s3 = '
|
188
|
+
/opt/bin/ruby -I.:lib:test -rtest/unit -e "%w[#{@test}].each { |f| require f }" | unit_diff -u
|
189
|
+
-e:1:in `require\': ./#{@test}:23: parse error, unexpected tIDENTIFIER, expecting \'}\' (SyntaxError)
|
190
|
+
settings_fields.each {|e| assert_equal e, version.send e.intern}
|
191
|
+
^ from -e:1
|
192
|
+
from -e:1:in `each\'
|
193
|
+
from -e:1
|
194
|
+
'
|
195
|
+
@a.files_to_test[@test] = Time.at(42)
|
196
|
+
@a.files[@test] = []
|
197
|
+
expected = { @test => Time.at(42) }
|
198
|
+
assert_equal expected, @a.files_to_test
|
199
|
+
@a.handle_results(s3)
|
200
|
+
assert_equal expected, @a.files_to_test
|
201
|
+
assert @a.tainted
|
202
|
+
@a.tainted = false
|
186
203
|
|
187
|
-
|
204
|
+
@a.handle_results(s1)
|
205
|
+
assert_equal empty, @a.files_to_test
|
206
|
+
assert ! @a.tainted
|
207
|
+
end
|
188
208
|
|
189
209
|
def test_hook_overlap
|
190
210
|
Autotest.clear_hooks
|
data/test/test_help.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# ActionPack
|
2
2
|
module ActionController; end
|
3
3
|
module ActionController::Flash; end
|
4
|
-
class ActionController::Flash::FlashHash; end
|
5
|
-
class ActionController::TestSession
|
4
|
+
class ActionController::Flash::FlashHash < Hash; end
|
5
|
+
class ActionController::TestSession; end
|
6
6
|
|
7
7
|
class ActionController::TestRequest
|
8
8
|
attr_accessor :session
|
@@ -15,16 +15,22 @@ module ActionView; end
|
|
15
15
|
module ActionView::Helpers; end
|
16
16
|
module ActionView::Helpers::ActiveRecordHelper; end
|
17
17
|
module ActionView::Helpers::TagHelper; end
|
18
|
+
module ActionView::Helpers::TextHelper; end
|
18
19
|
module ActionView::Helpers::FormTagHelper; end
|
19
20
|
module ActionView::Helpers::FormOptionsHelper; end
|
20
21
|
module ActionView::Helpers::FormHelper; end
|
21
22
|
module ActionView::Helpers::UrlHelper; end
|
22
23
|
module ActionView::Helpers::AssetTagHelper; end
|
23
24
|
|
24
|
-
|
25
|
+
class << Test::Unit::TestCase
|
26
|
+
attr_accessor :use_transactional_fixtures
|
27
|
+
attr_accessor :use_instantiated_fixtures
|
28
|
+
end
|
25
29
|
|
30
|
+
# ActionMailer
|
26
31
|
module ActionMailer; end
|
27
32
|
class ActionMailer::Base
|
28
|
-
def self.deliveries=(arg); end
|
33
|
+
def self.deliveries=(arg); end unless defined? @@defined
|
34
|
+
@@defined = true
|
29
35
|
end
|
30
36
|
|
data/test/test_rails_autotest.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'test/unit' if $0 == __FILE__
|
2
|
-
require 'test_autotest'
|
2
|
+
require 'test/test_autotest'
|
3
3
|
require 'rails_autotest'
|
4
4
|
|
5
5
|
class TestRailsAutotest < TestAutotest
|
@@ -77,8 +77,9 @@ class TestRailsAutotest < TestAutotest
|
|
77
77
|
'test/functional/admin/themes_controller_test.rb')
|
78
78
|
|
79
79
|
util_tests_for_file('app/controllers/application.rb',
|
80
|
-
|
81
|
-
|
80
|
+
@rails_controller_tests,
|
81
|
+
@rails_view_tests,
|
82
|
+
@rails_functional_tests)
|
82
83
|
|
83
84
|
util_tests_for_file('app/controllers/route_controller.rb',
|
84
85
|
'test/controllers/route_controller_test.rb',
|
@@ -88,7 +89,8 @@ class TestRailsAutotest < TestAutotest
|
|
88
89
|
|
89
90
|
# helpers
|
90
91
|
util_tests_for_file('app/helpers/application_helper.rb',
|
91
|
-
@rails_view_tests
|
92
|
+
@rails_view_tests,
|
93
|
+
@rails_functional_tests)
|
92
94
|
|
93
95
|
util_tests_for_file('app/helpers/route_helper.rb',
|
94
96
|
'test/views/route_view_test.rb',
|
@@ -13,7 +13,7 @@ class TRController < ApplicationController
|
|
13
13
|
end if $TESTING_RTC
|
14
14
|
|
15
15
|
class TestRailsControllerTestCase < Test::Rails::ControllerTestCase
|
16
|
-
|
16
|
+
|
17
17
|
def setup
|
18
18
|
@controller_class_name = 'TRController'
|
19
19
|
super
|
@@ -31,9 +31,17 @@ class TestRailsControllerTestCase < Test::Rails::ControllerTestCase
|
|
31
31
|
assert_assigned :no_ivar
|
32
32
|
end
|
33
33
|
|
34
|
-
assert_raise Test::Unit::AssertionFailedError do
|
34
|
+
e = assert_raise Test::Unit::AssertionFailedError do
|
35
35
|
assert_assigned :ivar, 'bad_value'
|
36
36
|
end
|
37
|
+
|
38
|
+
expected = <<-EOF.strip
|
39
|
+
assert_assigned :ivar.
|
40
|
+
<\"bad_value\"> expected but was
|
41
|
+
<\"value\">.
|
42
|
+
EOF
|
43
|
+
|
44
|
+
assert_equal expected, e.message
|
37
45
|
end
|
38
46
|
|
39
47
|
def test_deny_assigned
|
data/test/test_ruby_fork.rb
CHANGED
@@ -50,18 +50,6 @@ class TestRubyFork < Test::Unit::TestCase
|
|
50
50
|
assert_equal expected, settings
|
51
51
|
end
|
52
52
|
|
53
|
-
def test_parse_server_args_execute
|
54
|
-
expected = util_make_settings [], ['foo']
|
55
|
-
|
56
|
-
settings = RubyFork.parse_server_args ['-e', 'foo']
|
57
|
-
assert_equal expected, settings
|
58
|
-
|
59
|
-
expected = util_make_settings [], ['foo', 'bar']
|
60
|
-
|
61
|
-
settings = RubyFork.parse_server_args ['-e', 'foo', '-e', 'bar']
|
62
|
-
assert_equal expected, settings
|
63
|
-
end
|
64
|
-
|
65
53
|
def test_parse_server_args_include
|
66
54
|
expected = util_make_settings nil, nil, ['lib'], nil, false
|
67
55
|
|
@@ -102,6 +90,18 @@ class TestRubyFork < Test::Unit::TestCase
|
|
102
90
|
end
|
103
91
|
|
104
92
|
def test_parse_server_args_execute
|
93
|
+
expected = util_make_settings [], ['foo'], nil, nil, false
|
94
|
+
|
95
|
+
settings = RubyFork.parse_server_args ['-e', 'foo']
|
96
|
+
assert_equal expected, settings
|
97
|
+
|
98
|
+
expected = util_make_settings [], ['foo', 'bar'], nil, nil, false
|
99
|
+
|
100
|
+
settings = RubyFork.parse_server_args ['-e', 'foo', '-e', 'bar']
|
101
|
+
assert_equal expected, settings
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_parse_server_args_execute_duplicate_test? # FIX
|
105
105
|
expected = util_make_settings ['zentest'], nil, nil, nil, false
|
106
106
|
|
107
107
|
settings = RubyFork.parse_server_args ['-r', 'zentest']
|
data/test/test_unit_diff.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/local/bin/ruby -w
|
2
2
|
|
3
3
|
require 'test/unit'
|
4
|
+
require 'stringio'
|
4
5
|
|
5
6
|
$TESTING = true
|
6
7
|
|
@@ -13,25 +14,21 @@ class TestUnitDiff < Test::Unit::TestCase
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def test_input
|
16
|
-
|
17
|
+
header = "Loaded suite ./blah\nStarted\nFF\nFinished in 0.035332 seconds.\n\n"
|
18
|
+
input = "#{header} 1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n<\"line1\\nline2\\nline3\\n\"> expected but was\n<\"line4\\nline5\\nline6\\n\">.\n\n 2) Failure:\ntest_test2(TestBlah) [./blah.rb:29]:\n<\"line1\"> expected but was\n<\"line2\\nline3\\n\\n\">.\n\n2 tests, 2 assertions, 2 failures, 0 errors\n"
|
17
19
|
|
18
20
|
# TODO: I think I'd like a separate footer array as well
|
19
|
-
expected = [
|
20
|
-
|
21
|
-
[
|
22
|
-
[" 1) Failure:\n", "test_test1(TestBlah) [./blah.rb:25]:\n", "<\"line1\\nline2\\nline3\\n\"> expected but was\n", "<\"line4\\nline5\\nline6\\n\">.\n"],
|
23
|
-
[" 2) Failure:\n", "test_test2(TestBlah) [./blah.rb:29]:\n", "<\"line1\"> expected but was\n", "<\"line2\\nline3\\n\\n\">.\n"],
|
24
|
-
],
|
25
|
-
["\n", "2 tests, 2 assertions, 2 failures, 0 errors\n"]
|
26
|
-
]
|
21
|
+
expected = [[[" 1) Failure:\n", "test_test1(TestBlah) [./blah.rb:25]:\n", "<\"line1\\nline2\\nline3\\n\"> expected but was\n", "<\"line4\\nline5\\nline6\\n\">.\n"],
|
22
|
+
[" 2) Failure:\n", "test_test2(TestBlah) [./blah.rb:29]:\n", "<\"line1\"> expected but was\n", "<\"line2\\nline3\\n\\n\">.\n"]],
|
23
|
+
["\n", "2 tests, 2 assertions, 2 failures, 0 errors\n"]]
|
27
24
|
|
28
|
-
|
25
|
+
util_unit_diff(header, input, expected, :parse_input)
|
29
26
|
end
|
30
27
|
|
31
28
|
def test_unit_diff_empty # simulates broken pipe at the least
|
32
29
|
input = ""
|
33
30
|
expected = ""
|
34
|
-
|
31
|
+
util_unit_diff("", "", "")
|
35
32
|
end
|
36
33
|
|
37
34
|
def test_parse_diff_angles
|
@@ -112,52 +109,59 @@ class TestUnitDiff < Test::Unit::TestCase
|
|
112
109
|
end
|
113
110
|
|
114
111
|
def test_unit_diff_angles
|
115
|
-
|
116
|
-
|
117
|
-
expected = "
|
112
|
+
header = "Loaded suite ./blah\nStarted\nF\nFinished in 0.035332 seconds.\n\n"
|
113
|
+
input = "#{header} 1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n<\"<html>\"> expected but was\n<\"<body>\">.\n\n1 tests, 1 assertions, 1 failures, 0 errors\n"
|
114
|
+
expected = "1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n1c1\n< <html>\n---\n> <body>\n\n1 tests, 1 assertions, 1 failures, 0 errors"
|
118
115
|
|
119
|
-
|
116
|
+
util_unit_diff(header, input, expected)
|
120
117
|
end
|
121
118
|
|
122
119
|
def test_unit_diff1
|
123
|
-
|
120
|
+
header = "Loaded suite ./blah\nStarted\nF\nFinished in 0.035332 seconds.\n\n"
|
121
|
+
input = "#{header} 1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n<\"line1\\nline2\\nline3\\n\"> expected but was\n<\"line4\\nline5\\nline6\\n\">.\n\n1 tests, 1 assertions, 1 failures, 0 errors\n"
|
122
|
+
expected = "1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n1,3c1,3\n< line1\n< line2\n< line3\n---\n> line4\n> line5\n> line6\n\n1 tests, 1 assertions, 1 failures, 0 errors"
|
124
123
|
|
125
|
-
|
126
|
-
|
127
|
-
assert_equal expected, @diff.unit_diff(input)
|
124
|
+
util_unit_diff(header, input, expected)
|
128
125
|
end
|
129
126
|
|
130
127
|
def test_unit_diff2
|
131
|
-
|
132
|
-
|
133
|
-
expected = "
|
128
|
+
header = "Loaded suite ./blah\nStarted\nFF\nFinished in 0.035332 seconds.\n\n"
|
129
|
+
input = "#{header} 1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n<\"line1\\nline2\\nline3\\n\"> expected but was\n<\"line4\\nline5\\nline6\\n\">.\n\n 2) Failure:\ntest_test2(TestBlah) [./blah.rb:29]:\n<\"line1\"> expected but was\n<\"line2\\nline3\\n\\n\">.\n\n2 tests, 2 assertions, 2 failures, 0 errors\n"
|
130
|
+
expected = "1) Failure:\ntest_test1(TestBlah) [./blah.rb:25]:\n1,3c1,3\n< line1\n< line2\n< line3\n---\n> line4\n> line5\n> line6\n\n2) Failure:\ntest_test2(TestBlah) [./blah.rb:29]:\n1c1,4\n< line1\n---\n> line2\n> line3\n> \n> \n\n2 tests, 2 assertions, 2 failures, 0 errors"
|
134
131
|
|
135
|
-
|
132
|
+
util_unit_diff(header, input, expected)
|
136
133
|
end
|
137
134
|
|
138
135
|
def test_unit_diff3
|
136
|
+
header = ""
|
139
137
|
input = " 13) Failure:\ntest_case_stmt(TestRubyToRubyC) [./r2ctestcase.rb:1198]:\nUnknown expected data.\n<false> is not true.\n"
|
140
|
-
|
141
138
|
expected = "13) Failure:\ntest_case_stmt(TestRubyToRubyC) [./r2ctestcase.rb:1198]:\nUnknown expected data.\n<false> is not true."
|
142
139
|
|
143
|
-
|
140
|
+
util_unit_diff(header, input, expected)
|
144
141
|
end
|
145
142
|
|
146
143
|
def test_unit_diff_suspect_equals
|
147
|
-
|
148
|
-
|
149
|
-
|
144
|
+
header = "Loaded suite ./blah\nStarted\n.............................................F............................................\nFinished in 0.834671 seconds.\n\n"
|
145
|
+
footer = "90 tests, 241 assertions, 1 failures, 0 errors"
|
146
|
+
input = "#{header} 1) Failure:\ntest_unit_diff_suspect_equals(TestUnitDiff) [./test/test_unit_diff.rb:122]:\n<\"out\"> expected but was\n<\"out\">.\n\n#{footer}"
|
147
|
+
expected = "1) Failure:\ntest_unit_diff_suspect_equals(TestUnitDiff) [./test/test_unit_diff.rb:122]:\n[no difference--suspect ==]\n\n#{footer}"
|
150
148
|
|
151
|
-
|
149
|
+
util_unit_diff(header, input, expected)
|
152
150
|
end
|
153
151
|
|
154
152
|
def test_unit_diff_NOT_suspect_equals
|
155
|
-
|
153
|
+
header = "Loaded suite ./blah\nStarted\n.\nFinished in 0.0 seconds.\n\n"
|
154
|
+
input = "#{header} 1) Failure:\ntest_blah(TestBlah)\n<\"out\"> expected but was\n<\"out\\n\">.\n\n1 tests, 1 assertions, 1 failures, 0 errors"
|
155
|
+
expected = "1) Failure:\ntest_blah(TestBlah)\n1a2\n> \n\n1 tests, 1 assertions, 1 failures, 0 errors"
|
156
156
|
|
157
|
-
|
158
|
-
|
159
|
-
assert_equal expected, @diff.unit_diff(input)
|
157
|
+
util_unit_diff(header, input, expected)
|
160
158
|
end
|
161
159
|
|
160
|
+
def util_unit_diff(header, input, expected, msg=:unit_diff)
|
161
|
+
output = StringIO.new("")
|
162
|
+
actual = @diff.send(msg, StringIO.new(input), output)
|
163
|
+
assert_equal header, output.string
|
164
|
+
assert_equal expected, actual
|
165
|
+
end
|
162
166
|
end
|
163
167
|
|
data/test/test_zentest.rb
CHANGED
@@ -10,25 +10,25 @@ require 'zentest' unless defined? $ZENTEST
|
|
10
10
|
# These are just classes set up for quick testing.
|
11
11
|
# TODO: need to test a compound class name Mod::Cls
|
12
12
|
|
13
|
-
class Cls1
|
13
|
+
class Cls1 # ZenTest SKIP
|
14
14
|
def meth1; end
|
15
15
|
def self.meth2; end
|
16
16
|
end
|
17
17
|
|
18
|
-
class TestCls1
|
18
|
+
class TestCls1 # ZenTest SKIP
|
19
19
|
def setup; end
|
20
20
|
def teardown; end
|
21
21
|
def test_meth1; end
|
22
22
|
def test_meth2; assert(true, "something"); end
|
23
23
|
end
|
24
24
|
|
25
|
-
class SuperDuper
|
25
|
+
class SuperDuper # ZenTest SKIP
|
26
26
|
def self.cls_inherited; end
|
27
27
|
def inherited; end
|
28
28
|
def overridden; end
|
29
29
|
end
|
30
30
|
|
31
|
-
class LowlyOne < SuperDuper
|
31
|
+
class LowlyOne < SuperDuper # ZenTest SKIP
|
32
32
|
def self.cls_extended; end
|
33
33
|
def overridden; end
|
34
34
|
def extended; end
|
@@ -235,20 +235,20 @@ end
|
|
235
235
|
def test_is_test_class
|
236
236
|
# classes
|
237
237
|
assert(@tester.is_test_class(TestCls1),
|
238
|
-
|
238
|
+
"All test classes must start with Test")
|
239
239
|
assert(!@tester.is_test_class(Cls1),
|
240
|
-
|
240
|
+
"Classes not starting with Test must not be test classes")
|
241
241
|
# strings
|
242
242
|
assert(@tester.is_test_class("TestCls1"),
|
243
|
-
|
243
|
+
"All test classes must start with Test")
|
244
244
|
assert(@tester.is_test_class("TestMod::TestCls1"),
|
245
|
-
|
245
|
+
"All test modules must start with test as well")
|
246
246
|
assert(!@tester.is_test_class("Cls1"),
|
247
|
-
|
247
|
+
"Classes not starting with Test must not be test classes")
|
248
248
|
assert(!@tester.is_test_class("NotTestMod::TestCls1"),
|
249
|
-
|
249
|
+
"Modules not starting with Test must not be test classes")
|
250
250
|
assert(!@tester.is_test_class("NotTestMod::NotTestCls1"),
|
251
|
-
|
251
|
+
"All names must start with Test to be test classes")
|
252
252
|
end
|
253
253
|
|
254
254
|
def test_is_test_class_reversed
|
@@ -272,9 +272,9 @@ end
|
|
272
272
|
assert_equal('TestCls1', @tester.convert_class_name('Cls1'))
|
273
273
|
|
274
274
|
assert_equal('TestModule::TestCls1',
|
275
|
-
|
275
|
+
@tester.convert_class_name('Module::Cls1'))
|
276
276
|
assert_equal('Module::Cls1',
|
277
|
-
|
277
|
+
@tester.convert_class_name('TestModule::TestCls1'))
|
278
278
|
end
|
279
279
|
|
280
280
|
def test_convert_class_name_reversed
|
@@ -288,9 +288,9 @@ end
|
|
288
288
|
assert_equal('Cls1Test', @tester.convert_class_name('Cls1'))
|
289
289
|
|
290
290
|
assert_equal('ModuleTest::Cls1Test',
|
291
|
-
|
291
|
+
@tester.convert_class_name('Module::Cls1'))
|
292
292
|
assert_equal('Module::Cls1',
|
293
|
-
|
293
|
+
@tester.convert_class_name('ModuleTest::Cls1Test'))
|
294
294
|
$r = old
|
295
295
|
end
|
296
296
|
|
@@ -452,130 +452,6 @@ end
|
|
452
452
|
assert_equal({}, @tester.inherited_methods["SuperDuper"])
|
453
453
|
end
|
454
454
|
|
455
|
-
def test_normal_to_test
|
456
|
-
self.util_simple_setup
|
457
|
-
assert_equal("test_method1", @tester.normal_to_test("method1"))
|
458
|
-
assert_equal("test_method1_bang", @tester.normal_to_test("method1!"))
|
459
|
-
assert_equal("test_method1_eh", @tester.normal_to_test("method1?"))
|
460
|
-
assert_equal("test_method1_equals", @tester.normal_to_test("method1="))
|
461
|
-
end
|
462
|
-
|
463
|
-
def test_normal_to_test_cls
|
464
|
-
self.util_simple_setup
|
465
|
-
assert_equal("test_class_method1", @tester.normal_to_test("self.method1"))
|
466
|
-
assert_equal("test_class_method1_bang", @tester.normal_to_test("self.method1!"))
|
467
|
-
assert_equal("test_class_method1_eh", @tester.normal_to_test("self.method1?"))
|
468
|
-
assert_equal("test_class_method1_equals", @tester.normal_to_test("self.method1="))
|
469
|
-
end
|
470
|
-
|
471
|
-
def test_normal_to_test_operators
|
472
|
-
self.util_simple_setup
|
473
|
-
assert_equal("test_and", @tester.normal_to_test("&"))
|
474
|
-
assert_equal("test_bang", @tester.normal_to_test("!"))
|
475
|
-
assert_equal("test_carat", @tester.normal_to_test("^"))
|
476
|
-
assert_equal("test_div", @tester.normal_to_test("/"))
|
477
|
-
assert_equal("test_equalstilde", @tester.normal_to_test("=~"))
|
478
|
-
assert_equal("test_minus", @tester.normal_to_test("-"))
|
479
|
-
assert_equal("test_or", @tester.normal_to_test("|"))
|
480
|
-
assert_equal("test_percent", @tester.normal_to_test("%"))
|
481
|
-
assert_equal("test_plus", @tester.normal_to_test("+"))
|
482
|
-
assert_equal("test_tilde", @tester.normal_to_test("~"))
|
483
|
-
end
|
484
|
-
|
485
|
-
def test_normal_to_test_overlap
|
486
|
-
self.util_simple_setup
|
487
|
-
assert_equal("test_equals2", @tester.normal_to_test("=="))
|
488
|
-
assert_equal("test_equals3", @tester.normal_to_test("==="))
|
489
|
-
assert_equal("test_ge", @tester.normal_to_test(">="))
|
490
|
-
assert_equal("test_gt", @tester.normal_to_test(">"))
|
491
|
-
assert_equal("test_gt2", @tester.normal_to_test(">>"))
|
492
|
-
assert_equal("test_index", @tester.normal_to_test("[]"))
|
493
|
-
assert_equal("test_index_equals", @tester.normal_to_test("[]="))
|
494
|
-
assert_equal("test_lt", @tester.normal_to_test("<"))
|
495
|
-
assert_equal("test_lt2", @tester.normal_to_test("<\<"))
|
496
|
-
assert_equal("test_lte", @tester.normal_to_test("<="))
|
497
|
-
assert_equal("test_method", @tester.normal_to_test("method"))
|
498
|
-
assert_equal("test_method_equals", @tester.normal_to_test("method="))
|
499
|
-
assert_equal("test_spaceship", @tester.normal_to_test("<=>"))
|
500
|
-
assert_equal("test_times", @tester.normal_to_test("*"))
|
501
|
-
assert_equal("test_times2", @tester.normal_to_test("**"))
|
502
|
-
assert_equal("test_unary_minus", @tester.normal_to_test("-@"))
|
503
|
-
assert_equal("test_unary_plus", @tester.normal_to_test("+@"))
|
504
|
-
assert_equal("test_class_index", @tester.normal_to_test("self.[]"))
|
505
|
-
end
|
506
|
-
|
507
|
-
def test_test_to_normal
|
508
|
-
self.util_simple_setup
|
509
|
-
assert_equal("method1!", @tester.test_to_normal("test_method1_bang", "Something"))
|
510
|
-
assert_equal("method1", @tester.test_to_normal("test_method1", "Something"))
|
511
|
-
assert_equal("method1=", @tester.test_to_normal("test_method1_equals", "Something"))
|
512
|
-
assert_equal("method1?", @tester.test_to_normal("test_method1_eh", "Something"))
|
513
|
-
end
|
514
|
-
|
515
|
-
def test_test_to_normal_cls
|
516
|
-
self.util_simple_setup
|
517
|
-
assert_equal("self.method1", @tester.test_to_normal("test_class_method1"))
|
518
|
-
assert_equal("self.method1!", @tester.test_to_normal("test_class_method1_bang"))
|
519
|
-
assert_equal("self.method1?", @tester.test_to_normal("test_class_method1_eh"))
|
520
|
-
assert_equal("self.method1=", @tester.test_to_normal("test_class_method1_equals"))
|
521
|
-
assert_equal("self.[]", @tester.test_to_normal("test_class_index"))
|
522
|
-
end
|
523
|
-
|
524
|
-
def test_test_to_normal_extended
|
525
|
-
self.util_simple_setup
|
526
|
-
assert_equal("equal?", @tester.test_to_normal("test_equal_eh_extension", "Something"))
|
527
|
-
assert_equal("equal?", @tester.test_to_normal("test_equal_eh_extension_again", "Something"))
|
528
|
-
assert_equal("method1", @tester.test_to_normal("test_method1_extension", "Something"))
|
529
|
-
assert_equal("method1", @tester.test_to_normal("test_method1_extension_again", "Something"))
|
530
|
-
end
|
531
|
-
|
532
|
-
def test_test_to_normal_mapped
|
533
|
-
self.util_simple_setup
|
534
|
-
assert_equal("*", @tester.test_to_normal("test_times"))
|
535
|
-
assert_equal("*", @tester.test_to_normal("test_times_ext"))
|
536
|
-
assert_equal("==", @tester.test_to_normal("test_equals2"))
|
537
|
-
assert_equal("==", @tester.test_to_normal("test_equals2_ext"))
|
538
|
-
assert_equal("===", @tester.test_to_normal("test_equals3"))
|
539
|
-
assert_equal("===", @tester.test_to_normal("test_equals3_ext"))
|
540
|
-
assert_equal("[]", @tester.test_to_normal("test_index"))
|
541
|
-
assert_equal("[]", @tester.test_to_normal("test_index_ext"))
|
542
|
-
assert_equal("[]=", @tester.test_to_normal("test_index_equals"))
|
543
|
-
assert_equal("[]=", @tester.test_to_normal("test_index_equals_ext"))
|
544
|
-
end
|
545
|
-
|
546
|
-
def test_test_to_normal_operators
|
547
|
-
self.util_simple_setup
|
548
|
-
assert_equal("&", @tester.test_to_normal("test_and"))
|
549
|
-
assert_equal("!", @tester.test_to_normal("test_bang"))
|
550
|
-
assert_equal("^", @tester.test_to_normal("test_carat"))
|
551
|
-
assert_equal("/", @tester.test_to_normal("test_div"))
|
552
|
-
assert_equal("=~", @tester.test_to_normal("test_equalstilde"))
|
553
|
-
assert_equal("-", @tester.test_to_normal("test_minus"))
|
554
|
-
assert_equal("|", @tester.test_to_normal("test_or"))
|
555
|
-
assert_equal("%", @tester.test_to_normal("test_percent"))
|
556
|
-
assert_equal("+", @tester.test_to_normal("test_plus"))
|
557
|
-
assert_equal("~", @tester.test_to_normal("test_tilde"))
|
558
|
-
end
|
559
|
-
|
560
|
-
def test_test_to_normal_overlap
|
561
|
-
self.util_simple_setup
|
562
|
-
assert_equal("==", @tester.test_to_normal("test_equals2"))
|
563
|
-
assert_equal("===", @tester.test_to_normal("test_equals3"))
|
564
|
-
assert_equal(">=", @tester.test_to_normal("test_ge"))
|
565
|
-
assert_equal(">", @tester.test_to_normal("test_gt"))
|
566
|
-
assert_equal(">>", @tester.test_to_normal("test_gt2"))
|
567
|
-
assert_equal("[]", @tester.test_to_normal("test_index"))
|
568
|
-
assert_equal("[]=", @tester.test_to_normal("test_index_equals"))
|
569
|
-
assert_equal("<", @tester.test_to_normal("test_lt"))
|
570
|
-
assert_equal("<\<", @tester.test_to_normal("test_lt2"))
|
571
|
-
assert_equal("<=", @tester.test_to_normal("test_lte"))
|
572
|
-
assert_equal("<=>", @tester.test_to_normal("test_spaceship"))
|
573
|
-
assert_equal("*", @tester.test_to_normal("test_times"))
|
574
|
-
assert_equal("**", @tester.test_to_normal("test_times2"))
|
575
|
-
assert_equal("-@", @tester.test_to_normal("test_unary_minus"))
|
576
|
-
assert_equal("+@", @tester.test_to_normal("test_unary_plus"))
|
577
|
-
end
|
578
|
-
|
579
455
|
def test_klasses_equals
|
580
456
|
self.util_simple_setup
|
581
457
|
assert_equal({"Something"=> {
|
@@ -662,6 +538,4 @@ assert_equal expected, util_testcase("Something2::Blah2", "TestSomething2::TestB
|
|
662
538
|
|
663
539
|
assert_equal expected, util_testcase("TestTrueClass")
|
664
540
|
end
|
665
|
-
|
666
541
|
end
|
667
|
-
|