Removed ad-hoc support for usage of short names of built-in DB backends.

This non-standard naming was deprecated in Django 1.2.
This commit is contained in:
Ramiro Morales 2012-10-06 19:56:28 -03:00
parent ab23293735
commit 35e8dc5169
2 changed files with 7 additions and 23 deletions

View File

@ -28,28 +28,19 @@ def load_backend(backend_name):
# listing all possible (built-in) database backends. # listing all possible (built-in) database backends.
backend_dir = os.path.join(os.path.dirname(__file__), 'backends') backend_dir = os.path.join(os.path.dirname(__file__), 'backends')
try: try:
available_backends = [f for f in os.listdir(backend_dir) builtin_backends = [f for f in os.listdir(backend_dir)
if os.path.isdir(os.path.join(backend_dir, f)) if os.path.isdir(os.path.join(backend_dir, f))
and not (f.startswith('.') or f == '__pycache__')] and not (f.startswith('.') or f in ('__pycache__', 'dummy'))]
except EnvironmentError: except EnvironmentError:
available_backends = [] builtin_backends = []
full_notation = backend_name.startswith('django.db.backends.') if backend_name not in ['django.db.backends.%s' % b for b in
if full_notation: builtin_backends]:
backend_name = backend_name[19:] # See #15621. backend_reprs = map(repr, sorted(builtin_backends))
if backend_name not in available_backends:
backend_reprs = map(repr, sorted(available_backends))
error_msg = ("%r isn't an available database backend.\n" error_msg = ("%r isn't an available database backend.\n"
"Try using django.db.backends.XXX, where XXX " "Try using 'django.db.backends.XXX', where XXX "
"is one of:\n %s\nError was: %s" % "is one of:\n %s\nError was: %s" %
(backend_name, ", ".join(backend_reprs), e_user)) (backend_name, ", ".join(backend_reprs), e_user))
raise ImproperlyConfigured(error_msg) raise ImproperlyConfigured(error_msg)
elif not full_notation:
# user tried to use the old notation for the database backend
error_msg = ("%r isn't an available database backend.\n"
"Try using django.db.backends.%s instead.\n"
"Error was: %s" %
(backend_name, backend_name, e_user))
raise ImproperlyConfigured(error_msg)
else: else:
# If there's some other error, this must be an error in Django # If there's some other error, this must be an error in Django
raise raise

View File

@ -666,13 +666,6 @@ class ThreadTests(TestCase):
self.assertEqual(len(exceptions), 0) self.assertEqual(len(exceptions), 0)
class BackendLoadingTests(TestCase):
def test_old_style_backends_raise_useful_exception(self):
six.assertRaisesRegex(self, ImproperlyConfigured,
"Try using django.db.backends.sqlite3 instead",
load_backend, 'sqlite3')
class MySQLPKZeroTests(TestCase): class MySQLPKZeroTests(TestCase):
""" """
Zero as id for AutoField should raise exception in MySQL, because MySQL Zero as id for AutoField should raise exception in MySQL, because MySQL