aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-05-19 14:09:09 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-05-19 14:09:09 +0200
commitaa8749eb52d7919a438940c9218cad98d892f9ad (patch)
tree9802b4c1a29b2d03d50eede3d1cc237505bba69d /activerecord/test
parentf8b5b4af843cb3107071c7d9fdc0d76bb43c47d6 (diff)
downloadrails-aa8749eb52d7919a438940c9218cad98d892f9ad.tar.gz
rails-aa8749eb52d7919a438940c9218cad98d892f9ad.tar.bz2
rails-aa8749eb52d7919a438940c9218cad98d892f9ad.zip
Add cache_key_with_version and use it in ActiveSupport::Cache.expand_cache_key
This retains the existing behavior of ActiveSupport::Cache.expand_cache_key (as used by etaging) where the cache key includes the version.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/cache_key_test.rb8
-rw-r--r--activerecord/test/cases/integration_test.rb18
2 files changed, 19 insertions, 7 deletions
diff --git a/activerecord/test/cases/cache_key_test.rb b/activerecord/test/cases/cache_key_test.rb
index f74cb18244..7b8264e6e8 100644
--- a/activerecord/test/cases/cache_key_test.rb
+++ b/activerecord/test/cases/cache_key_test.rb
@@ -39,5 +39,13 @@ module ActiveRecord
assert CacheMeWithVersion.create.cache_version.present?
assert_not CacheMe.create.cache_version.present?
end
+
+ test "cache_key_with_version always has both key and version" do
+ r1 = CacheMeWithVersion.create
+ assert_equal "active_record/cache_key_test/cache_me_with_versions/#{r1.id}-#{r1.updated_at.to_s(:usec)}", r1.cache_key_with_version
+
+ r2 = CacheMe.create
+ assert_equal "active_record/cache_key_test/cache_mes/#{r2.id}-#{r2.updated_at.to_s(:usec)}", r2.cache_key_with_version
+ end
end
end
diff --git a/activerecord/test/cases/integration_test.rb b/activerecord/test/cases/integration_test.rb
index 7ffa86c42f..9104976126 100644
--- a/activerecord/test/cases/integration_test.rb
+++ b/activerecord/test/cases/integration_test.rb
@@ -168,14 +168,18 @@ class IntegrationTest < ActiveRecord::TestCase
end
def test_named_timestamps_for_cache_key
- owner = owners(:blackbeard)
- assert_equal "owners/#{owner.id}-#{owner.happy_at.utc.to_s(:usec)}", owner.cache_key(:updated_at, :happy_at)
+ assert_deprecated do
+ owner = owners(:blackbeard)
+ assert_equal "owners/#{owner.id}-#{owner.happy_at.utc.to_s(:usec)}", owner.cache_key(:updated_at, :happy_at)
+ end
end
def test_cache_key_when_named_timestamp_is_nil
- owner = owners(:blackbeard)
- owner.happy_at = nil
- assert_equal "owners/#{owner.id}", owner.cache_key(:happy_at)
+ assert_deprecated do
+ owner = owners(:blackbeard)
+ owner.happy_at = nil
+ assert_equal "owners/#{owner.id}", owner.cache_key(:happy_at)
+ end
end
def test_cache_key_is_stable_with_versioning_on
@@ -213,13 +217,13 @@ class IntegrationTest < ActiveRecord::TestCase
Developer.cache_versioning = true
developer = Developer.first
- first_key = developer.cache_key(:updated_at)
+ first_key = developer.cache_key_with_version
travel 10.seconds do
developer.touch
end
- second_key = developer.cache_key(:updated_at)
+ second_key = developer.cache_key_with_version
assert_not_equal first_key, second_key
ensure