rake 11.1.2 → 11.2.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rake might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +14 -0
- data/.rubocop.yml +0 -9
- data/.travis.yml +28 -0
- data/CONTRIBUTING.rdoc +3 -5
- data/Gemfile +3 -0
- data/History.rdoc +1770 -273
- data/Rakefile +15 -68
- data/appveyor.yml +24 -0
- data/bin/console +7 -0
- data/bin/setup +6 -0
- data/doc/release_notes/README.md +4 -0
- data/doc/release_notes/rake-0.7.3.rdoc +0 -0
- data/{bin → exe}/rake +0 -6
- data/lib/rake.rb +1 -3
- data/lib/rake/application.rb +3 -6
- data/lib/rake/cpu_counter.rb +3 -17
- data/lib/rake/file_utils.rb +22 -6
- data/lib/rake/packagetask.rb +12 -1
- data/lib/rake/rake_test_loader.rb +0 -1
- data/lib/rake/rule_recursion_overflow_error.rb +0 -1
- data/lib/rake/task.rb +3 -3
- data/lib/rake/task_arguments.rb +2 -1
- data/lib/rake/testtask.rb +5 -1
- data/lib/rake/thread_pool.rb +0 -1
- data/lib/rake/version.rb +2 -0
- data/rake.gemspec +30 -0
- metadata +21 -110
- data/.autotest +0 -7
- data/.togglerc +0 -7
- data/Manifest.txt +0 -154
- data/lib/rake/contrib/.document +0 -1
- data/rakelib/test_times.rake +0 -25
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -134
- data/test/support/rakefile_definitions.rb +0 -476
- data/test/support/ruby_runner.rb +0 -34
- data/test/test_private_reader.rb +0 -42
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -659
- data/test/test_rake_application_options.rb +0 -468
- data/test/test_rake_backtrace.rb +0 -119
- data/test/test_rake_clean.rb +0 -61
- data/test/test_rake_cpu_counter.rb +0 -68
- data/test/test_rake_definitions.rb +0 -84
- data/test/test_rake_directory_task.rb +0 -76
- data/test/test_rake_dsl.rb +0 -40
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -687
- data/test/test_rake_file_list_path_map.rb +0 -15
- data/test/test_rake_file_task.rb +0 -197
- data/test/test_rake_file_utils.rb +0 -318
- data/test/test_rake_ftp_file.rb +0 -74
- data/test/test_rake_functional.rb +0 -484
- data/test/test_rake_invocation_chain.rb +0 -64
- data/test/test_rake_late_time.rb +0 -18
- data/test/test_rake_linked_list.rb +0 -84
- data/test/test_rake_makefile_loader.rb +0 -46
- data/test/test_rake_multi_task.rb +0 -64
- data/test/test_rake_name_space.rb +0 -57
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -168
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pathname_extensions.rb +0 -15
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -20
- data/test/test_rake_reduce_compat.rb +0 -26
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -388
- data/test/test_rake_scope.rb +0 -44
- data/test/test_rake_task.rb +0 -430
- data/test/test_rake_task_argument_parsing.rb +0 -119
- data/test/test_rake_task_arguments.rb +0 -134
- data/test/test_rake_task_manager.rb +0 -178
- data/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/test/test_rake_task_with_arguments.rb +0 -172
- data/test/test_rake_test_task.rb +0 -130
- data/test/test_rake_thread_pool.rb +0 -145
- data/test/test_rake_top_level_functions.rb +0 -71
- data/test/test_rake_win32.rb +0 -72
- data/test/test_thread_history_display.rb +0 -101
- data/test/test_trace_output.rb +0 -52
@@ -1,172 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
|
3
|
-
class TestRakeTaskWithArguments < Rake::TestCase
|
4
|
-
include Rake
|
5
|
-
|
6
|
-
def setup
|
7
|
-
super
|
8
|
-
|
9
|
-
Task.clear
|
10
|
-
Rake::TaskManager.record_task_metadata = true
|
11
|
-
end
|
12
|
-
|
13
|
-
def teardown
|
14
|
-
Rake::TaskManager.record_task_metadata = false
|
15
|
-
Rake.application.thread_pool.join
|
16
|
-
|
17
|
-
super
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_no_args_given
|
21
|
-
t = task :t
|
22
|
-
assert_equal [], t.arg_names
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_args_given
|
26
|
-
t = task :t, :a, :b
|
27
|
-
assert_equal [:a, :b], t.arg_names
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_name_and_needs
|
31
|
-
t = task(:t => [:pre])
|
32
|
-
assert_equal "t", t.name
|
33
|
-
assert_equal [], t.arg_names
|
34
|
-
assert_equal ["pre"], t.prerequisites
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_name_args_and_prereqs
|
38
|
-
t = task(:t, [:x, :y] => [:pre])
|
39
|
-
assert_equal "t", t.name
|
40
|
-
assert_equal [:x, :y], t.arg_names
|
41
|
-
assert_equal ["pre"], t.prerequisites
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_arg_list_is_empty_if_no_args_given
|
45
|
-
t = task(:t) { |tt, args| assert_equal({}, args.to_hash) }
|
46
|
-
t.invoke(1, 2, 3)
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_tasks_can_access_arguments_as_hash
|
50
|
-
t = task :t, :a, :b, :c do |tt, args|
|
51
|
-
assert_equal({:a => 1, :b => 2, :c => 3}, args.to_hash)
|
52
|
-
assert_equal 1, args[:a]
|
53
|
-
assert_equal 2, args[:b]
|
54
|
-
assert_equal 3, args[:c]
|
55
|
-
assert_equal 1, args.a
|
56
|
-
assert_equal 2, args.b
|
57
|
-
assert_equal 3, args.c
|
58
|
-
end
|
59
|
-
t.invoke(1, 2, 3)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_actions_of_various_arity_are_ok_with_args
|
63
|
-
notes = []
|
64
|
-
t = task(:t, :x) do
|
65
|
-
notes << :a
|
66
|
-
end
|
67
|
-
t.enhance do | |
|
68
|
-
notes << :b
|
69
|
-
end
|
70
|
-
t.enhance do |task|
|
71
|
-
notes << :c
|
72
|
-
assert_kind_of Task, task
|
73
|
-
end
|
74
|
-
t.enhance do |t2, args|
|
75
|
-
notes << :d
|
76
|
-
assert_equal t, t2
|
77
|
-
assert_equal({:x => 1}, args.to_hash)
|
78
|
-
end
|
79
|
-
t.invoke(1)
|
80
|
-
assert_equal [:a, :b, :c, :d], notes
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_arguments_are_passed_to_block
|
84
|
-
t = task(:t, :a, :b) { |tt, args|
|
85
|
-
assert_equal({ :a => 1, :b => 2 }, args.to_hash)
|
86
|
-
}
|
87
|
-
t.invoke(1, 2)
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_extra_parameters_are_ignored
|
91
|
-
t = task(:t, :a) { |tt, args|
|
92
|
-
assert_equal 1, args.a
|
93
|
-
assert_nil args.b
|
94
|
-
}
|
95
|
-
t.invoke(1, 2)
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_arguments_are_passed_to_all_blocks
|
99
|
-
counter = 0
|
100
|
-
t = task :t, :a
|
101
|
-
task :t do |tt, args|
|
102
|
-
assert_equal 1, args.a
|
103
|
-
counter += 1
|
104
|
-
end
|
105
|
-
task :t do |tt, args|
|
106
|
-
assert_equal 1, args.a
|
107
|
-
counter += 1
|
108
|
-
end
|
109
|
-
t.invoke(1)
|
110
|
-
assert_equal 2, counter
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_block_with_no_parameters_is_ok
|
114
|
-
t = task(:t) { }
|
115
|
-
t.invoke(1, 2)
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_name_with_args
|
119
|
-
desc "T"
|
120
|
-
t = task(:tt, :a, :b)
|
121
|
-
assert_equal "tt", t.name
|
122
|
-
assert_equal "T", t.comment
|
123
|
-
assert_equal "[a,b]", t.arg_description
|
124
|
-
assert_equal "tt[a,b]", t.name_with_args
|
125
|
-
assert_equal [:a, :b], t.arg_names
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_named_args_are_passed_to_prereqs
|
129
|
-
value = nil
|
130
|
-
task(:pre, :rev) { |t, args| value = args.rev }
|
131
|
-
t = task(:t, [:name, :rev] => [:pre])
|
132
|
-
t.invoke("bill", "1.2")
|
133
|
-
assert_equal "1.2", value
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_args_not_passed_if_no_prereq_names_on_task
|
137
|
-
task(:pre) { |t, args|
|
138
|
-
assert_equal({}, args.to_hash)
|
139
|
-
assert_equal "bill", args.name
|
140
|
-
}
|
141
|
-
t = task(:t, [:name, :rev] => [:pre])
|
142
|
-
t.invoke("bill", "1.2")
|
143
|
-
end
|
144
|
-
|
145
|
-
def test_args_not_passed_if_no_prereq_names_on_multitask
|
146
|
-
task(:pre) { |t, args|
|
147
|
-
assert_equal({}, args.to_hash)
|
148
|
-
assert_equal "bill", args.name
|
149
|
-
}
|
150
|
-
t = multitask(:t, [:name, :rev] => [:pre])
|
151
|
-
t.invoke("bill", "1.2")
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_args_not_passed_if_no_arg_names
|
155
|
-
task(:pre, :rev) { |t, args|
|
156
|
-
assert_equal({}, args.to_hash)
|
157
|
-
}
|
158
|
-
t = task(:t => [:pre])
|
159
|
-
t.invoke("bill", "1.2")
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_values_at
|
163
|
-
t = task(:pre, [:a, :b, :c]) { |task, args|
|
164
|
-
a, b, c = args.values_at(:a, :b, :c)
|
165
|
-
assert_equal %w[1 2 3], [a, b, c]
|
166
|
-
}
|
167
|
-
|
168
|
-
t.invoke(*%w[1 2 3])
|
169
|
-
|
170
|
-
# HACK no assertions
|
171
|
-
end
|
172
|
-
end
|
data/test/test_rake_test_task.rb
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'rake/testtask'
|
3
|
-
|
4
|
-
class TestRakeTestTask < Rake::TestCase
|
5
|
-
include Rake
|
6
|
-
|
7
|
-
def test_initialize
|
8
|
-
tt = Rake::TestTask.new do |t| end
|
9
|
-
refute_nil tt
|
10
|
-
assert_equal :test, tt.name
|
11
|
-
assert_equal ['lib'], tt.libs
|
12
|
-
assert_equal 'test/test*.rb', tt.pattern
|
13
|
-
assert_equal false, tt.verbose
|
14
|
-
assert_equal true, tt.warning
|
15
|
-
assert Task.task_defined?(:test)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_initialize_override
|
19
|
-
tt = Rake::TestTask.new(:example) do |t|
|
20
|
-
t.description = "Run example tests"
|
21
|
-
t.libs = ['src', 'ext']
|
22
|
-
t.pattern = 'test/tc_*.rb'
|
23
|
-
t.warning = true
|
24
|
-
t.verbose = true
|
25
|
-
end
|
26
|
-
refute_nil tt
|
27
|
-
assert_equal "Run example tests", tt.description
|
28
|
-
assert_equal :example, tt.name
|
29
|
-
assert_equal ['src', 'ext'], tt.libs
|
30
|
-
assert_equal 'test/tc_*.rb', tt.pattern
|
31
|
-
assert_equal true, tt.warning
|
32
|
-
assert_equal true, tt.verbose
|
33
|
-
assert_match(/-w/, tt.ruby_opts_string)
|
34
|
-
assert Task.task_defined?(:example)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_file_list_env_test
|
38
|
-
ENV['TEST'] = 'testfile.rb'
|
39
|
-
tt = Rake::TestTask.new do |t|
|
40
|
-
t.pattern = '*'
|
41
|
-
end
|
42
|
-
|
43
|
-
assert_equal ["testfile.rb"], tt.file_list.to_a
|
44
|
-
ensure
|
45
|
-
ENV.delete 'TEST'
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_libs_equals
|
49
|
-
test_task = Rake::TestTask.new do |t|
|
50
|
-
t.libs << ["A", "B"]
|
51
|
-
end
|
52
|
-
|
53
|
-
path = %w[lib A B].join File::PATH_SEPARATOR
|
54
|
-
|
55
|
-
assert_equal "-w -I\"#{path}\"", test_task.ruby_opts_string
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_libs_equals_empty
|
59
|
-
test_task = Rake::TestTask.new do |t|
|
60
|
-
t.libs = []
|
61
|
-
t.warning = false
|
62
|
-
end
|
63
|
-
|
64
|
-
assert_equal '', test_task.ruby_opts_string
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_pattern_equals
|
68
|
-
tt = Rake::TestTask.new do |t|
|
69
|
-
t.pattern = '*.rb'
|
70
|
-
end
|
71
|
-
assert_equal ['*.rb'], tt.file_list.to_a
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_pattern_equals_test_files_equals
|
75
|
-
tt = Rake::TestTask.new do |t|
|
76
|
-
t.test_files = FileList['a.rb', 'b.rb']
|
77
|
-
t.pattern = '*.rb'
|
78
|
-
end
|
79
|
-
assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_run_code_direct
|
83
|
-
test_task = Rake::TestTask.new do |t|
|
84
|
-
t.loader = :direct
|
85
|
-
end
|
86
|
-
|
87
|
-
assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_run_code_rake
|
91
|
-
spec = Gem::Specification.new 'rake', 0
|
92
|
-
spec.loaded_from = File.join Gem::Specification.dirs.last, 'rake-0.gemspec'
|
93
|
-
rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], spec
|
94
|
-
|
95
|
-
test_task = Rake::TestTask.new do |t|
|
96
|
-
t.loader = :rake
|
97
|
-
end
|
98
|
-
|
99
|
-
assert_match(/\A-I".*?" ".*?"\Z/, test_task.run_code)
|
100
|
-
ensure
|
101
|
-
Gem.loaded_specs['rake'] = rake
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_run_code_rake_default_gem
|
105
|
-
skip 'this ruby does not have default gems' unless
|
106
|
-
Gem::Specification.method_defined? :default_specifications_dir
|
107
|
-
|
108
|
-
default_spec = Gem::Specification.new 'rake', 0
|
109
|
-
default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec'
|
110
|
-
begin
|
111
|
-
rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec
|
112
|
-
|
113
|
-
test_task = Rake::TestTask.new do |t|
|
114
|
-
t.loader = :rake
|
115
|
-
end
|
116
|
-
|
117
|
-
assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
|
118
|
-
ensure
|
119
|
-
Gem.loaded_specs['rake'] = rake
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_test_files_equals
|
124
|
-
tt = Rake::TestTask.new do |t|
|
125
|
-
t.test_files = FileList['a.rb', 'b.rb']
|
126
|
-
end
|
127
|
-
|
128
|
-
assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
|
129
|
-
end
|
130
|
-
end
|
@@ -1,145 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
require 'rake/thread_pool'
|
3
|
-
|
4
|
-
class TestRakeTestThreadPool < Rake::TestCase
|
5
|
-
include Rake
|
6
|
-
|
7
|
-
def test_pool_executes_in_current_thread_for_zero_threads
|
8
|
-
pool = ThreadPool.new(0)
|
9
|
-
f = pool.future { Thread.current }
|
10
|
-
pool.join
|
11
|
-
assert_equal Thread.current, f.value
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_pool_executes_in_other_thread_for_pool_of_size_one
|
15
|
-
pool = ThreadPool.new(1)
|
16
|
-
f = pool.future { Thread.current }
|
17
|
-
pool.join
|
18
|
-
refute_equal Thread.current, f.value
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_pool_executes_in_two_other_threads_for_pool_of_size_two
|
22
|
-
pool = ThreadPool.new(2)
|
23
|
-
threads = 2.times.map {
|
24
|
-
pool.future {
|
25
|
-
sleep 0.1
|
26
|
-
Thread.current
|
27
|
-
}
|
28
|
-
}.each { |f|
|
29
|
-
f.value
|
30
|
-
}
|
31
|
-
|
32
|
-
refute_equal threads[0], threads[1]
|
33
|
-
refute_equal Thread.current, threads[0]
|
34
|
-
refute_equal Thread.current, threads[1]
|
35
|
-
ensure
|
36
|
-
pool.join
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_pool_creates_the_correct_number_of_threads
|
40
|
-
pool = ThreadPool.new(2)
|
41
|
-
threads = Set.new
|
42
|
-
t_mutex = Mutex.new
|
43
|
-
10.times.each do
|
44
|
-
pool.future do
|
45
|
-
sleep 0.02
|
46
|
-
t_mutex.synchronize { threads << Thread.current }
|
47
|
-
end
|
48
|
-
end
|
49
|
-
pool.join
|
50
|
-
assert_equal 2, threads.count
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_pool_future_does_not_duplicate_arguments
|
54
|
-
pool = ThreadPool.new(2)
|
55
|
-
obj = Object.new
|
56
|
-
captured = nil
|
57
|
-
pool.future(obj) { |var| captured = var }
|
58
|
-
pool.join
|
59
|
-
assert_equal obj, captured
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_pool_join_empties_queue
|
63
|
-
pool = ThreadPool.new(2)
|
64
|
-
repeat = 25
|
65
|
-
repeat.times {
|
66
|
-
pool.future do
|
67
|
-
repeat.times {
|
68
|
-
pool.future do
|
69
|
-
repeat.times {
|
70
|
-
pool.future do end
|
71
|
-
}
|
72
|
-
end
|
73
|
-
}
|
74
|
-
end
|
75
|
-
}
|
76
|
-
|
77
|
-
pool.join
|
78
|
-
assert_equal(
|
79
|
-
true,
|
80
|
-
pool.__send__(:__queue__).empty?,
|
81
|
-
"queue should be empty")
|
82
|
-
end
|
83
|
-
|
84
|
-
CustomError = Class.new(StandardError)
|
85
|
-
|
86
|
-
# test that throwing an exception way down in the blocks propagates
|
87
|
-
# to the top
|
88
|
-
def test_exceptions
|
89
|
-
pool = ThreadPool.new(10)
|
90
|
-
|
91
|
-
deep_exception_block = lambda do |count|
|
92
|
-
raise CustomError if count < 1
|
93
|
-
pool.future(count - 1, &deep_exception_block).value
|
94
|
-
end
|
95
|
-
|
96
|
-
assert_raises(CustomError) do
|
97
|
-
pool.future(2, &deep_exception_block).value
|
98
|
-
end
|
99
|
-
ensure
|
100
|
-
pool.join
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_pool_prevents_deadlock
|
104
|
-
pool = ThreadPool.new(5)
|
105
|
-
|
106
|
-
common_dependency_a = pool.future { sleep 0.2 }
|
107
|
-
futures_a = 10.times.map {
|
108
|
-
pool.future {
|
109
|
-
common_dependency_a.value
|
110
|
-
sleep(rand() * 0.01)
|
111
|
-
}
|
112
|
-
}
|
113
|
-
|
114
|
-
common_dependency_b = pool.future { futures_a.each { |f| f.value } }
|
115
|
-
futures_b = 10.times.map {
|
116
|
-
pool.future {
|
117
|
-
common_dependency_b.value
|
118
|
-
sleep(rand() * 0.01)
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
futures_b.each { |f| f.value }
|
123
|
-
pool.join
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_pool_reports_correct_results
|
127
|
-
pool = ThreadPool.new(7)
|
128
|
-
|
129
|
-
a = 18
|
130
|
-
b = 5
|
131
|
-
c = 3
|
132
|
-
|
133
|
-
result = a.times.map do
|
134
|
-
pool.future do
|
135
|
-
b.times.map do
|
136
|
-
pool.future { sleep rand * 0.001; c }
|
137
|
-
end.reduce(0) { |m, f| m + f.value }
|
138
|
-
end
|
139
|
-
end.reduce(0) { |m, f| m + f.value }
|
140
|
-
|
141
|
-
assert_equal a * b * c, result
|
142
|
-
pool.join
|
143
|
-
end
|
144
|
-
|
145
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
|
3
|
-
class TestRakeTopLevelFunctions < Rake::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
super
|
7
|
-
|
8
|
-
@app = Object.new
|
9
|
-
|
10
|
-
def @app.called
|
11
|
-
@called
|
12
|
-
end
|
13
|
-
|
14
|
-
def @app.method_missing(*a, &b)
|
15
|
-
@called ||= []
|
16
|
-
@called << [a, b]
|
17
|
-
nil
|
18
|
-
end
|
19
|
-
|
20
|
-
Rake.application = @app
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_namespace
|
24
|
-
block = proc do end
|
25
|
-
|
26
|
-
namespace("xyz", &block)
|
27
|
-
|
28
|
-
expected = [
|
29
|
-
[[:in_namespace, 'xyz'], block]
|
30
|
-
]
|
31
|
-
|
32
|
-
assert_equal expected, @app.called
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_import
|
36
|
-
import('x', 'y', 'z')
|
37
|
-
|
38
|
-
expected = [
|
39
|
-
[[:add_import, 'x'], nil],
|
40
|
-
[[:add_import, 'y'], nil],
|
41
|
-
[[:add_import, 'z'], nil],
|
42
|
-
]
|
43
|
-
|
44
|
-
assert_equal expected, @app.called
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_when_writing
|
48
|
-
out, = capture_io do
|
49
|
-
when_writing("NOTWRITING") do
|
50
|
-
puts "WRITING"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
assert_equal "WRITING\n", out
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_when_not_writing
|
57
|
-
Rake::FileUtilsExt.nowrite_flag = true
|
58
|
-
_, err = capture_io do
|
59
|
-
when_writing("NOTWRITING") do
|
60
|
-
puts "WRITING"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
assert_equal "DRYRUN: NOTWRITING\n", err
|
64
|
-
ensure
|
65
|
-
Rake::FileUtilsExt.nowrite_flag = false
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_missing_other_constant
|
69
|
-
assert_raises(NameError) do Object.const_missing(:Xyz) end
|
70
|
-
end
|
71
|
-
end
|