tap 0.7.9 → 0.8.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/History +28 -0
- data/MIT-LICENSE +1 -1
- data/README +71 -43
- data/Rakefile +81 -64
- data/Tutorial +235 -0
- data/bin/tap +80 -44
- data/lib/tap.rb +41 -12
- data/lib/tap/app.rb +243 -246
- data/lib/tap/file_task.rb +357 -118
- data/lib/tap/generator.rb +88 -29
- data/lib/tap/generator/generators/config/config_generator.rb +4 -2
- data/lib/tap/generator/generators/config/templates/config.erb +1 -2
- data/lib/tap/generator/generators/file_task/file_task_generator.rb +3 -18
- data/lib/tap/generator/generators/file_task/templates/task.erb +22 -15
- data/lib/tap/generator/generators/file_task/templates/test.erb +13 -2
- data/{test/test/inference_methods/test_assert_files_exist/input/input_1.txt → lib/tap/generator/generators/generator/USAGE} +0 -0
- data/lib/tap/generator/generators/generator/generator_generator.rb +21 -0
- data/lib/tap/generator/generators/generator/templates/generator.erb +23 -0
- data/lib/tap/generator/generators/generator/templates/usage.erb +1 -0
- data/{test/test/inference_methods/test_assert_files_exist/input/input_2.txt → lib/tap/generator/generators/package/USAGE} +0 -0
- data/lib/tap/generator/generators/package/package_generator.rb +38 -0
- data/lib/tap/generator/generators/package/templates/package.erb +186 -0
- data/lib/tap/generator/generators/root/root_generator.rb +14 -9
- data/lib/tap/generator/generators/root/templates/Rakefile +20 -14
- data/{test/test/inference_methods/test_infer_glob/expected/file.yml → lib/tap/generator/generators/root/templates/ReadMe.txt} +0 -0
- data/lib/tap/generator/generators/root/templates/tap.yml +82 -0
- data/lib/tap/generator/generators/root/templates/test/tap_test_helper.rb +0 -1
- data/lib/tap/generator/generators/root/templates/test/tap_test_suite.rb +2 -1
- data/{test/test/inference_methods/test_infer_glob/expected/file_1.txt → lib/tap/generator/generators/script/USAGE} +0 -0
- data/lib/tap/generator/generators/script/script_generator.rb +17 -0
- data/lib/tap/generator/generators/script/templates/script.erb +42 -0
- data/lib/tap/generator/generators/task/task_generator.rb +1 -1
- data/lib/tap/generator/generators/task/templates/task.erb +24 -16
- data/lib/tap/generator/generators/task/templates/test.erb +13 -17
- data/lib/tap/generator/generators/workflow/templates/task.erb +10 -10
- data/lib/tap/generator/generators/workflow/templates/test.erb +1 -1
- data/lib/tap/generator/generators/workflow/workflow_generator.rb +3 -18
- data/lib/tap/root.rb +108 -146
- data/lib/tap/script.rb +362 -0
- data/lib/tap/script/console.rb +28 -0
- data/lib/tap/script/destroy.rb +13 -1
- data/lib/tap/script/generate.rb +13 -1
- data/lib/tap/script/run.rb +100 -57
- data/lib/tap/support/batch_queue.rb +0 -3
- data/lib/tap/support/logger.rb +6 -3
- data/lib/tap/support/rake.rb +54 -0
- data/lib/tap/support/task_configuration.rb +169 -0
- data/lib/tap/support/tdoc.rb +198 -0
- data/lib/tap/support/tdoc/config_attr.rb +338 -0
- data/lib/tap/support/tdoc/tdoc_html_generator.rb +38 -0
- data/lib/tap/support/tdoc/tdoc_html_template.rb +42 -0
- data/lib/tap/support/versions.rb +33 -1
- data/lib/tap/task.rb +339 -227
- data/lib/tap/test.rb +86 -128
- data/lib/tap/test/env_vars.rb +16 -5
- data/lib/tap/test/file_methods.rb +373 -0
- data/lib/tap/test/subset_methods.rb +299 -180
- data/lib/tap/version.rb +2 -1
- data/lib/tap/workflow.rb +2 -0
- data/test/app/lib/app_test_task.rb +1 -0
- data/test/app_test.rb +327 -83
- data/test/check/binding_eval.rb +23 -0
- data/test/check/define_method_check.rb +22 -0
- data/test/check/dependencies_check.rb +175 -0
- data/test/check/inheritance_check.rb +22 -0
- data/test/file_task_test.rb +524 -291
- data/test/{test/inference_methods/test_infer_glob/expected/file_2.txt → root/glob/one.txt} +0 -0
- data/test/root/glob/two.txt +0 -0
- data/test/root_test.rb +330 -262
- data/test/script_test.rb +194 -0
- data/test/support/audit_test.rb +5 -2
- data/test/support/combinator_test.rb +10 -10
- data/test/support/rake_test.rb +35 -0
- data/test/support/task_configuration_test.rb +272 -0
- data/test/support/tdoc_test.rb +363 -0
- data/test/support/templater_test.rb +2 -2
- data/test/support/versions_test.rb +32 -0
- data/test/tap_test_helper.rb +39 -0
- data/test/task_base_test.rb +115 -0
- data/test/task_class_test.rb +56 -4
- data/test/task_execute_test.rb +29 -0
- data/test/task_test.rb +89 -70
- data/test/test/env_vars_test.rb +48 -0
- data/test/test/{inference_methods → file_methods}/test_assert_expected/expected/file.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_assert_expected/expected/folder/file.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_assert_expected/input/file.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_assert_expected/input/folder/file.txt +0 -0
- data/test/test/file_methods/test_assert_files_exist/input/input_1.txt +0 -0
- data/test/test/file_methods/test_assert_files_exist/input/input_2.txt +0 -0
- data/test/test/file_methods/test_assert_output_files_equal/expected/one.txt +1 -0
- data/test/test/file_methods/test_assert_output_files_equal/expected/two.txt +1 -0
- data/test/test/file_methods/test_assert_output_files_equal/input/one.txt +1 -0
- data/test/test/file_methods/test_assert_output_files_equal/input/two.txt +1 -0
- data/test/test/{inference_methods → file_methods}/test_file_compare/expected/output_1.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_file_compare/expected/output_2.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_file_compare/input/input_1.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_file_compare/input/input_2.txt +0 -0
- data/test/test/file_methods/test_infer_glob/expected/file.yml +0 -0
- data/test/test/file_methods/test_infer_glob/expected/file_1.txt +0 -0
- data/test/test/file_methods/test_infer_glob/expected/file_2.txt +0 -0
- data/test/test/file_methods/test_method_glob/expected/file.yml +0 -0
- data/test/test/file_methods/test_method_glob/expected/file_1.txt +0 -0
- data/test/test/file_methods/test_method_glob/expected/file_2.txt +0 -0
- data/test/test/{inference_methods → file_methods}/test_yml_compare/expected/output_1.yml +0 -0
- data/test/test/{inference_methods → file_methods}/test_yml_compare/expected/output_2.yml +0 -0
- data/test/test/{inference_methods → file_methods}/test_yml_compare/input/input_1.yml +0 -0
- data/test/test/{inference_methods → file_methods}/test_yml_compare/input/input_2.yml +0 -0
- data/test/test/file_methods_test.rb +204 -0
- data/test/test/subset_methods_test.rb +93 -33
- data/test/test/test_assert_expected_result_files/expected/task/name/a.txt +1 -0
- data/test/test/test_assert_expected_result_files/expected/task/name/b.txt +1 -0
- data/test/test/test_assert_expected_result_files/input/a.txt +1 -0
- data/test/test/test_assert_expected_result_files/input/b.txt +1 -0
- data/test/test/test_file_task_test/expected/one.txt +1 -0
- data/test/test/test_file_task_test/expected/two.txt +1 -0
- data/test/test/test_file_task_test/input/one.txt +1 -0
- data/test/test/test_file_task_test/input/two.txt +1 -0
- data/test/test_test.rb +143 -3
- data/test/workflow_test.rb +2 -0
- data/vendor/rails_generator.rb +56 -0
- data/vendor/rails_generator/base.rb +263 -0
- data/vendor/rails_generator/commands.rb +581 -0
- data/vendor/rails_generator/generated_attribute.rb +42 -0
- data/vendor/rails_generator/lookup.rb +209 -0
- data/vendor/rails_generator/manifest.rb +53 -0
- data/vendor/rails_generator/options.rb +143 -0
- data/vendor/rails_generator/scripts.rb +83 -0
- data/vendor/rails_generator/scripts/destroy.rb +7 -0
- data/vendor/rails_generator/scripts/generate.rb +7 -0
- data/vendor/rails_generator/scripts/update.rb +12 -0
- data/vendor/rails_generator/simple_logger.rb +46 -0
- data/vendor/rails_generator/spec.rb +44 -0
- metadata +180 -196
- data/lib/tap/generator/generators/root/templates/app.yml +0 -19
- data/lib/tap/generator/generators/root/templates/config/process_tap_request.yml +0 -4
- data/lib/tap/generator/generators/root/templates/lib/process_tap_request.rb +0 -26
- data/lib/tap/generator/generators/root/templates/public/images/nav.jpg +0 -0
- data/lib/tap/generator/generators/root/templates/public/stylesheets/color.css +0 -57
- data/lib/tap/generator/generators/root/templates/public/stylesheets/layout.css +0 -108
- data/lib/tap/generator/generators/root/templates/public/stylesheets/normalize.css +0 -40
- data/lib/tap/generator/generators/root/templates/public/stylesheets/typography.css +0 -21
- data/lib/tap/generator/generators/root/templates/server/config/environment.rb +0 -60
- data/lib/tap/generator/generators/root/templates/server/lib/tasks/clear_database_prerequisites.rake +0 -5
- data/lib/tap/generator/generators/root/templates/server/test/test_helper.rb +0 -53
- data/lib/tap/script/server.rb +0 -12
- data/lib/tap/support/rap.rb +0 -38
- data/lib/tap/test/inference_methods.rb +0 -298
- data/test/task/config/task_with_config.yml +0 -1
- data/test/test/inference_methods_test.rb +0 -311
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../tap_test_helper.rb')
|
|
2
|
+
|
|
3
|
+
class EnvVarsTest < Test::Unit::TestCase
|
|
4
|
+
include Tap::Test::EnvVars
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@env_hold = {}
|
|
8
|
+
ENV.each_pair do |key, value|
|
|
9
|
+
@env_hold[key] = value
|
|
10
|
+
end
|
|
11
|
+
ENV.clear
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def teardown
|
|
15
|
+
ENV.clear
|
|
16
|
+
@env_hold.each_pair do |key, value|
|
|
17
|
+
ENV[key] = value
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# env test
|
|
23
|
+
#
|
|
24
|
+
|
|
25
|
+
def test_env_access_is_case_insensitive
|
|
26
|
+
ENV['key1'] = "value"
|
|
27
|
+
assert_equal 'value', env('key1')
|
|
28
|
+
assert_equal 'value', env('KEY1')
|
|
29
|
+
|
|
30
|
+
ENV['KEY2'] = "VALUE"
|
|
31
|
+
assert_equal 'VALUE', env('key2')
|
|
32
|
+
assert_equal 'VALUE', env('KEY2')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_env_raises_error_if_multiple_values_can_be_selected
|
|
36
|
+
ENV['key'] = "value"
|
|
37
|
+
ENV['KEY'] = "VALUE"
|
|
38
|
+
|
|
39
|
+
# Some platforms (ex Windows) already make ENV case-independent
|
|
40
|
+
# Filter for the platforms that do not by checking that ENV has both
|
|
41
|
+
# expected keys
|
|
42
|
+
if ENV.length == 2
|
|
43
|
+
assert_raise(RuntimeError) { env('key') }
|
|
44
|
+
assert_raise(RuntimeError) { env('Key') }
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
File without changes
|
data/test/test/{inference_methods → file_methods}/test_assert_expected/expected/folder/file.txt
RENAMED
|
File without changes
|
|
File without changes
|
data/test/test/{inference_methods → file_methods}/test_assert_expected/input/folder/file.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
processed file one
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
processed file two
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
file one
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
file two
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../tap_test_helper.rb')
|
|
2
|
+
require 'tap/test/file_methods'
|
|
3
|
+
|
|
4
|
+
class FileMethodsTest < Test::Unit::TestCase
|
|
5
|
+
include Tap::Test::SubsetMethods
|
|
6
|
+
acts_as_file_test
|
|
7
|
+
|
|
8
|
+
def test_method_name_returns_test_method_name1
|
|
9
|
+
assert_equal "test_method_name_returns_test_method_name1", method_name
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_method_name_returns_test_method_name2
|
|
13
|
+
assert_equal "test_method_name_returns_test_method_name2", method_name
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_make_test_directories
|
|
17
|
+
root = File.expand_path(File.join(File.dirname(__FILE__), "file_methods"))
|
|
18
|
+
begin
|
|
19
|
+
assert_equal root, trs[:root]
|
|
20
|
+
assert_equal({
|
|
21
|
+
:input => 'input',
|
|
22
|
+
:output => 'output',
|
|
23
|
+
:expected => 'expected'}, trs.directories)
|
|
24
|
+
|
|
25
|
+
trs.directories.values.each do |dir|
|
|
26
|
+
assert !File.exists?(File.join(root, "test_make_test_directories", dir.to_s)), dir
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
make_test_directories # alias for make_test_directories
|
|
30
|
+
|
|
31
|
+
trs.directories.values.each do |dir|
|
|
32
|
+
assert File.exists?(File.join(root, "test_make_test_directories", dir.to_s)), dir
|
|
33
|
+
end
|
|
34
|
+
ensure
|
|
35
|
+
dir = File.join(File.join(root, "test_make_test_directories"))
|
|
36
|
+
FileUtils.rm_r dir if File.exists?(dir)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
#
|
|
41
|
+
# method filepath tests
|
|
42
|
+
#
|
|
43
|
+
|
|
44
|
+
def test_method_dir_adds_method_to_path
|
|
45
|
+
assert_equal File.join(trs.root, method_name, "input"), method_dir(:input)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_method_filepath_adds_method_to_path
|
|
49
|
+
input_root = File.join(trs.root, method_name, "input")
|
|
50
|
+
assert_equal File.join(input_root, "file.txt"), method_filepath(:input, 'file.txt')
|
|
51
|
+
assert_equal File.join(input_root, "folder/file.txt"), method_filepath(:input, 'folder', 'file.txt')
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
#
|
|
55
|
+
# method relative filepath tests
|
|
56
|
+
#
|
|
57
|
+
|
|
58
|
+
def test_method_relative_filepath_removes_method_dir
|
|
59
|
+
input_root = File.join(trs.root, method_name, "input")
|
|
60
|
+
assert_equal 'file.txt', method_relative_filepath(:input, File.join(input_root, "file.txt"))
|
|
61
|
+
assert_equal 'folder/file.txt', method_relative_filepath(:input, File.join(input_root, "folder/file.txt"))
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_method_relative_filepath_expands_filepaths
|
|
65
|
+
input_root = File.join(trs.root, method_name, "input")
|
|
66
|
+
assert_equal 'file.txt', method_relative_filepath(:input, File.join(input_root, "folder/.././file.txt") )
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_method_relative_filepath_raises_error_unless_filepath_begins_with_method_dir
|
|
70
|
+
assert_raise(RuntimeError) { method_relative_filepath(:input, File.join('some/path', trs[:input], 'file.txt') ) }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
#
|
|
74
|
+
# method translate tests
|
|
75
|
+
#
|
|
76
|
+
|
|
77
|
+
def test_method_translate
|
|
78
|
+
['file.txt', 'folder/file.txt'].each do |path|
|
|
79
|
+
filepath = File.join(trs.root, method_name, "input", path)
|
|
80
|
+
expected = File.join(trs.root, method_name, "output", path)
|
|
81
|
+
|
|
82
|
+
assert_equal expected, method_translate(filepath, :input, :output)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
#
|
|
87
|
+
# method glob tests
|
|
88
|
+
#
|
|
89
|
+
|
|
90
|
+
def test_method_glob
|
|
91
|
+
{
|
|
92
|
+
[:expected] => ["file.yml", "file_1.txt", "file_2.txt"],
|
|
93
|
+
[:expected, "*"] => ["file.yml", "file_1.txt", "file_2.txt"],
|
|
94
|
+
[:expected, "*.txt"] => ["file_1.txt", "file_2.txt"],
|
|
95
|
+
[:expected, "*.txt", "*.yml"] => ["file.yml", "file_1.txt", "file_2.txt"]
|
|
96
|
+
}.each_pair do |testcase, expected|
|
|
97
|
+
expected.collect! { |file| method_filepath(:expected, file) }
|
|
98
|
+
|
|
99
|
+
assert_equal expected.sort, method_glob(*testcase).sort
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
#
|
|
104
|
+
# tempfile test
|
|
105
|
+
#
|
|
106
|
+
|
|
107
|
+
def test_tempfile_returns_new_file_in_output_dir
|
|
108
|
+
output_root = File.join(trs.root, method_name, "output")
|
|
109
|
+
|
|
110
|
+
filepath =File.join(output_root, "file#{$$}.0")
|
|
111
|
+
assert_equal filepath, tempfile('file')
|
|
112
|
+
|
|
113
|
+
filepath = File.join(output_root, "file#{$$}.0")
|
|
114
|
+
assert_equal filepath, tempfile('file')
|
|
115
|
+
|
|
116
|
+
FileUtils.touch filepath
|
|
117
|
+
filepath = File.join(output_root, "file#{$$}.1")
|
|
118
|
+
assert_equal filepath, tempfile('file')
|
|
119
|
+
|
|
120
|
+
FileUtils.touch filepath
|
|
121
|
+
filepath = File.join(output_root, "file#{$$}.2")
|
|
122
|
+
assert_equal filepath, tempfile('file')
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
#
|
|
126
|
+
# files equal test
|
|
127
|
+
#
|
|
128
|
+
|
|
129
|
+
def test_file_compare
|
|
130
|
+
count = 0
|
|
131
|
+
each_pair(method_glob(:input, "*1*"), method_glob(:expected, "*1*") ) do |a, b|
|
|
132
|
+
assert files_equal?(a, b)
|
|
133
|
+
count += 1
|
|
134
|
+
end
|
|
135
|
+
assert_equal 1, count
|
|
136
|
+
|
|
137
|
+
each_pair(method_glob(:input, "*2*"), method_glob(:expected, "*2*") ) do |a, b|
|
|
138
|
+
assert !files_equal?(a, b)
|
|
139
|
+
count += 1
|
|
140
|
+
end
|
|
141
|
+
assert_equal 2, count
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
#
|
|
145
|
+
# yml equal test
|
|
146
|
+
#
|
|
147
|
+
|
|
148
|
+
def test_yml_compare
|
|
149
|
+
count = 0
|
|
150
|
+
each_pair(method_glob(:input, "*1*"), method_glob(:expected, "*1*") ) do |a, b|
|
|
151
|
+
assert yml_equal?(a, b)
|
|
152
|
+
count += 1
|
|
153
|
+
end
|
|
154
|
+
assert_equal 1, count
|
|
155
|
+
|
|
156
|
+
each_pair(method_glob(:input, "*2*"), method_glob(:expected, "*2*") ) do |a, b|
|
|
157
|
+
assert !yml_equal?(a, b)
|
|
158
|
+
count += 1
|
|
159
|
+
end
|
|
160
|
+
assert_equal 2, count
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
#
|
|
164
|
+
# assert_output_files_equal
|
|
165
|
+
#
|
|
166
|
+
|
|
167
|
+
def setup_file(dir, path, content)
|
|
168
|
+
path = method_filepath(dir, path)
|
|
169
|
+
dir = File.dirname(path)
|
|
170
|
+
FileUtils.mkdir_p(dir) unless File.exists?(dir)
|
|
171
|
+
|
|
172
|
+
File.open(path, "w") {|f| f << content}
|
|
173
|
+
path
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def test_assert_output_files_equal
|
|
177
|
+
setup_file :input, "one.txt", "file one"
|
|
178
|
+
setup_file :input, "two.txt", "file two"
|
|
179
|
+
setup_file :expected, "one.txt", "processed file one"
|
|
180
|
+
setup_file :expected, "two.txt", "processed file two"
|
|
181
|
+
|
|
182
|
+
assert_output_files_equal(:iterate_inputs => true) do |input_file|
|
|
183
|
+
target = method_filepath(:output, File.basename(input_file))
|
|
184
|
+
File.open(target, "w") do |file|
|
|
185
|
+
file << "processed "
|
|
186
|
+
file << File.read(input_file)
|
|
187
|
+
end
|
|
188
|
+
target
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
class FileTestTestWithOptions < Test::Unit::TestCase
|
|
194
|
+
acts_as_file_test :root => "some/root/dir"
|
|
195
|
+
|
|
196
|
+
def test_test_setup
|
|
197
|
+
assert_equal File.expand_path("some/root/dir"), trs[:root]
|
|
198
|
+
assert_equal({
|
|
199
|
+
:input => 'input',
|
|
200
|
+
:output => 'output',
|
|
201
|
+
:expected => 'expected'}, trs.directories)
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
@@ -3,10 +3,7 @@ require 'tap/test/subset_methods'
|
|
|
3
3
|
|
|
4
4
|
class SubsetMethodsTest < Test::Unit::TestCase
|
|
5
5
|
include Tap::Test::SubsetMethods
|
|
6
|
-
|
|
7
|
-
# TODO - replace ENV[] with env() throughout,
|
|
8
|
-
# and override env() so ENV is absolutely NOT
|
|
9
|
-
# modified
|
|
6
|
+
include Benchmark
|
|
10
7
|
|
|
11
8
|
def setup
|
|
12
9
|
@env_hold = {}
|
|
@@ -43,7 +40,48 @@ class SubsetMethodsTest < Test::Unit::TestCase
|
|
|
43
40
|
ENV['type'] = "TRUE"
|
|
44
41
|
assert env_true?('type')
|
|
45
42
|
end
|
|
46
|
-
|
|
43
|
+
|
|
44
|
+
#
|
|
45
|
+
# extended_test test
|
|
46
|
+
#
|
|
47
|
+
|
|
48
|
+
def test_extended_test_runs_only_if_extended_true
|
|
49
|
+
was_in_test = false
|
|
50
|
+
extended_test { was_in_test = true }
|
|
51
|
+
assert !was_in_test
|
|
52
|
+
|
|
53
|
+
ENV['EXTENDED'] = 'true'
|
|
54
|
+
extended_test { was_in_test = true }
|
|
55
|
+
assert was_in_test
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# condition test
|
|
60
|
+
#
|
|
61
|
+
|
|
62
|
+
condition(:is_true) {true}
|
|
63
|
+
condition(:is_false) {false}
|
|
64
|
+
|
|
65
|
+
def test_conditional_test_runs_only_if_all_conditions_are_true
|
|
66
|
+
test_ran = false
|
|
67
|
+
condition_test(:is_true) { test_ran = true}
|
|
68
|
+
assert test_ran
|
|
69
|
+
|
|
70
|
+
test_ran = false
|
|
71
|
+
condition_test(:is_false) { test_ran = true}
|
|
72
|
+
assert !test_ran
|
|
73
|
+
|
|
74
|
+
test_ran = false
|
|
75
|
+
condition_test(:is_true, :is_false) { test_ran = true}
|
|
76
|
+
assert !test_ran
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
#
|
|
80
|
+
# benchmark_test test
|
|
81
|
+
#
|
|
82
|
+
|
|
83
|
+
# TODO - find a way to test this is a quiet fashion
|
|
84
|
+
|
|
47
85
|
#
|
|
48
86
|
# run subset test
|
|
49
87
|
#
|
|
@@ -84,32 +122,54 @@ class SubsetMethodsTest < Test::Unit::TestCase
|
|
|
84
122
|
def test_match_regexp_returns_default_unless_ENV_type_is_set
|
|
85
123
|
assert_equal "default", match_regexp?('type', 1, "default")
|
|
86
124
|
end
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
class SkippedTest < Test::Unit::TestCase
|
|
128
|
+
include Tap::Test::SubsetMethods
|
|
129
|
+
|
|
130
|
+
if !conditions.empty?
|
|
131
|
+
raise "conditions were NOT empty in subclass"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
condition(:unsatisfied) do
|
|
135
|
+
false
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
unless satisfied?(:unsatisfied)
|
|
139
|
+
skip_test
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def test_method
|
|
143
|
+
flunk "test WAS run"
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
class SkippedSubTest < SkippedTest
|
|
148
|
+
if conditions.empty?
|
|
149
|
+
raise "conditions WERE empty in subclass"
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
condition(:unsatisfied) do
|
|
153
|
+
true
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def test_method
|
|
157
|
+
assert true
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
class NonSkippedTest < Test::Unit::TestCase
|
|
162
|
+
include Tap::Test::SubsetMethods
|
|
163
|
+
|
|
164
|
+
condition(:unsatisfied) do
|
|
165
|
+
true
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
unless satisfied?(:unsatisfied)
|
|
169
|
+
skip_test
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def test_method
|
|
173
|
+
assert true
|
|
174
|
+
end
|
|
115
175
|
end
|