when deleting users, make the favorites removal asynchronoous

This commit is contained in:
r888888888
2013-05-29 17:24:51 -07:00
parent 074d126018
commit 537be26690
2 changed files with 12 additions and 3 deletions

View File

@@ -3,6 +3,13 @@ class UserDeletion
attr_reader :user, :password
def self.remove_favorites_for(user_name, user_id)
user = User.find(user_id)
Post.tag_match("fav:#{user_name}").find_each do |post|
Favorite.remove(post, user)
end
end
def initialize(user, password)
@user = user
@password = password
@@ -49,9 +56,7 @@ private
end
def remove_favorites
Post.tag_match("fav:#{user.name}").find_each do |post|
Favorite.remove(post, user)
end
UserDeletion.delay.remove_favorites_for(user.name, user.id)
end
def rename

View File

@@ -4,6 +4,7 @@ class UserDeletionTest < ActiveSupport::TestCase
context "an invalid user deletion" do
context "for an invalid password" do
setup do
Delayed::Worker.delay_jobs = false
@user = FactoryGirl.create(:user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
@@ -19,6 +20,7 @@ class UserDeletionTest < ActiveSupport::TestCase
context "for an admin" do
setup do
Delayed::Worker.delay_jobs = false
@user = FactoryGirl.create(:admin_user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
@@ -35,6 +37,8 @@ class UserDeletionTest < ActiveSupport::TestCase
context "a valid user deletion" do
setup do
Delayed::Worker.delay_jobs = false
@user = FactoryGirl.create(:user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"