Added check_apps_ready() to Apps.get_containing_app_config()
This commit is contained in:
parent
540ca563de
commit
9033003d97
|
@ -227,9 +227,7 @@ class Apps(object):
|
||||||
Returns the app config for the inner application in case of nesting.
|
Returns the app config for the inner application in case of nesting.
|
||||||
Returns None if the object isn't in any registered app config.
|
Returns None if the object isn't in any registered app config.
|
||||||
"""
|
"""
|
||||||
# In Django 1.7 and 1.8, it's allowed to call this method at import
|
self.check_apps_ready()
|
||||||
# time, even while the registry is being populated. In Django 1.9 and
|
|
||||||
# later, that should be forbidden with `self.check_apps_ready()`.
|
|
||||||
candidates = []
|
candidates = []
|
||||||
for app_config in self.app_configs.values():
|
for app_config in self.app_configs.values():
|
||||||
if object_name.startswith(app_config.name):
|
if object_name.startswith(app_config.name):
|
||||||
|
|
|
@ -8,7 +8,7 @@ from unittest import skipUnless
|
||||||
from django.apps import AppConfig, apps
|
from django.apps import AppConfig, apps
|
||||||
from django.apps.registry import Apps
|
from django.apps.registry import Apps
|
||||||
from django.contrib.admin.models import LogEntry
|
from django.contrib.admin.models import LogEntry
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.test import TestCase, override_settings
|
from django.test import TestCase, override_settings
|
||||||
from django.test.utils import extend_sys_path
|
from django.test.utils import extend_sys_path
|
||||||
|
@ -247,6 +247,18 @@ class AppsTests(TestCase):
|
||||||
"Conflicting 'southponies' models in application 'apps':.*"):
|
"Conflicting 'southponies' models in application 'apps':.*"):
|
||||||
type(str("SouthPonies"), (models.Model,), body)
|
type(str("SouthPonies"), (models.Model,), body)
|
||||||
|
|
||||||
|
def test_get_containing_app_config_apps_not_ready(self):
|
||||||
|
"""
|
||||||
|
apps.get_containing_app_config() should raise an exception if
|
||||||
|
apps.apps_ready isn't True.
|
||||||
|
"""
|
||||||
|
apps.apps_ready = False
|
||||||
|
try:
|
||||||
|
with self.assertRaisesMessage(AppRegistryNotReady, "Apps aren't loaded yet"):
|
||||||
|
apps.get_containing_app_config('foo')
|
||||||
|
finally:
|
||||||
|
apps.apps_ready = True
|
||||||
|
|
||||||
|
|
||||||
class Stub(object):
|
class Stub(object):
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
|
|
Loading…
Reference in New Issue