Loading django/db/utils.py +7 −16 Original line number Diff line number Diff line Loading @@ -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 Loading tests/regressiontests/backends/tests.py +0 −7 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
django/db/utils.py +7 −16 Original line number Diff line number Diff line Loading @@ -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 Loading
tests/regressiontests/backends/tests.py +0 −7 Original line number Diff line number Diff line Loading @@ -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 Loading