diff options
| author | Teddy Wing | 2018-02-05 15:57:15 +0100 |
|---|---|---|
| committer | Teddy Wing | 2018-02-06 10:50:51 +0100 |
| commit | 95536ec9ffe465cb591bab3c1e770264440a7c8a (patch) | |
| tree | 26181812ccc78cf7a506b518545a531e86540616 | |
| parent | 4c3e7adbeccfcbc39de845880882893b5b734741 (diff) | |
| download | chouette-core-95536ec9ffe465cb591bab3c1e770264440a7c8a.tar.bz2 | |
Import.abort_old: Don't change finished imports
Imports that have a `finished_status` should not be changed to
`aborted`.
Refs #4963
| -rw-r--r-- | app/models/import.rb | 7 | ||||
| -rw-r--r-- | spec/models/import_spec.rb | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/app/models/import.rb b/app/models/import.rb index 6330bd560..060db8183 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -43,8 +43,11 @@ class Import < ActiveRecord::Base end def self.abort_old - where('created_at < ?', 4.hours.ago) - .update_all(status: 'aborted') + where( + 'created_at < ? AND status NOT IN (?)', + 4.hours.ago, + finished_statuses + ).update_all(status: 'aborted') end def notify_parent diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb index 8c1037a48..aedcfe4ab 100644 --- a/spec/models/import_spec.rb +++ b/spec/models/import_spec.rb @@ -47,6 +47,17 @@ RSpec.describe Import, type: :model do end it "doesn't work on imports with a `finished_status`" do + Timecop.freeze(Time.now) do + import = create( + :workbench_import, + status: 'successful', + created_at: 4.hours.ago - 1.minute + ) + + Import.abort_old + + expect(import.reload.status).to eq('successful') + end end end |
