From 35e8dc5169013437d71ae60e05c7f3356d86236e Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Sat, 6 Oct 2012 19:56:28 -0300 Subject: [PATCH] Removed ad-hoc support for usage of short names of built-in DB backends. This non-standard naming was deprecated in Django 1.2. --- django/db/utils.py | 23 +++++++---------------- tests/regressiontests/backends/tests.py | 7 ------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/django/db/utils.py b/django/db/utils.py index b889cdf9ad..146de7b9f4 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -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 diff --git a/tests/regressiontests/backends/tests.py b/tests/regressiontests/backends/tests.py index cfa298253c..d284cfaac8 100644 --- a/tests/regressiontests/backends/tests.py +++ b/tests/regressiontests/backends/tests.py @@ -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