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.
backend_dir = os.path.join(os.path.dirname(__file__), 'backends')
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))
and not (f.startswith('.') or f == '__pycache__')]
and not (f.startswith('.') or f in ('__pycache__', 'dummy'))]
except EnvironmentError:
available_backends = []
full_notation = backend_name.startswith('django.db.backends.')
if full_notation:
backend_name = backend_name[19:] # See #15621.
if backend_name not in available_backends:
backend_reprs = map(repr, sorted(available_backends))
builtin_backends = []
if backend_name not in ['django.db.backends.%s' % b for b in
builtin_backends]:
backend_reprs = map(repr, sorted(builtin_backends))
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" %
(backend_name, ", ".join(backend_reprs), e_user))
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:
# If there's some other error, this must be an error in Django
raise

View File

@ -666,13 +666,6 @@ class ThreadTests(TestCase):
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):
"""
Zero as id for AutoField should raise exception in MySQL, because MySQL