kill another version_number in cache key

refs CNVS-6763

Test plan:
  assignment due dates should display properly after updating an
  assignment's overridden due dates

Change-Id: I3f066444dc969b4ee0cd30fe823278852216ae1e
Reviewed-on: https://gerrit.instructure.com/28798
Reviewed-by: Mike Nomitch <mnomitch@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
Product-Review: Cameron Matheson <cameron@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
This commit is contained in:
Cameron Matheson 2014-01-16 17:24:38 -07:00
parent b1ae5c89ae
commit 20e43be542
2 changed files with 12 additions and 10 deletions

View File

@ -207,7 +207,7 @@ module AssignmentOverrideApplicator
# the same collapsed assignment or quiz, regardless of the user that ended up at that
# set of overrides.
def self.collapsed_overrides(assignment_or_quiz, overrides)
Rails.cache.fetch([assignment_or_quiz, assignment_or_quiz.version_number, self.overrides_hash(overrides)].cache_key) do
Rails.cache.fetch([assignment_or_quiz, self.overrides_hash(overrides)].cache_key) do
overridden_data = {}
# clone the assignment_or_quiz, apply overrides, and freeze
[:due_at, :all_day, :all_day_date, :unlock_at, :lock_at].each do |field|

View File

@ -486,15 +486,17 @@ describe AssignmentOverrideApplicator do
it "should distinguish cache by assignment updated_at" do
@assignment = assignment_model
@assignment.due_at = 5.days.from_now
@assignment.save!
@assignment.versions.count.should == 2
@override = assignment_override_model(:assignment => @assignment)
enable_cache do
overrides1 = AssignmentOverrideApplicator.collapsed_overrides(@assignment.versions.first.model, [@override])
overrides2 = AssignmentOverrideApplicator.collapsed_overrides(@assignment.versions.current.model, [@override])
@assignment.versions.first.updated_at.should_not == @assignment.versions.current.model
overrides1.object_id.should_not == overrides2.object_id
Timecop.travel Time.now + 1.hour do
@assignment.due_at = 5.days.from_now
@assignment.save!
@assignment.versions.count.should == 2
@override = assignment_override_model(:assignment => @assignment)
enable_cache do
overrides1 = AssignmentOverrideApplicator.collapsed_overrides(@assignment.versions.first.model, [@override])
overrides2 = AssignmentOverrideApplicator.collapsed_overrides(@assignment.versions.current.model, [@override])
@assignment.versions.first.updated_at.should_not == @assignment.versions.current.model
overrides1.object_id.should_not == overrides2.object_id
end
end
end