tap 0.9.1 → 0.10.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.
Files changed (244) hide show
  1. data/History +37 -30
  2. data/MIT-LICENSE +1 -1
  3. data/README +92 -44
  4. data/bin/tap +62 -75
  5. data/cmd/console.rb +42 -0
  6. data/cmd/destroy.rb +16 -0
  7. data/cmd/generate.rb +16 -0
  8. data/cmd/run.rb +126 -0
  9. data/doc/Class Reference +362 -0
  10. data/doc/Command Reference +153 -0
  11. data/doc/Tutorial +237 -0
  12. data/lib/tap.rb +6 -45
  13. data/lib/tap/app.rb +126 -500
  14. data/lib/tap/constants.rb +2 -29
  15. data/lib/tap/env.rb +555 -250
  16. data/lib/tap/file_task.rb +60 -103
  17. data/lib/tap/generator/base.rb +109 -0
  18. data/lib/tap/generator/destroy.rb +37 -0
  19. data/lib/tap/generator/generate.rb +61 -0
  20. data/lib/tap/generator/generators/command/command_generator.rb +16 -12
  21. data/lib/tap/generator/generators/command/templates/command.erb +13 -19
  22. data/lib/tap/generator/generators/config/config_generator.rb +18 -27
  23. data/lib/tap/generator/generators/config/templates/doc.erb +12 -0
  24. data/lib/tap/generator/generators/config/templates/nodoc.erb +8 -0
  25. data/lib/tap/generator/generators/file_task/file_task_generator.rb +16 -11
  26. data/lib/tap/generator/generators/file_task/templates/file.txt +11 -2
  27. data/lib/tap/generator/generators/file_task/templates/result.yml +6 -0
  28. data/lib/tap/generator/generators/file_task/templates/task.erb +24 -31
  29. data/lib/tap/generator/generators/file_task/templates/test.erb +18 -22
  30. data/lib/tap/generator/generators/root/root_generator.rb +45 -31
  31. data/lib/tap/generator/generators/root/templates/Rakefile +64 -41
  32. data/lib/tap/generator/generators/root/templates/gemspec +27 -0
  33. data/lib/tap/generator/generators/root/templates/tapfile +8 -0
  34. data/lib/tap/generator/generators/root/templates/test/tap_test_helper.rb +0 -0
  35. data/lib/tap/generator/generators/root/templates/test/tap_test_suite.rb +1 -1
  36. data/lib/tap/generator/generators/root/templates/test/tapfile_test.rb +15 -0
  37. data/lib/tap/generator/generators/task/task_generator.rb +21 -28
  38. data/lib/tap/generator/generators/task/templates/task.erb +13 -23
  39. data/lib/tap/generator/generators/task/templates/test.erb +15 -18
  40. data/lib/tap/generator/manifest.rb +14 -0
  41. data/lib/tap/patches/rake/rake_test_loader.rb +0 -0
  42. data/lib/tap/patches/rake/testtask.rb +0 -0
  43. data/lib/tap/patches/ruby19/backtrace_filter.rb +0 -0
  44. data/lib/tap/patches/ruby19/parsedate.rb +0 -0
  45. data/lib/tap/root.rb +260 -21
  46. data/lib/tap/support/aggregator.rb +11 -11
  47. data/lib/tap/support/assignments.rb +172 -0
  48. data/lib/tap/support/audit.rb +20 -18
  49. data/lib/tap/support/batchable.rb +21 -10
  50. data/lib/tap/support/batchable_class.rb +107 -0
  51. data/lib/tap/support/class_configuration.rb +154 -239
  52. data/lib/tap/support/command_line.rb +97 -102
  53. data/lib/tap/support/comment.rb +270 -0
  54. data/lib/tap/support/configurable.rb +86 -65
  55. data/lib/tap/support/configurable_class.rb +296 -0
  56. data/lib/tap/support/configuration.rb +122 -0
  57. data/lib/tap/support/constant.rb +70 -0
  58. data/lib/tap/support/constant_utils.rb +127 -0
  59. data/lib/tap/support/declarations.rb +111 -0
  60. data/lib/tap/support/executable.rb +30 -17
  61. data/lib/tap/support/executable_queue.rb +0 -0
  62. data/lib/tap/support/framework.rb +71 -0
  63. data/lib/tap/support/framework_class.rb +199 -0
  64. data/lib/tap/support/instance_configuration.rb +147 -0
  65. data/lib/tap/support/lazydoc.rb +428 -0
  66. data/lib/tap/support/manifest.rb +89 -0
  67. data/lib/tap/support/run_error.rb +0 -0
  68. data/lib/tap/support/shell_utils.rb +33 -9
  69. data/lib/tap/support/summary.rb +30 -0
  70. data/lib/tap/support/tdoc.rb +339 -134
  71. data/lib/tap/support/tdoc/tdoc_html_generator.rb +0 -0
  72. data/lib/tap/support/tdoc/tdoc_html_template.rb +0 -0
  73. data/lib/tap/support/templater.rb +180 -0
  74. data/lib/tap/support/validation.rb +409 -76
  75. data/lib/tap/support/versions.rb +5 -3
  76. data/lib/tap/task.rb +78 -174
  77. data/lib/tap/tasks/dump.rb +56 -0
  78. data/lib/tap/tasks/rake.rb +93 -0
  79. data/lib/tap/test.rb +3 -3
  80. data/lib/tap/test/env_vars.rb +2 -2
  81. data/lib/tap/test/file_methods.rb +19 -20
  82. data/lib/tap/test/script_methods.rb +144 -0
  83. data/lib/tap/test/subset_methods.rb +1 -1
  84. data/lib/tap/test/tap_methods.rb +28 -62
  85. data/lib/tap/workflow.rb +22 -39
  86. metadata +48 -179
  87. data/Basic Overview +0 -151
  88. data/Command Reference +0 -99
  89. data/Rakefile +0 -127
  90. data/Tutorial +0 -287
  91. data/lib/tap/cmd/console.rb +0 -31
  92. data/lib/tap/cmd/destroy.rb +0 -20
  93. data/lib/tap/cmd/generate.rb +0 -20
  94. data/lib/tap/cmd/run.rb +0 -151
  95. data/lib/tap/dump.rb +0 -57
  96. data/lib/tap/generator.rb +0 -91
  97. data/lib/tap/generator/generators/command/USAGE +0 -6
  98. data/lib/tap/generator/generators/config/USAGE +0 -21
  99. data/lib/tap/generator/generators/config/templates/config.erb +0 -1
  100. data/lib/tap/generator/generators/file_task/USAGE +0 -3
  101. data/lib/tap/generator/generators/file_task/templates/file.yml +0 -3
  102. data/lib/tap/generator/generators/generator/USAGE +0 -0
  103. data/lib/tap/generator/generators/generator/generator_generator.rb +0 -21
  104. data/lib/tap/generator/generators/generator/templates/generator.erb +0 -32
  105. data/lib/tap/generator/generators/generator/templates/usage.erb +0 -1
  106. data/lib/tap/generator/generators/root/USAGE +0 -0
  107. data/lib/tap/generator/generators/root/templates/ReadMe.txt +0 -0
  108. data/lib/tap/generator/generators/root/templates/tap.yml +0 -80
  109. data/lib/tap/generator/generators/task/USAGE +0 -3
  110. data/lib/tap/generator/generators/workflow/USAGE +0 -0
  111. data/lib/tap/generator/generators/workflow/templates/task.erb +0 -16
  112. data/lib/tap/generator/generators/workflow/templates/test.erb +0 -7
  113. data/lib/tap/generator/generators/workflow/workflow_generator.rb +0 -6
  114. data/lib/tap/generator/options.rb +0 -26
  115. data/lib/tap/generator/usage.rb +0 -26
  116. data/lib/tap/support/batchable_methods.rb +0 -34
  117. data/lib/tap/support/command_line_methods.rb +0 -76
  118. data/lib/tap/support/configurable_methods.rb +0 -224
  119. data/lib/tap/support/logger.rb +0 -88
  120. data/lib/tap/support/rake.rb +0 -43
  121. data/lib/tap/support/tdoc/config_attr.rb +0 -362
  122. data/test/app/config/another/task.yml +0 -1
  123. data/test/app/config/batch.yml +0 -2
  124. data/test/app/config/empty.yml +0 -0
  125. data/test/app/config/erb.yml +0 -2
  126. data/test/app/config/some/task.yml +0 -1
  127. data/test/app/config/template.yml +0 -2
  128. data/test/app/config/version-0.1.yml +0 -1
  129. data/test/app/config/version.yml +0 -1
  130. data/test/app/lib/app_test_task.rb +0 -3
  131. data/test/app_test.rb +0 -1849
  132. data/test/env/test_configure/recurse_a.yml +0 -2
  133. data/test/env/test_configure/recurse_b.yml +0 -2
  134. data/test/env/test_configure/tap.yml +0 -23
  135. data/test/env/test_load_env_config/dir/tap.yml +0 -3
  136. data/test/env/test_load_env_config/recurse_a.yml +0 -2
  137. data/test/env/test_load_env_config/recurse_b.yml +0 -2
  138. data/test/env/test_load_env_config/tap.yml +0 -3
  139. data/test/env_test.rb +0 -198
  140. data/test/file_task/config/batch.yml +0 -2
  141. data/test/file_task/config/configured.yml +0 -1
  142. data/test/file_task/old_file_one.txt +0 -0
  143. data/test/file_task/old_file_two.txt +0 -0
  144. data/test/file_task_test.rb +0 -1291
  145. data/test/root/alt_lib/alt_module.rb +0 -4
  146. data/test/root/file.txt +0 -0
  147. data/test/root/glob/one.txt +0 -0
  148. data/test/root/glob/two.txt +0 -0
  149. data/test/root/lib/absolute_alt_filepath.rb +0 -2
  150. data/test/root/lib/alternative_filepath.rb +0 -2
  151. data/test/root/lib/another_module.rb +0 -2
  152. data/test/root/lib/nested/some_module.rb +0 -4
  153. data/test/root/lib/no_module_included.rb +0 -0
  154. data/test/root/lib/some/module.rb +0 -4
  155. data/test/root/lib/some_class.rb +0 -2
  156. data/test/root/lib/some_module.rb +0 -3
  157. data/test/root/load_path/load_path_module.rb +0 -2
  158. data/test/root/load_path/skip_module.rb +0 -2
  159. data/test/root/mtime/older.txt +0 -0
  160. data/test/root/unload/full_path.rb +0 -2
  161. data/test/root/unload/loaded_by_nested.rb +0 -2
  162. data/test/root/unload/nested/nested_load.rb +0 -6
  163. data/test/root/unload/nested/nested_with_ext.rb +0 -4
  164. data/test/root/unload/nested/relative_path.rb +0 -4
  165. data/test/root/unload/older.rb +0 -2
  166. data/test/root/unload/unload_base.rb +0 -9
  167. data/test/root/versions/another.yml +0 -0
  168. data/test/root/versions/file-0.1.2.yml +0 -0
  169. data/test/root/versions/file-0.1.yml +0 -0
  170. data/test/root/versions/file.yml +0 -0
  171. data/test/root_test.rb +0 -718
  172. data/test/support/aggregator_test.rb +0 -99
  173. data/test/support/audit_test.rb +0 -445
  174. data/test/support/batchable_test.rb +0 -74
  175. data/test/support/class_configuration_test.rb +0 -331
  176. data/test/support/command_line_test.rb +0 -58
  177. data/test/support/configurable/config/configured.yml +0 -2
  178. data/test/support/configurable_test.rb +0 -295
  179. data/test/support/executable_queue_test.rb +0 -103
  180. data/test/support/executable_test.rb +0 -38
  181. data/test/support/logger_test.rb +0 -31
  182. data/test/support/rake_test.rb +0 -37
  183. data/test/support/shell_utils_test.rb +0 -24
  184. data/test/support/tdoc_test.rb +0 -370
  185. data/test/support/validation_test.rb +0 -54
  186. data/test/support/versions_test.rb +0 -103
  187. data/test/tap_test_helper.rb +0 -57
  188. data/test/tap_test_suite.rb +0 -7
  189. data/test/task/config/batch.yml +0 -2
  190. data/test/task/config/batched.yml +0 -2
  191. data/test/task/config/configured.yml +0 -1
  192. data/test/task/config/example.yml +0 -1
  193. data/test/task_base_test.rb +0 -24
  194. data/test/task_syntax_test.rb +0 -300
  195. data/test/task_test.rb +0 -320
  196. data/test/test/env_vars_test.rb +0 -48
  197. data/test/test/file_methods/test_assert_files/expected/one.txt +0 -1
  198. data/test/test/file_methods/test_assert_files/expected/two.txt +0 -1
  199. data/test/test/file_methods/test_assert_files/input/one.txt +0 -1
  200. data/test/test/file_methods/test_assert_files/input/two.txt +0 -1
  201. data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/one.txt +0 -1
  202. data/test/test/file_methods/test_assert_files_can_have_no_expected_files_if_specified/input/two.txt +0 -1
  203. data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/one.txt +0 -1
  204. data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/two.txt +0 -1
  205. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/one.txt +0 -1
  206. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/two.txt +0 -1
  207. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/expected/one.txt +0 -1
  208. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/one.txt +0 -1
  209. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/two.txt +0 -1
  210. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/one.txt +0 -1
  211. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/two.txt +0 -1
  212. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/one.txt +0 -1
  213. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/two.txt +0 -1
  214. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/one.txt +0 -1
  215. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/two.txt +0 -1
  216. data/test/test/file_methods/test_method_glob/expected/file.yml +0 -0
  217. data/test/test/file_methods/test_method_glob/expected/file_1.txt +0 -0
  218. data/test/test/file_methods/test_method_glob/expected/file_2.txt +0 -0
  219. data/test/test/file_methods_doc/test_sub/expected/one.txt +0 -1
  220. data/test/test/file_methods_doc/test_sub/expected/two.txt +0 -1
  221. data/test/test/file_methods_doc/test_sub/input/one.txt +0 -1
  222. data/test/test/file_methods_doc/test_sub/input/two.txt +0 -1
  223. data/test/test/file_methods_doc_test.rb +0 -29
  224. data/test/test/file_methods_test.rb +0 -275
  225. data/test/test/subset_methods_test.rb +0 -171
  226. data/test/test/tap_methods/test_assert_files/expected/task/name/a.txt +0 -1
  227. data/test/test/tap_methods/test_assert_files/expected/task/name/b.txt +0 -1
  228. data/test/test/tap_methods/test_assert_files/input/a.txt +0 -1
  229. data/test/test/tap_methods/test_assert_files/input/b.txt +0 -1
  230. data/test/test/tap_methods_test.rb +0 -399
  231. data/test/workflow_test.rb +0 -120
  232. data/vendor/rails_generator.rb +0 -56
  233. data/vendor/rails_generator/base.rb +0 -263
  234. data/vendor/rails_generator/commands.rb +0 -581
  235. data/vendor/rails_generator/generated_attribute.rb +0 -42
  236. data/vendor/rails_generator/lookup.rb +0 -209
  237. data/vendor/rails_generator/manifest.rb +0 -53
  238. data/vendor/rails_generator/options.rb +0 -143
  239. data/vendor/rails_generator/scripts.rb +0 -83
  240. data/vendor/rails_generator/scripts/destroy.rb +0 -7
  241. data/vendor/rails_generator/scripts/generate.rb +0 -7
  242. data/vendor/rails_generator/scripts/update.rb +0 -12
  243. data/vendor/rails_generator/simple_logger.rb +0 -46
  244. data/vendor/rails_generator/spec.rb +0 -44
@@ -1 +0,0 @@
1
- test input 2
@@ -1,29 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../tap_test_helper.rb')
2
- require 'tap/test/file_methods'
3
-
4
- # documentation test
5
- class FileMethodsDocTest < Test::Unit::TestCase
6
- acts_as_file_test
7
-
8
- def test_something
9
- dir = File.expand_path( File.dirname(__FILE__) )
10
- assert_equal dir + "/file_methods_doc", trs.root
11
- assert_equal dir + "/file_methods_doc/test_something", method_root
12
- assert_equal dir + "/file_methods_doc/test_something/input", method_dir(:input)
13
- end
14
-
15
- def test_sub
16
- assert_files do |input_files|
17
- input_files.collect do |filepath|
18
- input = File.read(filepath)
19
- output_file = method_filepath(:output, File.basename(filepath))
20
-
21
- File.open(output_file, "w") do |f|
22
- f << input.gsub(/input/, "output")
23
- end
24
-
25
- output_file
26
- end
27
- end
28
- end
29
- end
@@ -1,275 +0,0 @@
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_str
10
- end
11
-
12
- def test_method_name_returns_test_method_name2
13
- assert_equal "test_method_name_returns_test_method_name2", method_name_str
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_str, "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_str, "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_str, "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_str, "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_str, "input", path)
80
- expected = File.join(trs.root, method_name_str, "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
- # output_tempfile test
105
- #
106
-
107
- def test_output_tempfile_returns_new_file_in_output_dir
108
- output_root = File.join(trs.root, method_name_str, "output")
109
-
110
- filepath =File.join(output_root, "file#{$$}.0")
111
- assert_equal filepath, output_tempfile('file')
112
-
113
- filepath = File.join(output_root, "file#{$$}.0")
114
- assert_equal filepath, output_tempfile('file')
115
-
116
- FileUtils.touch filepath
117
- filepath = File.join(output_root, "file#{$$}.1")
118
- assert_equal filepath, output_tempfile('file')
119
-
120
- FileUtils.touch filepath
121
- filepath = File.join(output_root, "file#{$$}.2")
122
- assert_equal filepath, output_tempfile('file')
123
- end
124
-
125
- #
126
- # assert_files
127
- #
128
-
129
- def setup_file(dir, path, content)
130
- path = method_filepath(dir, path)
131
- dir = File.dirname(path)
132
- FileUtils.mkdir_p(dir) unless File.exists?(dir)
133
-
134
- File.open(path, "w") {|f| f << content}
135
- path
136
- end
137
-
138
- def test_assert_files
139
- setup_file :input, "one.txt", "file one"
140
- setup_file :input, "two.txt", "file two"
141
- setup_file :expected, "one.txt", "processed file one"
142
- setup_file :expected, "two.txt", "processed file two"
143
-
144
- assert_files do |input_files|
145
- input_files.collect do |input_file|
146
- target = method_filepath(:output, File.basename(input_file))
147
- File.open(target, "w") do |file|
148
- file << "processed "
149
- file << File.read(input_file)
150
- end
151
- target
152
- end
153
- end
154
- end
155
-
156
- def test_assert_files_fails_for_missing_expected_file
157
- setup_file :input, "one.txt", "file one"
158
- setup_file :input, "two.txt", "file two"
159
- setup_file :expected, "one.txt", "processed file one"
160
-
161
- failed = false
162
- begin
163
- assert_files do |input_files|
164
- input_files.collect do |input_file|
165
- target = method_filepath(:output, File.basename(input_file))
166
- File.open(target, "w") do |file|
167
- file << "processed "
168
- file << File.read(input_file)
169
- end
170
- target
171
- end
172
- end
173
- rescue
174
- failed = true
175
- end
176
-
177
- assert failed
178
- end
179
-
180
- def test_assert_files_fails_for_missing_output_file
181
- setup_file :input, "one.txt", "file one"
182
- setup_file :input, "two.txt", "file two"
183
- setup_file :expected, "one.txt", "processed file one"
184
- setup_file :expected, "two.txt", "processed file two"
185
-
186
- failed = false
187
- begin
188
- assert_files do |input_files|
189
- input_files.collect do |input_file|
190
- target = method_filepath(:output, File.basename(input_file))
191
- File.open(target, "w") do |file|
192
- file << "processed "
193
- file << File.read(input_file)
194
- end
195
- target
196
- end.first
197
- end
198
- rescue
199
- failed = true
200
- end
201
-
202
- assert failed
203
- end
204
-
205
- def test_assert_files_fails_for_different_content
206
- setup_file :input, "one.txt", "file one"
207
- setup_file :input, "two.txt", "file two"
208
- setup_file :expected, "one.txt", "processed file FLUNK"
209
- setup_file :expected, "two.txt", "processed file two"
210
-
211
- failed = false
212
- begin
213
- assert_files do |input_files|
214
- input_files.collect do |input_file|
215
- target = method_filepath(:output, File.basename(input_file))
216
- File.open(target, "w") do |file|
217
- file << "processed "
218
- file << File.read(input_file)
219
- end
220
- target
221
- end
222
- end
223
- rescue
224
- failed = true
225
- end
226
-
227
- assert failed
228
- end
229
-
230
- def test_assert_files_fails_for_no_expected_files
231
- setup_file :input, "one.txt", "file one"
232
- setup_file :input, "two.txt", "file two"
233
-
234
- was_in_block = false
235
- failed = false
236
- begin
237
- assert_files do |input_files|
238
- was_in_block = true
239
- []
240
- end
241
- rescue
242
- failed = true
243
- end
244
-
245
- assert failed
246
- assert !was_in_block
247
- end
248
-
249
- def test_assert_files_can_have_no_expected_files_if_specified
250
- setup_file :input, "one.txt", "file one"
251
- setup_file :input, "two.txt", "file two"
252
-
253
- was_in_block = false
254
- assert_files :expected_files => [] do |input_files|
255
- assert_equal 2, input_files.length
256
- was_in_block = true
257
- []
258
- end
259
-
260
- assert was_in_block
261
- end
262
- end
263
-
264
- class FileTestTestWithOptions < Test::Unit::TestCase
265
- acts_as_file_test :root => "some/root/dir"
266
-
267
- def test_test_setup
268
- assert_equal File.expand_path("some/root/dir"), trs[:root]
269
- assert_equal({
270
- :input => 'input',
271
- :output => 'output',
272
- :expected => 'expected'}, trs.directories)
273
- end
274
- end
275
-
@@ -1,171 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../tap_test_helper.rb')
2
- require 'tap/test/subset_methods'
3
-
4
- class SubsetMethodsTest < Test::Unit::TestCase
5
- include Tap::Test::SubsetMethods
6
- include Benchmark
7
-
8
- def setup
9
- @env_hold = {}
10
- ENV.each_pair do |key, value|
11
- @env_hold[key] = value
12
- end
13
- ENV.clear
14
- end
15
-
16
- def teardown
17
- ENV.clear
18
- @env_hold.each_pair do |key, value|
19
- ENV[key] = value
20
- end
21
- end
22
-
23
- #
24
- # env_true test
25
- #
26
-
27
- def test_env_true_is_true_if_var_is_true
28
- assert !ENV['type']
29
- assert !env_true?('type')
30
-
31
- ENV['type'] = "false"
32
- assert !env_true?('type')
33
-
34
- ENV['type'] = "true"
35
- assert env_true?('type')
36
-
37
- ENV['type'] = "True"
38
- assert env_true?('type')
39
-
40
- ENV['type'] = "TRUE"
41
- assert env_true?('type')
42
- end
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
-
85
- #
86
- # run subset test
87
- #
88
-
89
- def test_run_subset_true_if_ENV_type_is_true
90
- assert_equal false, run_subset?('type')
91
-
92
- ENV['type'] = "true"
93
- assert_equal true, run_subset?('type')
94
- end
95
-
96
- def test_run_subset_true_if_ENV_all_is_true
97
- ENV['ALL'] = "true"
98
- assert_equal true, run_subset?('type')
99
- end
100
-
101
- #
102
- # match_regexp test
103
- #
104
-
105
- def test_match_regexp
106
- ENV['type'] = "one.*"
107
- assert_equal true, match_regexp?('type', "one")
108
- assert_equal true, match_regexp?('type', "one_two")
109
- assert_equal true, match_regexp?('type', "two_one")
110
- assert_equal false, match_regexp?('type', "non")
111
- end
112
-
113
- def test_match_regexp_returns_true_if_ENV_all_true
114
- ENV['ALL'] = "true"
115
- assert_equal true, match_regexp?('type', "str", "default")
116
- end
117
-
118
- def test_match_regexp_returns_default_unless_ENV_type_is_set
119
- assert_equal "default", match_regexp?('type', "str", "default")
120
- end
121
- end
122
-
123
- class SkippedTest < Test::Unit::TestCase
124
- include Tap::Test::SubsetMethods
125
-
126
- if !conditions.empty?
127
- raise "conditions were NOT empty in subclass"
128
- end
129
-
130
- condition(:unsatisfied) do
131
- false
132
- end
133
-
134
- unless satisfied?(:unsatisfied)
135
- skip_test
136
- end
137
-
138
- def test_method
139
- flunk "test WAS run"
140
- end
141
- end
142
-
143
- class SkippedSubTest < SkippedTest
144
- if conditions.empty?
145
- raise "conditions WERE empty in subclass"
146
- end
147
-
148
- condition(:unsatisfied) do
149
- true
150
- end
151
-
152
- def test_method
153
- assert true
154
- end
155
- end
156
-
157
- class NonSkippedTest < Test::Unit::TestCase
158
- include Tap::Test::SubsetMethods
159
-
160
- condition(:unsatisfied) do
161
- true
162
- end
163
-
164
- unless satisfied?(:unsatisfied)
165
- skip_test
166
- end
167
-
168
- def test_method
169
- assert true
170
- end
171
- end