From 71b58fa6fc79f03b90503c90c09373f9d43db461 Mon Sep 17 00:00:00 2001 From: Maxwell Salzberg <maxwell@joindiaspora.com> Date: Wed, 4 Jan 2012 00:08:29 -0800 Subject: [PATCH] only queue process_photo jobs if the owner is local. this should cut down on some resque errors --- app/models/photo.rb | 4 +++- spec/factories.rb | 8 ++++++++ spec/models/jobs/process_photo_spec.rb | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/models/photo.rb b/app/models/photo.rb index 904d884f76..759e12924e 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -25,7 +25,9 @@ class Photo < ActiveRecord::Base before_destroy :ensure_user_picture after_destroy :clear_empty_status_message - after_create :queue_processing_job + after_create do + queue_processing_job if self.author.local? + end after_save do self.status_message.update_photos_counter if status_message diff --git a/spec/factories.rb b/spec/factories.rb index 69a5636151..284d1e67a6 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -106,6 +106,14 @@ Factory.define(:photo) do |p| end end +Factory.define(:remote_photo, :parent => :photo) do |p| + p.remote_photo_path 'https://photo.com/images/' + p.remote_photo_name 'kittehs.jpg' + p.association :author,:factory => :person + p.processed_image nil + p.unprocessed_image nil +end + Factory.define :reshare do |r| r.association(:root, :public => true, :factory => :status_message) r.association(:author, :factory => :person) diff --git a/spec/models/jobs/process_photo_spec.rb b/spec/models/jobs/process_photo_spec.rb index bda3ed678a..3f10397451 100644 --- a/spec/models/jobs/process_photo_spec.rb +++ b/spec/models/jobs/process_photo_spec.rb @@ -54,4 +54,13 @@ describe Jobs::ProcessPhoto do result.should be false end end + + it 'does not throw an error if it is called on a remote photo' do + p = Factory(:remote_photo) + p.unprocessed_image = nil + expect{ + result = Jobs::ProcessPhoto.perform(p.id) + }.to_not raise_error + + end end -- GitLab