From 350a2e37827f8df6da4f3994863e9bad91b2fa98 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sun, 6 May 2018 07:48:31 +0000 Subject: [PATCH] Fix: ImportsControllerTest fails with csv gem 1.0.2 (#28689). Patch by Go MAEDA. git-svn-id: http://svn.redmine.org/redmine/trunk@17326 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- Gemfile | 2 +- app/controllers/imports_controller.rb | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index a3f99a1ec..2f717dab3 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem "roadie-rails", "~> 1.2.1" gem "roadie", "~> 3.2.1" gem "mimemagic" gem "mail", "~> 2.6.4" -gem "csv", "~> 1.0.1" if RUBY_VERSION >= "2.5" +gem "csv", "~> 1.0.2" if RUBY_VERSION >= "2.3" gem "nokogiri", "~> 1.8.0" gem "i18n", "~> 0.7.0" diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb index 661eb7405..7f6a512f6 100644 --- a/app/controllers/imports_controller.rb +++ b/app/controllers/imports_controller.rb @@ -50,10 +50,13 @@ class ImportsController < ApplicationController redirect_to import_mapping_path(@import) end - rescue CSV::MalformedCSVError => e - flash.now[:error] = l(:error_invalid_csv_file_or_settings) - rescue ArgumentError, EncodingError => e - flash.now[:error] = l(:error_invalid_file_encoding, :encoding => ERB::Util.h(@import.settings['encoding'])) + # TODO: Remove ArgumentError when support for Ruby 2.2 is dropped (#28689) + rescue CSV::MalformedCSVError, ArgumentError, EncodingError => e + if e.is_a?(CSV::MalformedCSVError) && e.message !~ /Invalid byte sequence/ + flash.now[:error] = l(:error_invalid_csv_file_or_settings) + else + flash.now[:error] = l(:error_invalid_file_encoding, :encoding => ERB::Util.h(@import.settings['encoding'])) + end rescue SystemCallError => e flash.now[:error] = l(:error_can_not_read_import_file) end -- 2.39.5