aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-02-05 15:57:15 +0100
committerTeddy Wing2018-02-06 10:50:51 +0100
commit95536ec9ffe465cb591bab3c1e770264440a7c8a (patch)
tree26181812ccc78cf7a506b518545a531e86540616
parent4c3e7adbeccfcbc39de845880882893b5b734741 (diff)
downloadchouette-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.rb7
-rw-r--r--spec/models/import_spec.rb11
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