Deborgified the app cache.

Improved Andrew's hack to create temporary app caches to handle
migrations. Now the main app cache has a "master" flag set to True
(which is a non-default keyword argument, thus unlikely to be used by
mistake). Other app cache instances have "master" set to False.

The only sanctioned way to access the app cache is by importing
django.core.apps.app_cache.

If you were instanciating an app cache and relying on the Borg pattern,
you'll have to refactor your code.
This commit is contained in:
Aymeric Augustin 2013-12-17 17:47:19 +01:00
parent 6e895f9e06
commit 0242c56fd8
12 changed files with 71 additions and 87 deletions

View file

@ -3,7 +3,7 @@ from __future__ import unicode_literals
import datetime
import unittest
from django.core.apps.cache import BaseAppCache
from django.core.apps.cache import AppCache
from django.core.exceptions import ValidationError
from django.db import models
from django.test import TestCase
@ -58,7 +58,7 @@ class GetUniqueCheckTests(unittest.TestCase):
Meta = type(str('Meta'), (), {
'unique_together': unique_together,
'app_cache': BaseAppCache()
'app_cache': AppCache()
})
checks, _ = M()._get_unique_checks()