add stranding for quiz regrade jobs

fixes QO-214

test plan:
 - see ticket repro steps

Change-Id: I5eab913dc8048c90bd040da368f0253b4f61e750
Reviewed-on: https://gerrit.instructure.com/140624
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: John Corrigan <jcorrigan@instructure.com>
Tested-by: Jenkins
QA-Review: Michael Hargiss <mhargiss@instructure.com>
Product-Review: Kevin Dougherty <jdougherty@instructure.com>
This commit is contained in:
Jared Crystal 2018-02-12 11:17:57 -07:00
parent 5131fe9396
commit 6e150b7ee6
2 changed files with 14 additions and 5 deletions

View File

@ -1270,7 +1270,11 @@ class Quizzes::Quiz < ActiveRecord::Base
version_number: self.version_number
}
if current_quiz_question_regrades.present?
Quizzes::QuizRegrader::Regrader.send_later(:regrade!, options)
Quizzes::QuizRegrader::Regrader.send_later_enqueue_args(
:regrade!,
{ strand: "quiz:#{self.global_id}:regrading"},
options
)
end
end
true

View File

@ -1462,15 +1462,20 @@ describe Quizzes::Quiz do
regrade = Quizzes::QuizRegrade.create!(quiz: quiz, quiz_version: quiz.version_number, user: @teacher)
regrade.quiz_question_regrades.create!(
quiz_question_id: q.id,
regrade_option: 'current_correct_only')
expect(Quizzes::QuizRegrader::Regrader).to receive(:send_later).once.
with(:regrade!, quiz: quiz, version_number: quiz.version_number)
regrade_option: 'current_correct_only'
)
expect(Quizzes::QuizRegrader::Regrader).to receive(:send_later_enqueue_args).once.
with(
:regrade!,
{ strand: "quiz:#{quiz.global_id}:regrading"},
quiz: quiz, version_number: quiz.version_number
)
quiz.save!
end
it "does not queue a job to regrade when no current question regrades" do
course_with_teacher(course: @course, active_all: true)
expect(Quizzes::QuizRegrader::Regrader).to receive(:send_later).never
expect(Quizzes::QuizRegrader::Regrader).to receive(:send_later_enqueue_args).never
quiz = @course.quizzes.create!
quiz.save!
end