summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2013-12-20 10:44:32 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2013-12-22 11:39:18 +0100
commit517c24bcfabcc704a6b3b3f1eb39b05a3cf41954 (patch)
tree339f995cfc207ca021dbf098a7eca01dfc363b72
parent16aae35ca8508dff2e0b94da67b8c880fe98e9d1 (diff)
Complained on override_settings(INSTALLED_APPS=...).
Currently such overrides aren't reflected in the app cache. It would be possible to handle them. But that doesn't look like a very good API. It makes it complicated to express "add this app" and "remove this app", which are the most common operations on INSTALLED_APPS.
-rw-r--r--django/test/signals.py2
-rw-r--r--tests/app_loading/tests.py13
2 files changed, 9 insertions, 6 deletions
diff --git a/django/test/signals.py b/django/test/signals.py
index 8086d50b32..0d6b7bedf1 100644
--- a/django/test/signals.py
+++ b/django/test/signals.py
@@ -17,7 +17,7 @@ setting_changed = Signal(providing_args=["setting", "value", "enter"])
# except for cases where the receiver is related to a contrib app.
# Settings that may not work well when using 'override_settings' (#19031)
-COMPLEX_OVERRIDE_SETTINGS = set(['DATABASES'])
+COMPLEX_OVERRIDE_SETTINGS = set(['DATABASES', 'INSTALLED_APPS'])
@receiver(setting_changed)
diff --git a/tests/app_loading/tests.py b/tests/app_loading/tests.py
index bb71ad84a2..dcd0fa34c0 100644
--- a/tests/app_loading/tests.py
+++ b/tests/app_loading/tests.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import os
import sys
from unittest import TestCase
+import warnings
from django.core.apps import app_cache
from django.core.apps.cache import AppCache
@@ -77,11 +78,13 @@ class EggLoadingTest(TestCase):
# Pretend we're the master app cache to test the population process.
app_cache._apps_loaded = False
app_cache._models_loaded = False
- with override_settings(INSTALLED_APPS=('notexists',)):
- with self.assertRaises(ImportError):
- app_cache.get_model('notexists', 'nomodel')
- with self.assertRaises(ImportError):
- app_cache.get_model('notexists', 'nomodel')
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", "Overriding setting INSTALLED_APPS")
+ with override_settings(INSTALLED_APPS=['notexists']):
+ with self.assertRaises(ImportError):
+ app_cache.get_model('notexists', 'nomodel')
+ with self.assertRaises(ImportError):
+ app_cache.get_model('notexists', 'nomodel')
class GetModelsTest(TestCase):