Fixed db.utils.load_backend() on non-ASCII paths.
This commit is contained in:
parent
2f6bdab159
commit
28ee511b7e
|
@ -8,7 +8,7 @@ from threading import local
|
|||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.utils import six
|
||||
from django.utils._os import upath
|
||||
from django.utils._os import npath, upath
|
||||
from django.utils.deprecation import RemovedInDjango110Warning
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.module_loading import import_string
|
||||
|
@ -113,7 +113,7 @@ def load_backend(backend_name):
|
|||
backend_dir = os.path.join(os.path.dirname(upath(__file__)), 'backends')
|
||||
try:
|
||||
builtin_backends = [
|
||||
name for _, name, ispkg in pkgutil.iter_modules([backend_dir])
|
||||
name for _, name, ispkg in pkgutil.iter_modules([npath(backend_dir)])
|
||||
if ispkg and name not in {'base', 'dummy'}]
|
||||
except EnvironmentError:
|
||||
builtin_backends = []
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
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(
|
||||
msg = (
|
||||
"'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"
|
||||
" 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3'\n"
|
||||
"Error was: No module named %s"
|
||||
) % "foo.base" if six.PY2 else "'foo'"
|
||||
with self.assertRaisesMessage(ImproperlyConfigured, msg):
|
||||
load_backend('foo')
|
||||
|
|
Loading…
Reference in New Issue