diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2022-02-20 18:12:42 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2022-02-20 18:12:42 +0000 |
commit | 3e9f0023a197c39109292c52507b1749cb7d4e6c (patch) | |
tree | 39c015a39549c7ee46fdcc3af21b8eb5f52fa261 | |
parent | d8f8b7d4963119ce06235160ac14a280d27f5508 (diff) | |
download | redmine-3e9f0023a197c39109292c52507b1749cb7d4e6c.tar.gz redmine-3e9f0023a197c39109292c52507b1749cb7d4e6c.zip |
Fix import with issue relations and invalid issues hangs without any error message in UI (#35656).
git-svn-id: http://svn.redmine.org/redmine/trunk@21422 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/models/issue_import.rb | 6 | ||||
-rw-r--r-- | test/fixtures/files/import_issues_with_relation_and_invalid_issues.csv | 6 | ||||
-rw-r--r-- | test/unit/issue_import_test.rb | 22 |
3 files changed, 33 insertions, 1 deletions
diff --git a/app/models/issue_import.rb b/app/models/issue_import.rb index eb8a599ff..d1fc98521 100644 --- a/app/models/issue_import.rb +++ b/app/models/issue_import.rb @@ -286,7 +286,11 @@ class IssueImport < Import relation.delay = decl[:delay] if decl[:delay] - relation.save! + begin + relation.save! + rescue + nil + end end end end diff --git a/test/fixtures/files/import_issues_with_relation_and_invalid_issues.csv b/test/fixtures/files/import_issues_with_relation_and_invalid_issues.csv new file mode 100644 index 000000000..45c901c33 --- /dev/null +++ b/test/fixtures/files/import_issues_with_relation_and_invalid_issues.csv @@ -0,0 +1,6 @@ +row;tracker;subject;status;related to; +1;Feature request;Issue 1;New;; +2;Feature request;Issue 2;New;1; +3;Feature request;;New;;This issue failes to import +4;Feature request;Issue 4;New;3;This import failes to reate the relationsip - import hangs +5;Feature request;Issue 5;New;; diff --git a/test/unit/issue_import_test.rb b/test/unit/issue_import_test.rb index 79038ace4..bb0fa96ec 100644 --- a/test/unit/issue_import_test.rb +++ b/test/unit/issue_import_test.rb @@ -273,6 +273,28 @@ class IssueImportTest < ActiveSupport::TestCase assert_equal Date.new(2020, 2, 3), third.due_date end + def test_import_with_relations_and_invalid_issue_should_not_fail + import = generate_import_with_mapping('import_issues_with_relation_and_invalid_issues.csv') + import.settings['mapping'] = { + 'project_id' => '1', + + 'tracker' => '1', + 'subject' => '2', + 'status' => '3', + 'relation_relates' => '4', + } + import.save! + + first, second, third, fourth = new_records(Issue, 4) {import.run} + + assert_equal 1, import.unsaved_items.count + item = import.unsaved_items.first + assert_include "Subject cannot be blank", item.message + + assert_equal 1, first.relations_from.count + assert_equal 1, second.relations_to.count + end + def test_assignee_should_be_set import = generate_import_with_mapping import.mapping['assigned_to'] = '11' |