From 4b27538818e46d68960160091aee1dd6b2ba2855 Mon Sep 17 00:00:00 2001 From: Marcos Wright-Kuhns Date: Thu, 30 Jun 2016 14:47:41 -0700 Subject: [PATCH] Add a test helper for more human-readable file permission comparison Before this change: 1) Failure: FilePermissionsTest#test_umask_027 [/Users/marcoswk/workspace/rubyzip/test/file_permissions_test.rb:52]: Expected: 33184 Actual: 33183 After this change: 1) Failure: FilePermissionsTest#test_umask_027 [/Users/marcoswk/workspace/rubyzip/test/file_permissions_test.rb:52]: --- expected +++ actual @@ -1,2 +1,2 @@ # encoding: US-ASCII -"100640" +"100637" --- test/file_permissions_test.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/test/file_permissions_test.rb b/test/file_permissions_test.rb index cfc65db..dbef5fa 100644 --- a/test/file_permissions_test.rb +++ b/test/file_permissions_test.rb @@ -17,7 +17,7 @@ class FilePermissionsTest < MiniTest::Test def test_windows_perms create_files - assert_equal ::File.stat(FILENAME).mode, ::File.stat(ZIPNAME).mode + assert_matching_permissions FILENAME, ZIPNAME end else @@ -25,7 +25,7 @@ class FilePermissionsTest < MiniTest::Test def test_current_umask create_files - assert_equal ::File.stat(FILENAME).mode, ::File.stat(ZIPNAME).mode + assert_matching_permissions FILENAME, ZIPNAME end def test_umask_000 @@ -33,7 +33,7 @@ class FilePermissionsTest < MiniTest::Test create_files end - assert_equal ::File.stat(FILENAME).mode, ::File.stat(ZIPNAME).mode + assert_matching_permissions FILENAME, ZIPNAME end def test_umask_066 @@ -41,7 +41,7 @@ class FilePermissionsTest < MiniTest::Test create_files end - assert_equal ::File.stat(FILENAME).mode, ::File.stat(ZIPNAME).mode + assert_matching_permissions FILENAME, ZIPNAME end def test_umask_027 @@ -49,11 +49,18 @@ class FilePermissionsTest < MiniTest::Test create_files end - assert_equal ::File.stat(FILENAME).mode, ::File.stat(ZIPNAME).mode + assert_matching_permissions FILENAME, ZIPNAME end end + def assert_matching_permissions(expected_file, actual_file) + assert_equal( + ::File.stat(expected_file).mode.to_s(8).rjust(4, '0'), + ::File.stat(actual_file).mode.to_s(8).rjust(4, '0') + ) + end + def create_files ::Zip::File.open(ZIPNAME, ::Zip::File::CREATE) do |zip| zip.comment = "test"