1require File.expand_path('../helper', __FILE__) 2require 'open3' 3 4class TestRakeReduceCompat < Rake::TestCase 5 # TODO: factor out similar code in test_rake_functional.rb 6 def rake(*args) 7 Open3.popen3(RUBY, "-I", @rake_lib, @rake_exec, *args) { |_, out, _, _| 8 out.read 9 } 10 end 11 12 def invoke_normal(task_name) 13 rake task_name.to_s 14 end 15 16 def invoke_reduce_compat(task_name) 17 rake "--reduce-compat", task_name.to_s 18 end 19 20 def test_no_deprecated_dsl 21 rakefile %q{ 22 task :check_task do 23 Module.new { p defined?(task) } 24 end 25 26 task :check_file do 27 Module.new { p defined?(file) } 28 end 29 } 30 31 assert_equal %{"method"}, invoke_normal(:check_task).chomp 32 assert_equal %{"method"}, invoke_normal(:check_file).chomp 33 34 assert_equal "nil", invoke_reduce_compat(:check_task).chomp 35 assert_equal "nil", invoke_reduce_compat(:check_file).chomp 36 end 37 38 def test_no_classic_namespace 39 rakefile %q{ 40 task :check_task do 41 begin 42 Task 43 print "present" 44 rescue NameError 45 print "absent" 46 end 47 end 48 49 task :check_file_task do 50 begin 51 FileTask 52 print "present" 53 rescue NameError 54 print "absent" 55 end 56 end 57 } 58 59 assert_equal "present", invoke_normal(:check_task) 60 assert_equal "present", invoke_normal(:check_file_task) 61 62 assert_equal "absent", invoke_reduce_compat(:check_task) 63 assert_equal "absent", invoke_reduce_compat(:check_file_task) 64 end 65end 66