mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-03-27 11:14:31 -04:00
This commit adds a rake task to delete all pictures that have 'OpenFarm' as their source. This is useful for cleaning up data imported from OpenFarm.
This commit is contained in:
@@ -8,4 +8,13 @@ namespace :openfarm do
|
||||
Rails.logger = Logger.new(STDOUT)
|
||||
OpenfarmService.new.import!
|
||||
end
|
||||
|
||||
desc "Delete all pictures with source OpenFarm"
|
||||
task delete_pictures: :environment do
|
||||
puts "Deleting pictures with source OpenFarm..."
|
||||
photos_to_delete = Photo.where(source: 'OpenFarm')
|
||||
count = photos_to_delete.count
|
||||
photos_to_delete.destroy_all
|
||||
puts "Deleted #{count} pictures."
|
||||
end
|
||||
end
|
||||
|
||||
33
spec/tasks/openfarm_rake_spec.rb
Normal file
33
spec/tasks/openfarm_rake_spec.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
require 'rake'
|
||||
|
||||
describe 'openfarm:delete_pictures' do
|
||||
before(:all) do
|
||||
Rails.application.load_tasks
|
||||
end
|
||||
|
||||
# We need to do this because Rake tasks normally output to STDOUT, but we
|
||||
# don't want to clutter up the test output.
|
||||
before(:each) do
|
||||
$stdout = StringIO.new
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
$stdout = STDOUT
|
||||
end
|
||||
|
||||
it 'deletes pictures with source OpenFarm' do
|
||||
create(:photo, source: 'OpenFarm')
|
||||
create(:photo, source: 'flickr')
|
||||
|
||||
expect(Photo.where(source: 'OpenFarm').count).to eq(1)
|
||||
expect(Photo.where(source: 'flickr').count).to eq(1)
|
||||
|
||||
Rake::Task['openfarm:delete_pictures'].invoke
|
||||
|
||||
expect(Photo.where(source: 'OpenFarm').count).to eq(0)
|
||||
expect(Photo.where(source: 'flickr').count).to eq(1)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user