Merge pull request #73 from kingbuzzman/master

Fixes issue with unix file paths being turned to lower case
This commit is contained in:
Kenneth Reitz 2017-01-05 12:45:29 -05:00 committed by GitHub
commit 99b5b7c697
2 changed files with 15 additions and 1 deletions

View file

@ -87,7 +87,12 @@ def parse(url, engine=None, conn_max_age=0):
path = ':memory:'
# Handle postgres percent-encoded paths.
hostname = url.hostname or ''
netloc = url.netloc
if "@" in netloc:
netloc = netloc.rsplit("@", 1)[1]
if ":" in netloc:
netloc = netloc.split(":", 1)[0]
hostname = netloc or ''
if '%2f' in hostname.lower():
hostname = hostname.replace('%2f', '/').replace('%2F', '/')

View file

@ -34,6 +34,15 @@ class DatabaseTestSuite(unittest.TestCase):
assert url['PASSWORD'] == ''
assert url['PORT'] == ''
url = 'postgres://%2FUsers%2Fpostgres%2FRuN/d8r82722r2kuvn'
url = dj_database_url.parse(url)
assert url['ENGINE'] == 'django.db.backends.postgresql_psycopg2'
assert url['HOST'] == '/Users/postgres/RuN'
assert url['USER'] == ''
assert url['PASSWORD'] == ''
assert url['PORT'] == ''
def test_postgres_search_path_parsing(self):
url = 'postgres://uf07k1i6d8ia0v:wegauwhgeuioweg@ec2-107-21-253-135.compute-1.amazonaws.com:5431/d8r82722r2kuvn?currentSchema=otherschema'
url = dj_database_url.parse(url)