rake 0.9.2 → 0.9.2.2

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.

Files changed (75) hide show
  1. data/CHANGES +13 -0
  2. data/README.rdoc +12 -15
  3. data/Rakefile +8 -44
  4. data/bin/rake +1 -0
  5. data/lib/rake.rb +4 -0
  6. data/lib/rake/application.rb +9 -3
  7. data/lib/rake/classic_namespace.rb +2 -0
  8. data/lib/rake/clean.rb +1 -0
  9. data/lib/rake/contrib/publisher.rb +10 -6
  10. data/lib/rake/contrib/sshpublisher.rb +5 -0
  11. data/lib/rake/dsl_definition.rb +13 -4
  12. data/lib/rake/ext/time.rb +3 -3
  13. data/lib/rake/file_utils.rb +9 -7
  14. data/lib/rake/file_utils_ext.rb +4 -1
  15. data/lib/rake/gempackagetask.rb +2 -0
  16. data/lib/rake/rake_test_loader.rb +15 -6
  17. data/lib/rake/rdoctask.rb +5 -1
  18. data/lib/rake/task_arguments.rb +4 -0
  19. data/lib/rake/version.rb +5 -7
  20. data/test/file_creation.rb +2 -2
  21. data/test/helper.rb +460 -12
  22. data/test/test_rake.rb +3 -1
  23. data/test/test_rake_application.rb +250 -125
  24. data/test/test_rake_application_options.rb +146 -193
  25. data/test/test_rake_clean.rb +2 -0
  26. data/test/test_rake_definitions.rb +6 -6
  27. data/test/test_rake_directory_task.rb +26 -35
  28. data/test/test_rake_dsl.rb +4 -0
  29. data/test/test_rake_file_creation_task.rb +1 -7
  30. data/test/test_rake_file_list.rb +128 -133
  31. data/test/test_rake_file_task.rb +1 -3
  32. data/test/test_rake_file_utils.rb +123 -70
  33. data/test/test_rake_functional.rb +234 -252
  34. data/test/test_rake_makefile_loader.rb +22 -1
  35. data/test/test_rake_package_task.rb +10 -9
  36. data/test/test_rake_path_map_explode.rb +3 -0
  37. data/test/test_rake_pseudo_status.rb +3 -2
  38. data/test/test_rake_rake_test_loader.rb +21 -0
  39. data/test/test_rake_rdoc_task.rb +5 -3
  40. data/test/test_rake_require.rb +8 -3
  41. data/test/test_rake_rules.rb +56 -75
  42. data/test/test_rake_task.rb +5 -9
  43. data/test/test_rake_task_argument_parsing.rb +33 -46
  44. data/test/test_rake_task_arguments.rb +2 -0
  45. data/test/test_rake_task_manager.rb +12 -0
  46. data/test/test_rake_task_with_arguments.rb +11 -0
  47. data/test/test_rake_test_task.rb +55 -57
  48. data/test/test_rake_top_level_functions.rb +52 -17
  49. data/test/test_rake_win32.rb +31 -42
  50. metadata +6 -52
  51. data/RRR +0 -9
  52. data/test/check_expansion.rb +0 -5
  53. data/test/check_no_expansion.rb +0 -5
  54. data/test/data/access/Rakefile +0 -35
  55. data/test/data/chains/Rakefile +0 -15
  56. data/test/data/comments/Rakefile +0 -18
  57. data/test/data/default/Rakefile +0 -17
  58. data/test/data/deprecated_import/Rakefile +0 -1
  59. data/test/data/dryrun/Rakefile +0 -22
  60. data/test/data/extra/Rakefile +0 -1
  61. data/test/data/file_creation_task/Rakefile +0 -31
  62. data/test/data/imports/Rakefile +0 -19
  63. data/test/data/imports/deps.mf +0 -1
  64. data/test/data/multidesc/Rakefile +0 -15
  65. data/test/data/namespace/Rakefile +0 -64
  66. data/test/data/rakelib/test1.rb +0 -4
  67. data/test/data/rbext/rakefile.rb +0 -3
  68. data/test/data/sample.mf +0 -14
  69. data/test/data/statusreturn/Rakefile +0 -6
  70. data/test/data/unittest/Rakefile +0 -1
  71. data/test/data/verbose/Rakefile +0 -34
  72. data/test/in_environment.rb +0 -35
  73. data/test/reqfile.rb +0 -3
  74. data/test/reqfile2.rb +0 -3
  75. data/test/shellcommand.rb +0 -3
@@ -45,72 +45,59 @@ class TestRakeTaskArgumentParsing < Rake::TestCase
45
45
 
46
46
  def test_terminal_width_using_env
47
47
  app = Rake::Application.new
48
- in_environment('RAKE_COLUMNS' => '1234') do
49
- assert_equal 1234, app.terminal_width
50
- end
48
+ app.terminal_columns = 1234
49
+
50
+ assert_equal 1234, app.terminal_width
51
51
  end
52
52
 
53
53
  def test_terminal_width_using_stty
54
- app = Rake::Application.new
55
- flexmock(app,
56
- :unix? => true,
57
- :dynamic_width_stty => 1235,
58
- :dynamic_width_tput => 0)
59
- in_environment('RAKE_COLUMNS' => nil) do
60
- assert_equal 1235, app.terminal_width
61
- end
54
+ def @app.unix?() true end
55
+ def @app.dynamic_width_stty() 1235 end
56
+ def @app.dynamic_width_tput() 0 end
57
+
58
+ assert_equal 1235, @app.terminal_width
62
59
  end
63
60
 
64
61
  def test_terminal_width_using_tput
65
- app = Rake::Application.new
66
- flexmock(app,
67
- :unix? => true,
68
- :dynamic_width_stty => 0,
69
- :dynamic_width_tput => 1236)
70
- in_environment('RAKE_COLUMNS' => nil) do
71
- assert_equal 1236, app.terminal_width
72
- end
62
+ def @app.unix?() true end
63
+ def @app.dynamic_width_stty() 0 end
64
+ def @app.dynamic_width_tput() 1236 end
65
+
66
+ assert_equal 1236, @app.terminal_width
73
67
  end
74
68
 
75
69
  def test_terminal_width_using_hardcoded_80
76
- app = Rake::Application.new
77
- flexmock(app, :unix? => false)
78
- in_environment('RAKE_COLUMNS' => nil) do
79
- assert_equal 80, app.terminal_width
80
- end
70
+ def @app.unix?() false end
71
+
72
+ assert_equal 80, @app.terminal_width
81
73
  end
82
74
 
83
75
  def test_terminal_width_with_failure
84
- app = Rake::Application.new
85
- flexmock(app).should_receive(:unix?).and_throw(RuntimeError)
86
- in_environment('RAKE_COLUMNS' => nil) do
87
- assert_equal 80, app.terminal_width
88
- end
76
+ def @app.unix?() raise end
77
+
78
+ assert_equal 80, @app.terminal_width
89
79
  end
90
80
 
91
81
  def test_no_rakeopt
92
- in_environment do
93
- ARGV << '--trace'
94
- app = Rake::Application.new
95
- app.init
96
- assert !app.options.silent
97
- end
82
+ ARGV << '--trace'
83
+ app = Rake::Application.new
84
+ app.init
85
+ assert !app.options.silent
98
86
  end
99
87
 
100
88
  def test_rakeopt_with_blank_options
101
- in_environment("RAKEOPT" => "") do
102
- ARGV << '--trace'
103
- app = Rake::Application.new
104
- app.init
105
- assert !app.options.silent
106
- end
89
+ ARGV << '--trace'
90
+ app = Rake::Application.new
91
+ app.init
92
+ assert !app.options.silent
107
93
  end
108
94
 
109
95
  def test_rakeopt_with_silent_options
110
- in_environment("RAKEOPT" => "-s") do
111
- app = Rake::Application.new
112
- app.init
113
- assert app.options.silent
114
- end
96
+ ENV['RAKEOPT'] = '-s'
97
+ app = Rake::Application.new
98
+
99
+ app.init
100
+
101
+ assert app.options.silent
115
102
  end
116
103
  end
@@ -5,6 +5,8 @@ class TestRakeTaskArguments < Rake::TestCase
5
5
  def teardown
6
6
  ENV.delete('rev')
7
7
  ENV.delete('VER')
8
+
9
+ super
8
10
  end
9
11
 
10
12
  def test_empty_arg_list_is_empty
@@ -19,6 +19,14 @@ class TestRakeTaskManager < Rake::TestCase
19
19
  assert_equal @tm, t.application
20
20
  end
21
21
 
22
+ def test_index
23
+ e = assert_raises RuntimeError do
24
+ @tm['bad']
25
+ end
26
+
27
+ assert_equal "Don't know how to build task 'bad'", e.message
28
+ end
29
+
22
30
  def test_name_lookup
23
31
  t = @tm.define_task(Rake::Task, :t)
24
32
  assert_equal t, @tm[:t]
@@ -46,6 +54,7 @@ class TestRakeTaskManager < Rake::TestCase
46
54
  t = @tm.define_task(Rake::FileTask, "fn")
47
55
  assert_equal "fn", t.name
48
56
  end
57
+
49
58
  assert_equal ["fn"], @tm.tasks.collect { |t| t.name }
50
59
  end
51
60
 
@@ -58,7 +67,10 @@ class TestRakeTaskManager < Rake::TestCase
58
67
  end
59
68
 
60
69
  def test_name_lookup_with_implicit_file_tasks
70
+ FileUtils.touch 'README.rdoc'
71
+
61
72
  t = @tm["README.rdoc"]
73
+
62
74
  assert_equal "README.rdoc", t.name
63
75
  assert Rake::FileTask === t
64
76
  end
@@ -158,5 +158,16 @@ class TestRakeTaskWithArguments < Rake::TestCase
158
158
  t = task(:t => [:pre])
159
159
  t.invoke("bill", "1.2")
160
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
161
172
  end
162
173
 
@@ -4,24 +4,7 @@ require 'rake/testtask'
4
4
  class TestRakeTestTask < Rake::TestCase
5
5
  include Rake
6
6
 
7
- def setup
8
- super
9
-
10
- Task.clear
11
- ENV.delete('TEST')
12
- end
13
-
14
- def teardown
15
- FileUtils.rm_rf("testdata")
16
-
17
- super
18
- end
19
-
20
- def test_no_task
21
- assert ! Task.task_defined?(:test)
22
- end
23
-
24
- def test_defaults
7
+ def test_initialize
25
8
  tt = Rake::TestTask.new do |t| end
26
9
  refute_nil tt
27
10
  assert_equal :test, tt.name
@@ -31,7 +14,7 @@ class TestRakeTestTask < Rake::TestCase
31
14
  assert Task.task_defined?(:test)
32
15
  end
33
16
 
34
- def test_non_defaults
17
+ def test_initialize_override
35
18
  tt = Rake::TestTask.new(:example) do |t|
36
19
  t.libs = ['src', 'ext']
37
20
  t.pattern = 'test/tc_*.rb'
@@ -45,29 +28,43 @@ class TestRakeTestTask < Rake::TestCase
45
28
  assert Task.task_defined?(:example)
46
29
  end
47
30
 
48
- def test_pattern
49
- tt = Rake::TestTask.new do |t|
50
- t.pattern = '*.rb'
51
- end
52
- assert_equal ['*.rb'], tt.file_list.to_a
53
- end
54
-
55
- def test_env_test
31
+ def test_file_list_ENV_TEST
56
32
  ENV['TEST'] = 'testfile.rb'
57
33
  tt = Rake::TestTask.new do |t|
58
34
  t.pattern = '*'
59
35
  end
36
+
60
37
  assert_equal ["testfile.rb"], tt.file_list.to_a
38
+ ensure
39
+ ENV.delete 'TEST'
40
+ end
41
+
42
+ def test_libs_equals
43
+ test_task = Rake::TestTask.new do |t|
44
+ t.libs << ["A", "B"]
45
+ end
46
+
47
+ path = %w[lib A B].join File::PATH_SEPARATOR
48
+
49
+ assert_equal "-I\"#{path}\"", test_task.ruby_opts_string
50
+ end
51
+
52
+ def test_libs_equals_empty
53
+ test_task = Rake::TestTask.new do |t|
54
+ t.libs = []
55
+ end
56
+
57
+ assert_equal '', test_task.ruby_opts_string
61
58
  end
62
59
 
63
- def test_test_files
60
+ def test_pattern_equals
64
61
  tt = Rake::TestTask.new do |t|
65
- t.test_files = FileList['a.rb', 'b.rb']
62
+ t.pattern = '*.rb'
66
63
  end
67
- assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
64
+ assert_equal ['*.rb'], tt.file_list.to_a
68
65
  end
69
66
 
70
- def test_both_pattern_and_test_files
67
+ def test_pattern_equals_test_files_equals
71
68
  tt = Rake::TestTask.new do |t|
72
69
  t.test_files = FileList['a.rb', 'b.rb']
73
70
  t.pattern = '*.rb'
@@ -75,48 +72,49 @@ class TestRakeTestTask < Rake::TestCase
75
72
  assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
76
73
  end
77
74
 
78
- def test_direct_run_has_quoted_paths
79
- test_task = Rake::TestTask.new(:tx) do |t|
75
+ def test_run_code_direct
76
+ test_task = Rake::TestTask.new do |t|
80
77
  t.loader = :direct
81
78
  end
82
- assert_match(/-e ".*"/, test_task.run_code)
79
+
80
+ assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code
83
81
  end
84
82
 
85
- def test_testrb_run_has_quoted_paths_on_ruby_182
86
- test_task = Rake::TestTask.new(:tx) do |t|
83
+ def test_run_code_rake
84
+ test_task = Rake::TestTask.new do |t|
85
+ t.loader = :rake
86
+ end
87
+
88
+ assert_match(/-I".*?" ".*?"/, test_task.run_code)
89
+ end
90
+
91
+ def test_run_code_testrb_ruby_1_8_2
92
+ test_task = Rake::TestTask.new do |t|
87
93
  t.loader = :testrb
88
94
  end
89
- flexmock(test_task).should_receive(:ruby_version).and_return('1.8.2')
95
+
96
+ def test_task.ruby_version() '1.8.2' end
97
+
90
98
  assert_match(/^-S testrb +".*"$/, test_task.run_code)
91
99
  end
92
100
 
93
- def test_testrb_run_has_quoted_paths_on_ruby_186
94
- test_task = Rake::TestTask.new(:tx) do |t|
101
+ def test_run_code_testrb_ruby_1_8_6
102
+ test_task = Rake::TestTask.new do |t|
95
103
  t.loader = :testrb
96
104
  end
97
- flexmock(test_task).should_receive(:ruby_version).and_return('1.8.6')
105
+
106
+ def test_task.ruby_version() '1.8.6' end
107
+
98
108
  assert_match(/^-S testrb +$/, test_task.run_code)
99
109
  end
100
110
 
101
- def test_rake_run_has_quoted_paths
102
- test_task = Rake::TestTask.new(:tx) do |t|
103
- t.loader = :rake
111
+ def test_test_files_equals
112
+ tt = Rake::TestTask.new do |t|
113
+ t.test_files = FileList['a.rb', 'b.rb']
104
114
  end
105
- assert_match(/".*"/, test_task.run_code)
106
- end
107
115
 
108
- def test_nested_libs_will_be_flattened
109
- test_task = Rake::TestTask.new(:tx) do |t|
110
- t.libs << ["A", "B"]
111
- end
112
- sep = File::PATH_SEPARATOR
113
- assert_match(/lib#{sep}A#{sep}B/, test_task.ruby_opts_string)
116
+ assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
114
117
  end
115
118
 
116
- def test_empty_lib_path_implies_no_dash_I_option
117
- test_task = Rake::TestTask.new(:tx) do |t|
118
- t.libs = []
119
- end
120
- refute_match(/-I/, test_task.ruby_opts_string)
121
- end
122
119
  end
120
+
@@ -5,28 +5,43 @@ class TestRakeTopLevelFunctions < Rake::TestCase
5
5
  def setup
6
6
  super
7
7
 
8
- @app = Rake.application
9
- Rake.application = flexmock("app")
10
- Rake.application.should_receive(:deprecate).
11
- and_return { |old, new, call| @app.deprecate(old, new, call) }
12
- end
8
+ @app = Object.new
13
9
 
14
- def teardown
15
- Rake.application = @app
10
+ def @app.called
11
+ @called
12
+ end
16
13
 
17
- super
14
+ def @app.method_missing(*a, &b)
15
+ @called ||= []
16
+ @called << [a, b]
17
+ nil
18
+ end
19
+
20
+ Rake.application = @app
18
21
  end
19
22
 
20
23
  def test_namespace
21
- Rake.application.should_receive(:in_namespace).with("xyz", any).once
22
- namespace "xyz" do end
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
23
33
  end
24
34
 
25
35
  def test_import
26
- Rake.application.should_receive(:add_import).with("x").once.ordered
27
- Rake.application.should_receive(:add_import).with("y").once.ordered
28
- Rake.application.should_receive(:add_import).with("z").once.ordered
29
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
30
45
  end
31
46
 
32
47
  def test_when_writing
@@ -51,23 +66,43 @@ class TestRakeTopLevelFunctions < Rake::TestCase
51
66
  end
52
67
 
53
68
  def test_missing_constants_task
54
- Rake.application.should_receive(:const_warning).with(:Task).once
55
69
  Object.const_missing(:Task)
70
+
71
+ expected = [
72
+ [[:const_warning, :Task], nil]
73
+ ]
74
+
75
+ assert_equal expected, @app.called
56
76
  end
57
77
 
58
78
  def test_missing_constants_file_task
59
- Rake.application.should_receive(:const_warning).with(:FileTask).once
60
79
  Object.const_missing(:FileTask)
80
+
81
+ expected = [
82
+ [[:const_warning, :FileTask], nil]
83
+ ]
84
+
85
+ assert_equal expected, @app.called
61
86
  end
62
87
 
63
88
  def test_missing_constants_file_creation_task
64
- Rake.application.should_receive(:const_warning).with(:FileCreationTask).once
65
89
  Object.const_missing(:FileCreationTask)
90
+
91
+ expected = [
92
+ [[:const_warning, :FileCreationTask], nil]
93
+ ]
94
+
95
+ assert_equal expected, @app.called
66
96
  end
67
97
 
68
98
  def test_missing_constants_rake_app
69
- Rake.application.should_receive(:const_warning).with(:RakeApp).once
70
99
  Object.const_missing(:RakeApp)
100
+
101
+ expected = [
102
+ [[:const_warning, :RakeApp], nil]
103
+ ]
104
+
105
+ assert_equal expected, @app.called
71
106
  end
72
107
 
73
108
  def test_missing_other_constant
@@ -1,64 +1,53 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
3
  class TestRakeWin32 < Rake::TestCase
4
- include InEnvironment
5
4
 
6
5
  Win32 = Rake::Win32
7
6
 
8
7
  def test_win32_system_dir_uses_home_if_defined
9
- in_environment('RAKE_SYSTEM' => nil, 'HOME' => 'C:\\HP') do
10
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
11
- end
8
+ ENV['HOME'] = 'C:\\HP'
9
+
10
+ assert_equal "C:/HP/Rake", Win32.win32_system_dir
12
11
  end
13
12
 
14
13
  def test_win32_system_dir_uses_homedrive_homepath_when_no_home_defined
15
- in_environment(
16
- 'RAKE_SYSTEM' => nil,
17
- 'HOME' => nil,
18
- 'HOMEDRIVE' => "C:",
19
- 'HOMEPATH' => "\\HP"
20
- ) do
21
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
22
- end
14
+ ENV['HOME'] = nil
15
+ ENV['HOMEDRIVE'] = 'C:'
16
+ ENV['HOMEPATH'] = '\\HP'
17
+
18
+ assert_equal "C:/HP/Rake", Win32.win32_system_dir
23
19
  end
24
20
 
25
21
  def test_win32_system_dir_uses_appdata_when_no_home_or_home_combo
26
- in_environment(
27
- 'RAKE_SYSTEM' => nil,
28
- 'HOME' => nil,
29
- 'HOMEDRIVE' => nil,
30
- 'HOMEPATH' => nil,
31
- 'APPDATA' => "C:\\Documents and Settings\\HP\\Application Data"
32
- ) do
33
- assert_equal "C:/Documents and Settings/HP/Application Data/Rake", Win32.win32_system_dir
34
- end
22
+ ENV['APPDATA'] = "C:\\Documents and Settings\\HP\\Application Data"
23
+ ENV['HOME'] = nil
24
+ ENV['HOMEDRIVE'] = nil
25
+ ENV['HOMEPATH'] = nil
26
+
27
+ assert_equal "C:/Documents and Settings/HP/Application Data/Rake",
28
+ Win32.win32_system_dir
35
29
  end
36
30
 
37
31
  def test_win32_system_dir_fallback_to_userprofile_otherwise
38
- in_environment(
39
- 'RAKE_SYSTEM' => nil,
40
- 'HOME' => nil,
41
- 'HOMEDRIVE' => nil,
42
- 'HOMEPATH' => nil,
43
- 'APPDATA' => nil,
44
- 'USERPROFILE' => "C:\\Documents and Settings\\HP"
45
- ) do
46
- assert_equal "C:/Documents and Settings/HP/Rake", Win32.win32_system_dir
47
- end
32
+ ENV['HOME'] = nil
33
+ ENV['HOMEDRIVE'] = nil
34
+ ENV['HOMEPATH'] = nil
35
+ ENV['APPDATA'] = nil
36
+ ENV['USERPROFILE'] = "C:\\Documents and Settings\\HP"
37
+
38
+ assert_equal "C:/Documents and Settings/HP/Rake", Win32.win32_system_dir
48
39
  end
49
40
 
50
41
  def test_win32_system_dir_nil_of_no_env_vars
51
- in_environment(
52
- 'RAKE_SYSTEM' => nil,
53
- 'HOME' => nil,
54
- 'HOMEDRIVE' => nil,
55
- "HOMEPATH" => nil,
56
- 'APPDATA' => nil,
57
- "USERPROFILE" => nil
58
- ) do
59
- assert_raises(Rake::Win32::Win32HomeError) do
60
- Win32.win32_system_dir
61
- end
42
+ ENV['APPDATA'] = nil
43
+ ENV['HOME'] = nil
44
+ ENV['HOMEDRIVE'] = nil
45
+ ENV['HOMEPATH'] = nil
46
+ ENV['RAKE_SYSTEM'] = nil
47
+ ENV['USERPROFILE'] = nil
48
+
49
+ assert_raises(Rake::Win32::Win32HomeError) do
50
+ Win32.win32_system_dir
62
51
  end
63
52
  end
64
53