Fixed #26616 -- Improved error message when AppConfig.name is invalid.

This commit is contained in:
inondle 2016-06-01 13:08:59 -07:00 committed by Tim Graham
parent 779829662d
commit 080dd74e01
2 changed files with 10 additions and 2 deletions

View File

@ -139,7 +139,14 @@ class AppConfig(object):
"'%s' must supply a name attribute." % entry) "'%s' must supply a name attribute." % entry)
# Ensure app_name points to a valid module. # Ensure app_name points to a valid module.
app_module = import_module(app_name) try:
app_module = import_module(app_name)
except ImportError:
raise ImproperlyConfigured(
"Cannot import '%s'. Check that '%s.%s.name' is correct." % (
app_name, mod_path, cls_name,
)
)
# Entry is a path to an app config class. # Entry is a path to an app config class.
return cls(app_name, app_module) return cls(app_name, app_module)

View File

@ -78,7 +78,8 @@ class AppsTests(SimpleTestCase):
with self.assertRaises(ImportError): with self.assertRaises(ImportError):
with self.settings(INSTALLED_APPS=['there is no such app']): with self.settings(INSTALLED_APPS=['there is no such app']):
pass pass
with self.assertRaises(ImportError): msg = "Cannot import 'there is no such app'. Check that 'apps.apps.NoSuchApp.name' is correct."
with self.assertRaisesMessage(ImproperlyConfigured, msg):
with self.settings(INSTALLED_APPS=['apps.apps.NoSuchApp']): with self.settings(INSTALLED_APPS=['apps.apps.NoSuchApp']):
pass pass