rename Mailer#message

in Rails 3, there's another method with the same name

also fix some specs that check the underlying delivery method

Change-Id: I1e318a280420ea5872b7e4dca097a2b68a0a69e7
Reviewed-on: https://gerrit.instructure.com/28742
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: James Williams  <jamesw@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
This commit is contained in:
Cody Cutrer 2014-01-16 15:08:04 -07:00
parent cc93da5b8c
commit e87f947d21
6 changed files with 14 additions and 12 deletions

View File

@ -189,7 +189,7 @@ class CommunicationChannel < ActiveRecord::Base
m = self.messages.new
m.to = self.path
m.body = t :body, "Your Canvas verification code is %{verification_code}", :verification_code => code
Mailer.message(m).deliver rescue nil # omg! just ignore delivery failures
Mailer.create_message(m).deliver rescue nil # omg! just ignore delivery failures
end
# If you are creating a new communication_channel, do nothing, this just

View File

@ -86,17 +86,17 @@ class Mailer < ActionMailer::Base
end
def deliver
Mailer.deliver_message(@message)
Mailer.deliver_create_message(@message)
end
end
def self.message(m)
def self.create_message(m)
Proxy.new(m)
end
end
# define in rails3-style
def message(m)
def create_message(m)
# notifications have context, bounce replies don't.
headers('Auto-Submitted' => m.context ? 'auto-generated' : 'auto-replied')

View File

@ -611,7 +611,7 @@ class Message < ActiveRecord::Base
logger.info "Delivering mail: #{self.inspect}"
begin
res = Mailer.message(self).deliver
res = Mailer.create_message(self).deliver
rescue Net::SMTPServerBusy => e
@exception = e
logger.error "Exception: #{e.class}: #{e.message}\n\t#{e.backtrace.join("\n\t")}"

View File

@ -317,7 +317,7 @@ module IncomingMail
unless outgoing_message_delivered
# Can't use our usual mechanisms, so just try to send it once now
begin
res = Mailer.deliver_message(outgoing_message)
res = Mailer.create_message(outgoing_message).deliver
rescue => e
# TODO: put some kind of error logging here?
end

View File

@ -29,7 +29,7 @@ describe 'MessageDispatcher' do
track_jobs { MessageDispatcher.dispatch(@message) }
created_jobs.size.should == 1
job = created_jobs.first
Mailer.expects(:deliver_message).raises(Timeout::Error)
Mailer.expects(:create_message).raises(Timeout::Error)
run_jobs
@message.reload.dispatch_at.should > Time.now.utc + 4.minutes
job.reload.attempts.should == 1
@ -58,7 +58,9 @@ describe 'MessageDispatcher' do
job = created_jobs.first
@messages[0].cancel
Mailer.expects(:deliver_message).twice.raises(Timeout::Error).then.returns(true)
am_message = mock()
am_message.expects(:deliver).returns(true)
Mailer.expects(:create_message).twice.raises(Timeout::Error).then.returns(am_message)
track_jobs { Delayed::Worker.new.perform(job) }
created_jobs.size.should == 1

View File

@ -128,24 +128,24 @@ describe Message do
message_model(:dispatch_at => Time.now, :workflow_state => 'staged', :to => 'somebody', :updated_at => Time.now.utc - 11.minutes, :user => user, :path_type => 'email')
@message.cancel
@message.expects(:deliver_via_email).never
Mailer.expects(:deliver_message).never
Mailer.expects(:create_message).never
@message.deliver.should be_nil
@message.reload.state.should == :cancelled
end
it "should log errors and raise based on error type" do
message_model(:dispatch_at => Time.now, :workflow_state => 'staged', :to => 'somebody', :updated_at => Time.now.utc - 11.minutes, :user => user, :path_type => 'email')
Mailer.expects(:deliver_message).raises("something went wrong")
Mailer.expects(:create_message).raises("something went wrong")
ErrorReport.expects(:log_exception)
expect { @message.deliver }.to raise_exception("something went wrong")
message_model(:dispatch_at => Time.now, :workflow_state => 'staged', :to => 'somebody', :updated_at => Time.now.utc - 11.minutes, :user => user, :path_type => 'email')
Mailer.expects(:deliver_message).raises(Timeout::Error.new)
Mailer.expects(:create_message).raises(Timeout::Error.new)
ErrorReport.expects(:log_exception).never
expect { @message.deliver }.to raise_exception(Timeout::Error)
message_model(:dispatch_at => Time.now, :workflow_state => 'staged', :to => 'somebody', :updated_at => Time.now.utc - 11.minutes, :user => user, :path_type => 'email')
Mailer.expects(:deliver_message).raises("450 recipient address rejected")
Mailer.expects(:create_message).raises("450 recipient address rejected")
ErrorReport.expects(:log_exception).never
@message.deliver.should == false
end