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
data/test/task_test.rb DELETED
@@ -1,320 +0,0 @@
1
- require File.join(File.dirname(__FILE__), 'tap_test_helper')
2
- require 'tap/task'
3
-
4
- # used in documentation test
5
- class ConfiguredTask < Tap::Task
6
- config :one, 'one'
7
- config :two, 'two'
8
- end
9
- class ValidatingTask < Tap::Task
10
- config :string, 'str', &c.check(String)
11
- config :integer, 1, &c.yaml(Integer)
12
- end
13
-
14
- class SubclassTask < Tap::Task
15
- attr_accessor :shared_variable, :instance_specific_variable
16
- def initialize(*args)
17
- @shared_variable = Object.new
18
- super
19
- end
20
-
21
- def initialize_batch_obj(*args)
22
- task = super
23
- task.instance_specific_variable = Object.new
24
- task
25
- end
26
- end
27
-
28
- class TaskTest < Test::Unit::TestCase
29
- include Tap
30
- include TapTestMethods
31
-
32
- acts_as_tap_test
33
- attr_accessor :t
34
-
35
- def setup
36
- super
37
- @t = Task.new
38
- app.root = trs.root
39
- end
40
-
41
- def test_documentation
42
- t = ConfiguredTask.new
43
- assert_equal("configured_task", t.name)
44
- assert_equal({:one => 'one', :two => 'two'}, t.config)
45
-
46
- ###
47
- # [/path/to/app/config/example.yml]
48
- # one: ONE
49
-
50
- t = ConfiguredTask.new "example", :three => 'three'
51
- assert_equal("example", t.name)
52
- assert_equal(File.join(app[:config], "example.yml"), t.config_file)
53
- assert_equal({:one => 'ONE', :two => 'two', :three => 'three'}, t.config)
54
-
55
- t = ValidatingTask.new
56
- assert_raise(Support::Validation::ValidationError) { t.string = 1 }
57
- assert_raise(Support::Validation::ValidationError) { t.integer = 1.1 }
58
-
59
- t.integer = "1"
60
- assert_equal 1, t.integer
61
-
62
- ####
63
- # [/path/to/app/config/batch.yml]
64
- # - one: ONE
65
- # - one: ANOTHER ONE
66
-
67
- t = ConfiguredTask.new "batch"
68
- assert_equal(2, t.batch.size)
69
- t1, t2 = t.batch
70
-
71
- assert_equal("batch", t1.name)
72
- assert_equal({:one => 'ONE', :two => 'two'}, t1.config)
73
-
74
- assert_equal("batch", t2.name)
75
- assert_equal({:one => 'ANOTHER ONE', :two => 'two'}, t2.config)
76
-
77
- ###
78
- runlist = []
79
- t1 = Task.new {|task, input| runlist << input}
80
- assert_equal [t1], t1.batch
81
-
82
- t2 = t1.initialize_batch_obj
83
- assert_equal [t1, t2], t1.batch
84
- assert_equal [t1, t2], t2.batch
85
-
86
- t1.enq 1
87
- t2.enq 2
88
- t1.app.run
89
-
90
- assert_equal [1,1,2,2], runlist
91
- end
92
-
93
- #
94
- # initialization tests
95
- #
96
-
97
-
98
- def test_initialize_documenation
99
- t1 = SubclassTask.new
100
- t2 = t1.initialize_batch_obj
101
-
102
- assert t1.shared_variable == t2.shared_variable
103
- assert t1.instance_specific_variable != t2.instance_specific_variable
104
- end
105
-
106
- def test_default_initialization
107
- assert_equal App.instance, t.app
108
- assert_equal({}, t.config)
109
- assert_equal [t], t.batch
110
- assert_nil t.task_block
111
- assert_equal "tap/task", t.name
112
- end
113
-
114
- def test_initialization_inputs
115
- a = App.new
116
- b = lambda {}
117
-
118
- t = Task.new("name", {:key => 'value'}, a, &b)
119
- assert_equal "name", t.name
120
- assert_equal({:key => 'value'}, t.config)
121
- assert_equal a, t.app
122
- assert_equal b, t.task_block
123
- end
124
-
125
- def test_task_init_speed
126
- benchmark_test(20) do |x|
127
- x.report("10k") { 10000.times { Task.new } }
128
- x.report("10k {}") { 10000.times { Task.new {} } }
129
- x.report("10k name {}") { 10000.times { Task.new('name') {} } }
130
- end
131
- end
132
-
133
- def test_by_default_tasks_share_application_instance
134
- t1 = Task.new
135
- t2 = Task.new
136
-
137
- assert_equal t1.app, t2.app
138
- assert_equal App.instance, t1.app
139
- end
140
-
141
- #
142
- # config tests
143
- #
144
-
145
- def test_config_is_loaded_from_config_file
146
- t = Task.new "configured"
147
- assert File.exists?(t.config_file)
148
- assert_equal "key: value", File.read(t.config_file)
149
- assert_equal({:key => 'value'}, t.config)
150
- end
151
-
152
- def test_batched_tasks_are_defined_with_corresponding_configs_for_batched_config_files
153
- t = Task.new "batched"
154
- assert File.exists?(t.config_file)
155
- assert_equal "- key: first\n- key: second", File.read(t.config_file)
156
-
157
- assert_equal 2, t.batch.size
158
-
159
- t1, t2 = t.batch
160
- assert_equal({:key => 'first'}, t1.config)
161
- assert_equal({:key => 'second'}, t2.config)
162
- end
163
-
164
- def test_configs_are_merged_to_each_batched_task
165
- t = Task.new "batched", :another => 'value'
166
- t1, t2 = t.batch
167
- assert_equal({:key => 'first', :another => 'value'}, t1.config)
168
- assert_equal({:key => 'second', :another => 'value'}, t2.config)
169
- end
170
-
171
- #
172
- # enq test
173
- #
174
-
175
- def test_enq_enqueues_task_to_app_queue_with_inputs
176
- assert t.app.queue.empty?
177
-
178
- t.enq 1
179
-
180
- assert_equal 1, t.app.queue.size
181
- assert_equal [[t, [1]]], t.app.queue.to_a
182
-
183
- t.enq 1
184
- t.enq 2
185
-
186
- assert_equal [[t, [1]], [t, [1]], [t, [2]]], t.app.queue.to_a
187
- end
188
-
189
- def test_enq_enqueues_task_batch
190
- t2 = t.initialize_batch_obj
191
-
192
- assert t.app.queue.empty?
193
- assert_equal 2, t.batch.size
194
-
195
- t.enq 1
196
-
197
- assert_equal 2, t.app.queue.size
198
- assert_equal [[t, [1]], [t2, [1]]], t.app.queue.to_a
199
- end
200
-
201
- def test_unbatched_enq_only_enqueues_task
202
- t2 = t.initialize_batch_obj
203
-
204
- assert_equal 2, t.batch.size
205
- assert t.app.queue.empty?
206
- t.unbatched_enq 1
207
-
208
- assert_equal 1, t.app.queue.size
209
- assert_equal [[t, [1]]], t.app.queue.to_a
210
- end
211
-
212
- #
213
- # on_complete test
214
- #
215
-
216
- def test_on_complete_completes_task_batch
217
- t2 = t.initialize_batch_obj
218
-
219
- assert_nil t.on_complete_block
220
- assert_nil t2.on_complete_block
221
-
222
- b = lambda {}
223
- t.on_complete(&b)
224
-
225
- assert_equal b, t.on_complete_block
226
- assert_equal b, t2.on_complete_block
227
- end
228
-
229
- def test_unbatched_on_complete_only_completes_task
230
- t2 = t.initialize_batch_obj
231
-
232
- assert_nil t.on_complete_block
233
- assert_nil t2.on_complete_block
234
-
235
- b = lambda {}
236
- t.unbatched_on_complete(&b)
237
-
238
- assert_equal b, t.on_complete_block
239
- assert_nil t2.on_complete_block
240
- end
241
-
242
- #
243
- # multithread= test
244
- #
245
-
246
- def test_set_multithread_sets_multithread_for_task_batch
247
- t2 = t.initialize_batch_obj
248
-
249
- assert !t.multithread
250
- assert !t2.multithread
251
-
252
- t.multithread = true
253
-
254
- assert t.multithread
255
- assert t2.multithread
256
- end
257
-
258
- def test_unbatched_set_multithread_sets_multithread_for_task_only
259
- t2 = t.initialize_batch_obj
260
-
261
- assert !t.multithread
262
- assert !t2.multithread
263
-
264
- t.unbatched_multithread = true
265
-
266
- assert t.multithread
267
- assert !t2.multithread
268
- end
269
-
270
- #
271
- # to_s test
272
- #
273
-
274
- def test_to_s_returns_name
275
- assert_equal t.name, t.to_s
276
- t = Task.new("alt_name")
277
- assert_equal "alt_name", t.to_s
278
- end
279
-
280
- #
281
- # process test
282
- #
283
-
284
- class TaskWithTwoInputsForProcessDoc < Tap::Task
285
- def process(a, b)
286
- [b,a]
287
- end
288
- end
289
-
290
- def test_process_documentation
291
- t = TaskWithTwoInputsForProcessDoc.new
292
- t.enq(1,2).enq(3,4)
293
- t.app.run
294
- assert_equal [[2,1], [4,3]], t.app.results(t)
295
-
296
- t = Task.new {|task, a, b| [b,a] }
297
- t.enq(1,2).enq(3,4)
298
- t.app.run
299
- assert_equal [[2,1], [4,3]], t.app.results(t)
300
- end
301
-
302
- def test_process_calls_task_block_with_input
303
- b = lambda do |task, input|
304
- runlist << input
305
- input += 1
306
- end
307
- t = Task.new(&b)
308
-
309
- assert_equal b, t.task_block
310
- assert_equal 2, t.process(1)
311
- assert_equal [1], runlist
312
- end
313
-
314
- def test_process_returns_inputs_if_task_block_is_not_set
315
- t = Task.new
316
- assert_nil t.task_block
317
- assert_equal [1,2,3], t.process(1,2,3)
318
- end
319
-
320
- end
@@ -1,48 +0,0 @@
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
@@ -1 +0,0 @@
1
- processed file one
@@ -1 +0,0 @@
1
- processed file two
@@ -1 +0,0 @@
1
- test output 1
@@ -1 +0,0 @@
1
- test output 2
@@ -1 +0,0 @@
1
- test input 1