Filtered out 'base' from database backend choices error message.

This commit is contained in:
Tim Graham 2015-07-15 10:19:38 -04:00
parent 48af591b2d
commit bbbb7ce115
2 changed files with 18 additions and 1 deletions

View File

@ -114,7 +114,7 @@ def load_backend(backend_name):
try:
builtin_backends = [
name for _, name, ispkg in pkgutil.iter_modules([backend_dir])
if ispkg and name != 'dummy']
if ispkg and name not in {'base', 'dummy'}]
except EnvironmentError:
builtin_backends = []
if backend_name not in ['django.db.backends.%s' % b for b in

View File

@ -0,0 +1,17 @@
from django.core.exceptions import ImproperlyConfigured
from django.db.utils import load_backend
from django.test import SimpleTestCase
from django.test.utils import str_prefix
from django.utils import six
class TestLoadBackend(SimpleTestCase):
def test_load_backend_invalid_name(self):
msg = str_prefix(
"'foo' isn't an available database backend.\n"
"Try using 'django.db.backends.XXX', where XXX is one of:\n"
" %(_)s'mysql', %(_)s'oracle', %(_)s'postgresql_psycopg2', %(_)s'sqlite3'\n"
"Error was: No module named %%s"
) % "foo.base" if six.PY2 else "'foo'"
with self.assertRaisesMessage(ImproperlyConfigured, msg):
load_backend('foo')