tap 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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
-