|
@@ -1113,7 +1113,7 @@ class DBCacheTests(BaseCacheTests, TransactionTestCase):
|
|
|
with self.assertNumQueries(1):
|
|
|
cache.delete_many(['a', 'b', 'c'])
|
|
|
|
|
|
- def test_cull_count_queries(self):
|
|
|
+ def test_cull_queries(self):
|
|
|
old_max_entries = cache._max_entries
|
|
|
# Force _cull to delete on first cached record.
|
|
|
cache._max_entries = -1
|
|
@@ -1124,6 +1124,13 @@ class DBCacheTests(BaseCacheTests, TransactionTestCase):
|
|
|
cache._max_entries = old_max_entries
|
|
|
num_count_queries = sum('COUNT' in query['sql'] for query in captured_queries)
|
|
|
self.assertEqual(num_count_queries, 1)
|
|
|
+ # Column names are quoted.
|
|
|
+ for query in captured_queries:
|
|
|
+ sql = query['sql']
|
|
|
+ if 'expires' in sql:
|
|
|
+ self.assertIn(connection.ops.quote_name('expires'), sql)
|
|
|
+ if 'cache_key' in sql:
|
|
|
+ self.assertIn(connection.ops.quote_name('cache_key'), sql)
|
|
|
|
|
|
def test_delete_cursor_rowcount(self):
|
|
|
"""
|
|
@@ -1180,6 +1187,15 @@ class DBCacheTests(BaseCacheTests, TransactionTestCase):
|
|
|
)
|
|
|
self.assertEqual(out.getvalue(), "Cache table 'test cache table' created.\n")
|
|
|
|
|
|
+ def test_has_key_query_columns_quoted(self):
|
|
|
+ with CaptureQueriesContext(connection) as captured_queries:
|
|
|
+ cache.has_key('key')
|
|
|
+ self.assertEqual(len(captured_queries), 1)
|
|
|
+ sql = captured_queries[0]['sql']
|
|
|
+ # Column names are quoted.
|
|
|
+ self.assertIn(connection.ops.quote_name('expires'), sql)
|
|
|
+ self.assertIn(connection.ops.quote_name('cache_key'), sql)
|
|
|
+
|
|
|
|
|
|
@override_settings(USE_TZ=True)
|
|
|
class DBCacheWithTimeZoneTests(DBCacheTests):
|