From 32569104e121e6dc7363acf37b5aef766bd04d4d Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 15 Oct 2012 13:14:48 +0000 Subject: envutil.rb: file_assertion * test/ruby/envutil.rb (Test::Unit::Assertions#file_assertion): rewrite file assertions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/envutil.rb | 21 +++++++++++++++++---- test/ruby/test_file.rb | 4 ++-- test/ruby/test_file_exhaustive.rb | 24 ++++++++++++------------ test/ruby/test_m17n.rb | 1 + test/ruby/test_process.rb | 4 ++-- test/ruby/test_require.rb | 2 +- test/ruby/test_rubyoptions.rb | 2 +- test/ruby/test_whileuntil.rb | 2 +- 8 files changed, 37 insertions(+), 23 deletions(-) (limited to 'test') diff --git a/test/ruby/envutil.rb b/test/ruby/envutil.rb index b170c46c83..d6f46f4401 100644 --- a/test/ruby/envutil.rb +++ b/test/ruby/envutil.rb @@ -225,12 +225,25 @@ module Test assert(1.0/f == -Float::INFINITY, "#{f} is not -0.0") end - def assert_file(predicate, path) - assert(File.__send__(predicate, path), "Expected file #{path.inspect} to be #{predicate}") + def file_assertion + FileAssertion end - def assert_file_not(predicate, path) - assert(!File.__send__(predicate, path), "Expected file #{path.inspect} not to be #{predicate}") + class << (FileAssertion = Object.new) + include Assertions + def assert_file_predicate(predicate, *args) + if /\Anot_/ =~ predicate + predicate = $' + neg = " not" + end + result = File.__send__(predicate, *args) + result = !result if neg + mesg = "Expected file " << args.shift.inspect + mesg << mu_pp(args) unless args.empty? + mesg << "#{neg} to be #{predicate}" + assert(result, mesg) + end + alias method_missing assert_file_predicate end end end diff --git a/test/ruby/test_file.rb b/test/ruby/test_file.rb index 41483cee3a..e005dc8d69 100644 --- a/test/ruby/test_file.rb +++ b/test/ruby/test_file.rb @@ -44,7 +44,7 @@ class TestFile < Test::Unit::TestCase bug6487 = '[ruby-core:45203]' f = Tempfile.new(__method__.to_s) f.close - assert_file(:exist?, f.path) + file_assertion.exist?(f.path) assert_nothing_raised(bug6487) {File.read(f.path, mode: 'r:utf-8')} assert_nothing_raised(bug6487) {File.read(f.path, mode: 'r:bom|utf-8')} f.close(true) @@ -356,7 +356,7 @@ class TestFile < Test::Unit::TestCase assert_raise(ArgumentError) do open(path + "\0bar", "w") {} end - assert_file_not(:exist?, path) + file_assertion.not_exist?(path) end end end diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb index 76cf615d5b..e13c98c44a 100644 --- a/test/ruby/test_file_exhaustive.rb +++ b/test/ruby/test_file_exhaustive.rb @@ -120,7 +120,7 @@ class TestFileExhaustive < Test::Unit::TestCase Dir.mktmpdir do |dir| prefix = File.join(dir, "...a") Dir.mkdir(prefix) - assert_file(:exist?, prefix) + file_assertion.exist?(prefix) assert_nothing_raised { File.stat(prefix) } @@ -170,9 +170,9 @@ class TestFileExhaustive < Test::Unit::TestCase end def test_exist_p - assert_file(:exist?, @dir) - assert_file(:exist?, @file) - assert_file_not(:exist?, @nofile) + file_assertion.exist?(@dir) + file_assertion.exist?(@file) + file_assertion.not_exist?(@nofile) end def test_readable_p @@ -399,8 +399,8 @@ class TestFileExhaustive < Test::Unit::TestCase def test_rename assert_equal(0, File.rename(@file, @nofile)) - assert_file_not(:exist?, @file) - assert_file(:exist?, @nofile) + file_assertion.not_exist?(@file) + file_assertion.exist?(@nofile) assert_equal(0, File.rename(@nofile, @file)) assert_raise(Errno::ENOENT) { File.rename(@nofile, @file) } end @@ -787,21 +787,21 @@ class TestFileExhaustive < Test::Unit::TestCase def test_truncate assert_equal(0, File.truncate(@file, 1)) - assert_file(:exist?, @file) + file_assertion.exist?(@file) assert_equal(1, File.size(@file)) assert_equal(0, File.truncate(@file, 0)) - assert_file(:exist?, @file) - assert_file(:zero?, @file) + file_assertion.exist?(@file) + file_assertion.zero?(@file) make_file("foo", @file) assert_raise(Errno::ENOENT) { File.truncate(@nofile, 0) } f = File.new(@file, "w") assert_equal(0, f.truncate(2)) - assert_file(:exist?, @file) + file_assertion.exist?(@file) assert_equal(2, File.size(@file)) assert_equal(0, f.truncate(0)) - assert_file(:exist?, @file) - assert_file(:zero?, @file) + file_assertion.exist?(@file) + file_assertion.zero?(@file) f.close make_file("foo", @file) diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb index 1d76c7dd24..87563349f7 100644 --- a/test/ruby/test_m17n.rb +++ b/test/ruby/test_m17n.rb @@ -1460,6 +1460,7 @@ class TestM17N < Test::Unit::TestCase def test_combchar_codepoint assert_equal([0x30BB, 0x309A], "\u30BB\u309A".codepoints.to_a) + assert_equal([0x30BB, 0x309A], "\u30BB\u309A".codepoints.to_a) end def each_encoding(*strings) diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index b0a43a1bd5..83f074af81 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -403,8 +403,8 @@ class TestProcess < Test::Unit::TestCase with_tmpchdir {|d| Dir.mkdir "foo" system(*PWD, :chdir => "foo", :out => "open_chdir_test") - assert_file(:exist?, "open_chdir_test") - assert_file_not(:exist?, "foo/open_chdir_test") + file_assertion.exist?("open_chdir_test") + file_assertion.not_exist?("foo/open_chdir_test") assert_equal("#{d}/foo", File.read("open_chdir_test").chomp) } end diff --git a/test/ruby/test_require.rb b/test/ruby/test_require.rb index 8e5b8d1582..25b49762f2 100644 --- a/test/ruby/test_require.rb +++ b/test/ruby/test_require.rb @@ -109,7 +109,7 @@ class TestRequire < Test::Unit::TestCase Dir.mktmpdir do |tmp| req = File.join(tmp, "very_long_file_name.rb") File.write(req, "p :ok\n") - assert_file(:exist?, req) + file_assertion.exist?(req) req[/.rb$/i] = "" assert_in_out_err(['--disable-gems'], <<-INPUT, %w(:ok), []) require "#{req}" diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index c509f22d8d..0cf0f597b4 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -388,7 +388,7 @@ class TestRubyOptions < Test::Unit::TestCase rubybin = Regexp.quote(EnvUtil.rubybin) pat = Regexp.quote(notexist) bug1573 = '[ruby-core:23717]' - assert_file_not(:exist?, notexist) + file_assertion.not_exist?(notexist) assert_in_out_err(["-r", notexist, "-ep"], "", [], /.* -- #{pat} \(LoadError\)/, bug1573) assert_in_out_err([notexist], "", [], /#{rubybin}:.* -- #{pat} \(LoadError\)/, bug1573) end diff --git a/test/ruby/test_whileuntil.rb b/test/ruby/test_whileuntil.rb index 5f48f2fd50..6ce2fa30c6 100644 --- a/test/ruby/test_whileuntil.rb +++ b/test/ruby/test_whileuntil.rb @@ -69,7 +69,7 @@ class TestWhileuntil < Test::Unit::TestCase tmp.close File.unlink tmpfilename or `/bin/rm -f "#{tmpfilename}"` - assert_file_not(:exist?, tmpfilename) + file_assertion.not_exist?(tmpfilename) } end -- cgit v1.2.3