Adds a rake test that removes old unattached uploads (#10253).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8893 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
4c090e869e
commit
b455ac2a27
|
@ -192,7 +192,7 @@ class Attachment < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def self.prune(age=1.day)
|
||||
attachments = Attachment.all(:conditions => ["created_on < ? AND (container_type IS NULL OR container_type = ''", Time.now - age])
|
||||
attachments = Attachment.all(:conditions => ["created_on < ? AND (container_type IS NULL OR container_type = '')", Time.now - age])
|
||||
attachments.each(&:destroy)
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2012 Jean-Philippe Lang
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
desc 'Removes uploaded files left unattached after one day.'
|
||||
|
||||
namespace :redmine do
|
||||
namespace :attachments do
|
||||
task :prune => :environment do
|
||||
Attachment.prune
|
||||
end
|
||||
end
|
||||
end
|
|
@ -144,6 +144,16 @@ class AttachmentTest < ActiveSupport::TestCase
|
|||
assert_equal 'cbb5b0f30978ba03731d61f9f6d10011', Attachment.disk_filename("test_accentué.ça")[13..-1]
|
||||
end
|
||||
|
||||
def test_prune_should_destroy_old_unattached_attachments
|
||||
Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago)
|
||||
Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago)
|
||||
Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1)
|
||||
|
||||
assert_difference 'Attachment.count', -2 do
|
||||
Attachment.prune
|
||||
end
|
||||
end
|
||||
|
||||
context "Attachmnet.attach_files" do
|
||||
should "attach the file" do
|
||||
issue = Issue.first
|
||||
|
|
Loading…
Reference in New Issue