tap 0.8.0 → 0.9.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 (185) hide show
  1. data/Basic Overview +151 -0
  2. data/Command Reference +99 -0
  3. data/History +24 -0
  4. data/MIT-LICENSE +1 -1
  5. data/README +29 -57
  6. data/Rakefile +30 -37
  7. data/Tutorial +243 -191
  8. data/bin/tap +66 -35
  9. data/lib/tap.rb +47 -29
  10. data/lib/tap/app.rb +700 -342
  11. data/lib/tap/{script → cmd}/console.rb +0 -0
  12. data/lib/tap/{script → cmd}/destroy.rb +0 -0
  13. data/lib/tap/{script → cmd}/generate.rb +0 -0
  14. data/lib/tap/cmd/run.rb +156 -0
  15. data/lib/tap/constants.rb +4 -0
  16. data/lib/tap/dump.rb +57 -0
  17. data/lib/tap/env.rb +316 -0
  18. data/lib/tap/file_task.rb +106 -109
  19. data/lib/tap/generator.rb +4 -1
  20. data/lib/tap/generator/generators/command/USAGE +6 -0
  21. data/lib/tap/generator/generators/command/command_generator.rb +17 -0
  22. data/lib/tap/generator/generators/{script/templates/script.erb → command/templates/command.erb} +10 -10
  23. data/lib/tap/generator/generators/config/USAGE +21 -0
  24. data/lib/tap/generator/generators/config/config_generator.rb +17 -7
  25. data/lib/tap/generator/generators/file_task/USAGE +3 -0
  26. data/lib/tap/generator/generators/file_task/file_task_generator.rb +16 -0
  27. data/lib/tap/generator/generators/file_task/templates/file.txt +2 -0
  28. data/lib/tap/generator/generators/file_task/templates/file.yml +3 -0
  29. data/lib/tap/generator/generators/file_task/templates/task.erb +26 -20
  30. data/lib/tap/generator/generators/file_task/templates/test.erb +20 -10
  31. data/lib/tap/generator/generators/generator/generator_generator.rb +1 -1
  32. data/lib/tap/generator/generators/generator/templates/generator.erb +21 -12
  33. data/lib/tap/generator/generators/root/templates/Rakefile +33 -24
  34. data/lib/tap/generator/generators/root/templates/tap.yml +28 -31
  35. data/lib/tap/generator/generators/root/templates/test/tap_test_helper.rb +1 -0
  36. data/lib/tap/generator/generators/task/USAGE +3 -0
  37. data/lib/tap/generator/generators/task/task_generator.rb +18 -5
  38. data/lib/tap/generator/generators/task/templates/task.erb +7 -12
  39. data/lib/tap/generator/generators/task/templates/test.erb +10 -11
  40. data/lib/tap/generator/generators/workflow/templates/task.erb +1 -1
  41. data/lib/tap/generator/generators/workflow/templates/test.erb +1 -1
  42. data/lib/tap/patches/rake/rake_test_loader.rb +8 -0
  43. data/lib/tap/patches/rake/testtask.rb +55 -0
  44. data/lib/tap/patches/ruby19/backtrace_filter.rb +51 -0
  45. data/lib/tap/patches/ruby19/parsedate.rb +16 -0
  46. data/lib/tap/root.rb +172 -67
  47. data/lib/tap/script.rb +70 -336
  48. data/lib/tap/support/aggregator.rb +55 -0
  49. data/lib/tap/support/audit.rb +281 -280
  50. data/lib/tap/support/batchable.rb +59 -0
  51. data/lib/tap/support/class_configuration.rb +279 -0
  52. data/lib/tap/support/configurable.rb +92 -0
  53. data/lib/tap/support/configurable_methods.rb +296 -0
  54. data/lib/tap/support/executable.rb +98 -0
  55. data/lib/tap/support/executable_queue.rb +82 -0
  56. data/lib/tap/support/logger.rb +9 -15
  57. data/lib/tap/support/rake.rb +43 -54
  58. data/lib/tap/support/run_error.rb +32 -13
  59. data/lib/tap/support/shell_utils.rb +47 -0
  60. data/lib/tap/support/tdoc.rb +9 -8
  61. data/lib/tap/support/tdoc/config_attr.rb +40 -16
  62. data/lib/tap/support/validation.rb +77 -0
  63. data/lib/tap/support/versions.rb +36 -36
  64. data/lib/tap/task.rb +276 -482
  65. data/lib/tap/test.rb +20 -261
  66. data/lib/tap/test/env_vars.rb +7 -5
  67. data/lib/tap/test/file_methods.rb +126 -121
  68. data/lib/tap/test/subset_methods.rb +86 -45
  69. data/lib/tap/test/tap_methods.rb +271 -0
  70. data/lib/tap/workflow.rb +174 -46
  71. data/test/app/config/another/task.yml +1 -0
  72. data/test/app/config/erb.yml +2 -1
  73. data/test/app/config/some/task.yml +1 -0
  74. data/test/app/config/template.yml +2 -6
  75. data/test/app_test.rb +1241 -1008
  76. data/test/env/test_configure/recurse_a.yml +2 -0
  77. data/test/env/test_configure/recurse_b.yml +2 -0
  78. data/test/env/test_configure/tap.yml +23 -0
  79. data/test/env/test_load_env_config/dir/tap.yml +3 -0
  80. data/test/env/test_load_env_config/recurse_a.yml +2 -0
  81. data/test/env/test_load_env_config/recurse_b.yml +2 -0
  82. data/test/env/test_load_env_config/tap.yml +3 -0
  83. data/test/env_test.rb +198 -0
  84. data/test/file_task_test.rb +70 -53
  85. data/{lib/tap/generator/generators/package/USAGE → test/root/file.txt} +0 -0
  86. data/test/root_test.rb +621 -454
  87. data/test/script_test.rb +38 -174
  88. data/test/support/aggregator_test.rb +99 -0
  89. data/test/support/audit_test.rb +409 -416
  90. data/test/support/batchable_test.rb +74 -0
  91. data/test/support/{task_configuration_test.rb → class_configuration_test.rb} +106 -47
  92. data/test/{task/config/overriding.yml → support/configurable/config/configured.yml} +0 -0
  93. data/test/support/configurable_test.rb +295 -0
  94. data/test/support/executable_queue_test.rb +103 -0
  95. data/test/support/executable_test.rb +38 -0
  96. data/test/support/logger_test.rb +17 -17
  97. data/test/support/rake_test.rb +4 -2
  98. data/test/support/shell_utils_test.rb +24 -0
  99. data/test/support/tdoc_test.rb +265 -258
  100. data/test/support/validation_test.rb +54 -0
  101. data/test/support/versions_test.rb +38 -38
  102. data/test/tap_test_helper.rb +19 -5
  103. data/test/tap_test_suite.rb +5 -2
  104. data/test/task_base_test.rb +13 -104
  105. data/test/task_syntax_test.rb +300 -0
  106. data/test/task_test.rb +258 -381
  107. data/test/test/env_vars_test.rb +40 -40
  108. data/test/test/file_methods/{test_assert_output_files_equal → test_assert_files}/expected/one.txt +0 -0
  109. data/test/test/file_methods/{test_assert_output_files_equal → test_assert_files}/expected/two.txt +0 -0
  110. data/test/test/file_methods/{test_assert_output_files_equal → test_assert_files}/input/one.txt +0 -0
  111. data/test/test/file_methods/{test_assert_output_files_equal → test_assert_files}/input/two.txt +0 -0
  112. data/test/test/{test_file_task_test → file_methods/test_assert_files_can_have_no_expected_files_if_specified}/input/one.txt +0 -0
  113. data/test/test/{test_file_task_test → file_methods/test_assert_files_can_have_no_expected_files_if_specified}/input/two.txt +0 -0
  114. data/test/test/file_methods/test_assert_files_fails_for_different_content/expected/one.txt +1 -0
  115. data/test/test/{test_file_task_test → file_methods/test_assert_files_fails_for_different_content}/expected/two.txt +0 -0
  116. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/one.txt +1 -0
  117. data/test/test/file_methods/test_assert_files_fails_for_different_content/input/two.txt +1 -0
  118. data/test/test/{test_file_task_test → file_methods/test_assert_files_fails_for_missing_expected_file}/expected/one.txt +0 -0
  119. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/one.txt +1 -0
  120. data/test/test/file_methods/test_assert_files_fails_for_missing_expected_file/input/two.txt +1 -0
  121. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/one.txt +1 -0
  122. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/expected/two.txt +1 -0
  123. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/one.txt +1 -0
  124. data/test/test/file_methods/test_assert_files_fails_for_missing_output_file/input/two.txt +1 -0
  125. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/one.txt +1 -0
  126. data/test/test/file_methods/test_assert_files_fails_for_no_expected_files/input/two.txt +1 -0
  127. data/test/test/file_methods_doc/test_sub/expected/one.txt +1 -0
  128. data/test/test/file_methods_doc/test_sub/expected/two.txt +1 -0
  129. data/test/test/file_methods_doc/test_sub/input/one.txt +1 -0
  130. data/test/test/file_methods_doc/test_sub/input/two.txt +1 -0
  131. data/test/test/file_methods_doc_test.rb +29 -0
  132. data/test/test/file_methods_test.rb +214 -143
  133. data/test/test/subset_methods_test.rb +111 -115
  134. data/test/test/{test_assert_expected_result_files → tap_methods/test_assert_files}/expected/task/name/a.txt +0 -0
  135. data/test/test/{test_assert_expected_result_files → tap_methods/test_assert_files}/expected/task/name/b.txt +0 -0
  136. data/test/test/{test_assert_expected_result_files → tap_methods/test_assert_files}/input/a.txt +0 -0
  137. data/test/test/{test_assert_expected_result_files → tap_methods/test_assert_files}/input/b.txt +0 -0
  138. data/test/test/tap_methods_test.rb +399 -0
  139. data/test/workflow_test.rb +101 -91
  140. metadata +86 -70
  141. data/lib/tap/generator/generators/package/package_generator.rb +0 -38
  142. data/lib/tap/generator/generators/package/templates/package.erb +0 -186
  143. data/lib/tap/generator/generators/script/USAGE +0 -0
  144. data/lib/tap/generator/generators/script/script_generator.rb +0 -17
  145. data/lib/tap/script/run.rb +0 -154
  146. data/lib/tap/support/batch_queue.rb +0 -162
  147. data/lib/tap/support/combinator.rb +0 -114
  148. data/lib/tap/support/task_configuration.rb +0 -169
  149. data/lib/tap/support/template.rb +0 -81
  150. data/lib/tap/support/templater.rb +0 -155
  151. data/lib/tap/version.rb +0 -4
  152. data/test/app/config/addition_template.yml +0 -6
  153. data/test/app_class_test.rb +0 -33
  154. data/test/check/binding_eval.rb +0 -23
  155. data/test/check/define_method_check.rb +0 -22
  156. data/test/check/dependencies_check.rb +0 -175
  157. data/test/check/inheritance_check.rb +0 -22
  158. data/test/support/batch_queue_test.rb +0 -320
  159. data/test/support/combinator_test.rb +0 -249
  160. data/test/support/template_test.rb +0 -122
  161. data/test/support/templater/erb.txt +0 -2
  162. data/test/support/templater/erb.yml +0 -2
  163. data/test/support/templater/somefile.txt +0 -2
  164. data/test/support/templater_test.rb +0 -192
  165. data/test/task/config/template.yml +0 -4
  166. data/test/task_class_test.rb +0 -170
  167. data/test/task_execute_test.rb +0 -262
  168. data/test/test/file_methods/test_assert_expected/expected/file.txt +0 -1
  169. data/test/test/file_methods/test_assert_expected/expected/folder/file.txt +0 -1
  170. data/test/test/file_methods/test_assert_expected/input/file.txt +0 -1
  171. data/test/test/file_methods/test_assert_expected/input/folder/file.txt +0 -1
  172. data/test/test/file_methods/test_assert_files_exist/input/input_1.txt +0 -0
  173. data/test/test/file_methods/test_assert_files_exist/input/input_2.txt +0 -0
  174. data/test/test/file_methods/test_file_compare/expected/output_1.txt +0 -3
  175. data/test/test/file_methods/test_file_compare/expected/output_2.txt +0 -1
  176. data/test/test/file_methods/test_file_compare/input/input_1.txt +0 -3
  177. data/test/test/file_methods/test_file_compare/input/input_2.txt +0 -3
  178. data/test/test/file_methods/test_infer_glob/expected/file.yml +0 -0
  179. data/test/test/file_methods/test_infer_glob/expected/file_1.txt +0 -0
  180. data/test/test/file_methods/test_infer_glob/expected/file_2.txt +0 -0
  181. data/test/test/file_methods/test_yml_compare/expected/output_1.yml +0 -6
  182. data/test/test/file_methods/test_yml_compare/expected/output_2.yml +0 -6
  183. data/test/test/file_methods/test_yml_compare/input/input_1.yml +0 -4
  184. data/test/test/file_methods/test_yml_compare/input/input_2.yml +0 -4
  185. data/test/test_test.rb +0 -373
@@ -1,3 +0,0 @@
1
- some
2
- multiline file
3
- content!
@@ -1,3 +0,0 @@
1
- some
2
- multiline file
3
- content!
@@ -1,3 +0,0 @@
1
- some
2
- multiline file
3
- content!
@@ -1,6 +0,0 @@
1
- # this file has equal yml, but with comments and a reversed hash order.
2
-
3
- array:
4
- - one
5
- - two
6
- field: value
@@ -1,6 +0,0 @@
1
- # this file has unequal yml
2
-
3
- array:
4
- - one
5
- - two
6
- field: different value
@@ -1,4 +0,0 @@
1
- field: value
2
- array:
3
- - one
4
- - two
@@ -1,4 +0,0 @@
1
- field: value
2
- array:
3
- - one
4
- - two
@@ -1,373 +0,0 @@
1
- require File.dirname(__FILE__) + '/tap_test_helper'
2
- require 'tap/test'
3
-
4
- class TestSetupTest < Test::Unit::TestCase
5
- acts_as_tap_test(
6
- :root => "alt/root",
7
- :directories => {:input => "alt/input"})
8
-
9
- #
10
- # basic tests
11
- #
12
-
13
- def test_setup_with_options
14
- assert_equal @app, app
15
- assert_equal Tap::App.instance, app
16
- assert_equal File.expand_path("./alt/root"), File.expand_path(app[:root])
17
- assert_equal File.expand_path("./alt/root/alt/input"), File.expand_path(app[:input])
18
- end
19
- end
20
-
21
- class TestTest < Test::Unit::TestCase
22
- include TapTestMethods
23
- acts_as_tap_test
24
-
25
- #
26
- # basic tests
27
- #
28
-
29
- def test_setup
30
- assert runlist.empty?
31
- assert_equal @app, app
32
- assert_equal Tap::App.instance, app
33
- assert_equal File.expand_path(File.dirname(__FILE__) + "/test"), File.expand_path(app[:root])
34
- assert_equal File.expand_path(File.dirname(__FILE__) + "/test/input"), File.expand_path(app[:input])
35
- end
36
-
37
- def test_clear_runlist_empties_runlist
38
- runlist << 1
39
- assert !runlist.empty?
40
-
41
- clear_runlist
42
- assert runlist.empty?
43
- end
44
-
45
- def test_echo_procedure_adds_input_to_runlist_and_returns_input
46
- input = "input"
47
- output = echo.call(nil, input)
48
- assert_equal input, output
49
- assert_equal [input], runlist
50
- end
51
-
52
- def test_add_one_procedure_adds_input_to_runlist_and_returns_input_plus_one
53
- input = 1
54
- output = add_one.call(nil, input)
55
- assert_equal 2, output
56
- assert_equal [1], runlist
57
- end
58
-
59
- #
60
- # input assertion tests
61
- #
62
-
63
- def test_assert_inputs_checks_inputs_for_each_task
64
- t1 = Tap::Task.new
65
- t1.execute(1,2)
66
- t2 = Tap::Task.new
67
- t2.execute(3,4)
68
-
69
- assert_inputs(t1 => [1,2])
70
- assert_inputs(t1 => [1,2], t2 => [3,4])
71
- begin
72
- # failure
73
- assert_inputs(t1 => [2,3])
74
- flunk
75
- rescue
76
- end
77
- end
78
-
79
- def test_assert_inputs_will_check_against_the_last_inputs_for_the_task
80
- t1 = Tap::Task.new(&add_one)
81
- results = t1.execute(1,2)
82
-
83
- t2 = Tap::Task.new(&add_one)
84
- results = t2.execute(*results)
85
- results = t1.execute(*results)
86
-
87
- assert_equal [4,5], results.collect {|r| r._current}
88
-
89
- assert_inputs(t1 => [3,4])
90
- assert_inputs(t1 => [3,4], t2 => [2,3])
91
- begin
92
- # failure
93
- assert_inputs(t1 => [1,2])
94
- flunk
95
- rescue
96
- end
97
- end
98
-
99
- def test_assert_inputs_by_index_checks_inputs_at_the_specified_index
100
- t1 = Tap::Task.new(&add_one)
101
- results = t1.execute(1,2)
102
-
103
- t2 = Tap::Task.new(&add_one)
104
- results = t2.execute(*results)
105
- results = t1.execute(*results)
106
-
107
- assert_inputs_by_index(
108
- t1.results,
109
- 0 => [1,2],
110
- 1 => [2,3],
111
- 2 => [3,4])
112
-
113
- begin
114
- # failure
115
- assert_inputs_by_index(t1.results, 0 => [2,3])
116
- flunk
117
- rescue
118
- end
119
- end
120
-
121
- #
122
- # output assertion tests
123
- #
124
-
125
- def test_assert_outputs_checks_outputs_for_each_task
126
- t1 = Tap::Task.new(&add_one)
127
- t1.execute(1,2)
128
- t2 = Tap::Task.new(&add_one)
129
- t2.execute(3,4)
130
-
131
- assert_outputs(t1 => [2,3])
132
- assert_outputs(t1 => [2,3], t2 => [4,5])
133
- begin
134
- # failure
135
- assert_outputs(t1 => [1,2])
136
- flunk
137
- rescue
138
- end
139
- end
140
-
141
- def test_assert_outputs_will_check_against_the_last_outputs_for_the_task
142
- t1 = Tap::Task.new(&add_one)
143
- results = t1.execute(1,2)
144
-
145
- t2 = Tap::Task.new(&add_one)
146
- results = t2.execute(*results)
147
- results = t1.execute(*results)
148
-
149
- assert_outputs(t1 => [4,5])
150
- assert_outputs(t1 => [4,5], t2 => [3,4])
151
- begin
152
- # failure
153
- assert_outputs(t1 => [2,3])
154
- flunk
155
- rescue
156
- end
157
- end
158
-
159
- def test_assert_outputs_by_index_checks_outputs_at_the_specified_index
160
- t1 = Tap::Task.new(&add_one)
161
- results = t1.execute(1,2)
162
-
163
- t2 = Tap::Task.new(&add_one)
164
- results = t2.execute(*results)
165
- results = t1.execute(*results)
166
-
167
- assert_outputs_by_index(
168
- t1.results,
169
- 0 => [2,3],
170
- 1 => [3,4],
171
- 2 => [4,5])
172
-
173
- begin
174
- # failure
175
- assert_inputs_by_index(t1.results, 0 => [1,2])
176
- flunk
177
- rescue
178
- end
179
- end
180
-
181
- #
182
- # audit assertions
183
- #
184
-
185
- def test_assert_audits
186
- a0 = Tap::Support::Audit.new('')
187
- a1 = Tap::Support::Audit.new('')
188
- a1._record(:a, 'a')
189
- a1._record(:b, 'b')
190
-
191
- assert_audits [a0, a1], 1 => [[nil, ''], [:a, 'a'], [:b, 'b']]
192
-
193
- begin
194
- # failure
195
- assert_audits [a0, a1], 1 => [[nil, ''], [:a, 'a']]
196
- flunk
197
- rescue
198
- end
199
- end
200
-
201
- def test_assert_audits_raises_error_if_audits_nil_at_provided_at_index
202
- assert_raise(ArgumentError) { assert_audits [], 0 => [] }
203
- assert_raise(ArgumentError) { assert_audits [nil], 0 => [] }
204
- assert_raise(ArgumentError) { assert_audits [Tap::Support::Audit.new], 1 => [] }
205
- end
206
-
207
- def check_audit_setup
208
- a = Tap::Support::Audit.new('')
209
- a._record(:a, 'a')
210
- a._record(:b, 'b')
211
- a
212
- end
213
-
214
- def test_check_audits
215
- a = check_audit_setup
216
-
217
- check_audit(a) do
218
- ''._from nil
219
- 'a'._from :a
220
- 'b'._from :b
221
- end
222
- end
223
-
224
- #
225
- # with options
226
- #
227
-
228
- def test_with_options_doc
229
- app = Tap::App.new(:options => {:one => 1, :two => 2})
230
-
231
- with_options({:one => 'one'}, app) do
232
- assert_equal({:one => 'one', :two => 2}, app.options.marshal_dump)
233
- end
234
- assert_equal({:one => 1, :two => 2}, app.options.marshal_dump)
235
- end
236
-
237
- def test_with_options_merges_new_options_with_existing_for_block
238
- app.options.one = 1
239
- app.options.two = 2
240
-
241
- assert_equal({:one => 1, :two => 2}, app.options.marshal_dump)
242
- with_options(:one => 'one') do
243
- assert_equal({:one => 'one', :two => 2}, app.options.marshal_dump)
244
- end
245
- assert_equal({:one => 1, :two => 2}, app.options.marshal_dump)
246
- end
247
-
248
- def test_with_options_does_not_merge_if_merge_with_existing_is_false
249
- app.options.one = 1
250
- app.options.two = 2
251
-
252
- assert_equal({:one => 1, :two => 2}, app.options.marshal_dump)
253
- with_options({:one => 'one'}, app, false) do
254
- assert_equal({:one => 'one'}, app.options.marshal_dump)
255
- end
256
- assert_equal({:one => 1, :two => 2}, app.options.marshal_dump)
257
- end
258
-
259
-
260
- #
261
- # with config
262
- #
263
-
264
- def test_with_config_doc
265
- app = Tap::App.new(:directories => {:dir => 'dir', :alt => 'alt_dir'})
266
- tmp_config = {
267
- :directories => {:alt => 'another', :new => 'new_dir'},
268
- :options => {:one => 1}}
269
-
270
- with_config(tmp_config, app) do
271
- assert_equal({:dir => 'dir', :alt => 'another', :new => 'new_dir'}, app.directories)
272
- assert_equal({:one => 1}, app.options.marshal_dump)
273
- end
274
- assert_equal({:dir => 'dir', :alt => 'alt_dir'}, app.directories)
275
- assert_equal({}, app.options.marshal_dump)
276
- end
277
-
278
- def test_with_config_merges_new_config_with_existing_for_block
279
- config = {
280
- :root => File.expand_path("root"),
281
- :directories => {:dir => 'dir', :alt => 'alt_dir'},
282
- :options => {:one => 1, :two => 2}}
283
- logger_config ={
284
- :device => app.logger.logdev.dev,
285
- :level => app.logger.level,
286
- :datetime_format => app.logger.datetime_format}
287
-
288
- full_config = config.merge(
289
- :absolute_paths => {},
290
- :logger => logger_config)
291
- modified_config = {
292
- :root => File.expand_path("root"),
293
- :directories => {:dir => 'another', :new => 'new_dir', :alt => 'alt_dir'},
294
- :options => {:one => 'one', :two => 2},
295
- :absolute_paths => {:abs => File.expand_path('abs')},
296
- :logger => logger_config}
297
-
298
- app.reconfigure(full_config)
299
-
300
- assert_equal(full_config, app.config)
301
- with_config(
302
- :directories => {:dir => 'another', :new => 'new_dir'},
303
- :options => {:one => 'one'},
304
- :absolute_paths => {:abs => 'abs'}
305
- ) do
306
- assert_equal(modified_config, app.config)
307
- end
308
- assert_equal(full_config, app.config)
309
- end
310
-
311
- def test_with_config_does_not_merge_if_merge_with_existing_is_false
312
- config = {
313
- :root => File.expand_path("root"),
314
- :directories => {:dir => 'dir', :alt => 'alt_dir'},
315
- :options => {:one => 1, :two => 2}}
316
- logger_config ={
317
- :device => app.logger.logdev.dev,
318
- :level => app.logger.level,
319
- :datetime_format => app.logger.datetime_format}
320
-
321
- full_config = config.merge(
322
- :absolute_paths => {},
323
- :logger => logger_config)
324
- modified_config = {
325
- :root => File.expand_path("root"),
326
- :directories => {:dir => 'another', :new => 'new_dir'},
327
- :options => {:one => 'one'},
328
- :absolute_paths => {:abs => File.expand_path('abs')},
329
- :logger => logger_config}
330
-
331
- app.reconfigure(full_config)
332
-
333
- assert_equal(full_config, app.config)
334
- with_config(
335
- {:directories => {:dir => 'another', :new => 'new_dir'},
336
- :options => {:one => 'one'},
337
- :absolute_paths => {:abs => 'abs'}},
338
- app,
339
- false
340
- ) do
341
- assert_equal(modified_config, app.config)
342
- end
343
- assert_equal(full_config, app.config)
344
- end
345
-
346
- #
347
- # assert_expected_result_files
348
- #
349
-
350
- def test_assert_expected_result_files
351
- t = Tap::FileTask.new("task/name") do |task, input_file|
352
- output_file = task.filepath(:data, File.basename(input_file))
353
- content = "#{File.read(input_file)}content"
354
-
355
- assert_equal method_filepath(:output, "task/name", File.basename(input_file)), output_file
356
-
357
- task.prepare(output_file)
358
- File.open(output_file, "wb") {|f| f << content}
359
- output_file
360
- end
361
-
362
- was_in_block=false
363
- assert_expected_result_files(t) do |output_files|
364
- was_in_block = true
365
- assert_equal [method_filepath(:output, "task/name/a.txt"), method_filepath(:output, "task/name/b.txt")], output_files
366
- output_files
367
- end
368
-
369
- assert was_in_block
370
- end
371
-
372
- end
373
-