Do not print log to STDOUT while running testsuite

This commit is contained in:
Karl Erik Õunapuu 2020-05-22 16:19:36 +03:00
parent 13e31af133
commit 01c20edaf8
2 changed files with 16 additions and 17 deletions

View file

@ -1,12 +1,14 @@
class DisputeStatusUpdateJob < Que::Job
def run
def run(logger: Logger.new(STDOUT))
@logger = logger
@backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] }
.with_indifferent_access
close_disputes
activate_disputes
logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \
@logger.info "DisputeStatusUpdateJob - All done. Closed #{@backlog['closed']} and " \
"activated #{@backlog['activated']} disputes."
show_failed_disputes unless @backlog['activate_fail'].empty? && @backlog['close_fail'].empty?
@ -14,7 +16,7 @@ class DisputeStatusUpdateJob < Que::Job
def close_disputes
disputes = Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all
logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes"
@logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes"
disputes.each do |dispute|
process_dispute(dispute, closing: true)
end
@ -22,7 +24,7 @@ class DisputeStatusUpdateJob < Que::Job
def activate_disputes
disputes = Dispute.where(closed: nil, starts_at: Time.zone.today).all
logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes"
@logger.info "DisputeStatusUpdateJob - Found #{disputes.count} activatable disputes"
disputes.each do |dispute|
process_dispute(dispute, closing: false)
@ -38,28 +40,24 @@ class DisputeStatusUpdateJob < Que::Job
def create_backlog_entry(dispute:, intent:, successful:)
if successful
@backlog["#{intent}d"] += 1
logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \
@logger.info "DisputeStatusUpdateJob - #{intent}d dispute " \
" for '#{dispute.domain_name}'"
else
@backlog["#{intent}_fail"] << dispute.id
logger.info 'DisputeStatusUpdateJob - Failed to' \
@logger.info 'DisputeStatusUpdateJob - Failed to' \
"#{intent} dispute for '#{dispute.domain_name}'"
end
end
def show_failed_disputes
if @backlog['close_fail'].any?
logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \
@logger.info('DisputeStatusUpdateJob - Failed to close disputes with Ids:' \
"#{@backlog['close_fail']}")
end
return unless @backlog['activate_fail'].any?
logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \
@logger.info('DisputeStatusUpdateJob - Failed to activate disputes with Ids:' \
"#{@backlog['activate_fail']}")
end
def logger
Logger.new(STDOUT)
end
end

View file

@ -3,17 +3,18 @@ require "test_helper"
class DisputeStatusUpdateJobTest < ActiveSupport::TestCase
setup do
travel_to Time.zone.parse('2010-10-05')
@logger = Rails.logger
end
def test_nothing_is_raised
assert_nothing_raised do
DisputeStatusUpdateJob.run
DisputeStatusUpdateJob.run(logger: @logger)
end
end
def test_whois_data_added_when_dispute_activated
dispute = disputes(:future)
DisputeStatusUpdateJob.run
DisputeStatusUpdateJob.run(logger: @logger)
whois_record = Whois::Record.find_by(name: dispute.domain_name)
assert whois_record.present?
@ -24,7 +25,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase
dispute = disputes(:active)
dispute.update!(starts_at: Time.zone.today - 3.years - 1.day)
DisputeStatusUpdateJob.run
DisputeStatusUpdateJob.run(logger: @logger)
dispute.reload
assert dispute.closed
@ -36,7 +37,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase
def test_registered_domain_whois_data_is_added
Dispute.create(domain_name: 'shop.test', starts_at: '2010-07-05')
travel_to Time.zone.parse('2010-07-05')
DisputeStatusUpdateJob.run
DisputeStatusUpdateJob.run(logger: @logger)
whois_record = Whois::Record.find_by(name: 'shop.test')
assert_includes whois_record.json['status'], 'disputed'
@ -61,7 +62,7 @@ class DisputeStatusUpdateJobTest < ActiveSupport::TestCase
# Dispute status is removed night time day after it's ended
travel_to Time.zone.parse('2010-07-05') + 3.years + 1.day
DisputeStatusUpdateJob.run
DisputeStatusUpdateJob.run(logger: @logger)
whois_record.reload
assert_not whois_record.json['status'].include? 'disputed'