summaryrefslogtreecommitdiff
path: root/tests/app_cache
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2013-12-17 17:47:19 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2013-12-17 21:53:18 +0100
commit0242c56fd86137bc8f67404492b5c03987bc3d1a (patch)
tree89dc48cb4e101f12b734831b9a2bc7b4c5cc5c18 /tests/app_cache
parent6e895f9e069f73982751cd2d4aa5aa693136a274 (diff)
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.
Diffstat (limited to 'tests/app_cache')
-rw-r--r--tests/app_cache/models.py4
-rw-r--r--tests/app_cache/tests.py11
2 files changed, 11 insertions, 4 deletions
diff --git a/tests/app_cache/models.py b/tests/app_cache/models.py
index 99f9f57b67..10e9e6f1de 100644
--- a/tests/app_cache/models.py
+++ b/tests/app_cache/models.py
@@ -1,9 +1,9 @@
-from django.core.apps.cache import BaseAppCache
+from django.core.apps.cache import AppCache
from django.db import models
# We're testing app cache presence on load, so this is handy.
-new_app_cache = BaseAppCache()
+new_app_cache = AppCache()
class TotallyNormal(models.Model):
diff --git a/tests/app_cache/tests.py b/tests/app_cache/tests.py
index 29d5315de0..5a80155fec 100644
--- a/tests/app_cache/tests.py
+++ b/tests/app_cache/tests.py
@@ -1,7 +1,7 @@
from __future__ import absolute_import
from django.core.apps import app_cache
-from django.core.apps.cache import BaseAppCache
+from django.core.apps.cache import AppCache
from django.db import models
from django.test import TestCase
@@ -30,7 +30,7 @@ class AppCacheTests(TestCase):
old_models = app_cache.get_models(app_cache.get_app_config("app_cache").models_module)
# Construct a new model in a new app cache
body = {}
- new_app_cache = BaseAppCache()
+ new_app_cache = AppCache()
meta_contents = {
'app_label': "app_cache",
'app_cache': new_app_cache,
@@ -45,3 +45,10 @@ class AppCacheTests(TestCase):
app_cache.get_models(app_cache.get_app_config("app_cache").models_module),
)
self.assertEqual(new_app_cache.get_model("app_cache", "SouthPonies"), temp_model)
+
+ def test_singleton_master(self):
+ """
+ Ensures that only one master app cache can exist.
+ """
+ with self.assertRaises(RuntimeError):
+ AppCache(master=True)