Skip to content

Commit 7306521

Browse files
committed
Remove python 2.6-specific workaround in db_url.
Replaces #2915
1 parent 0b16576 commit 7306521

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

playhouse/db_url.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,10 @@ def parseresult_to_dict(parsed, unquote_password=False):
3939

4040
# urlparse in python 2.6 is broken so query will be empty and instead
4141
# appended to path complete with '?'
42-
path_parts = parsed.path[1:].split('?')
43-
try:
44-
query = path_parts[1]
45-
except IndexError:
46-
query = parsed.query
42+
path = parsed.path[1:] # Ignore leading '/'.
43+
query = parsed.query
4744

48-
connect_kwargs = {'database': path_parts[0]}
45+
connect_kwargs = {'database': path}
4946
if parsed.username:
5047
connect_kwargs['user'] = parsed.username
5148
if parsed.password:

tests/db_url.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ def test_db_url(self):
6565
self.assertTrue(isinstance(db, SqliteDatabase))
6666
self.assertEqual(db.database, ':memory:')
6767

68+
db = connect('sqlite:///test.db?p1=1?a&p2=22&p3=xyz')
69+
self.assertTrue(isinstance(db, SqliteDatabase))
70+
self.assertEqual(db.database, 'test.db')
71+
self.assertEqual(db.connect_params, {
72+
'p1': '1?a', 'p2': 22, 'p3': 'xyz'})
73+
6874
def test_bad_scheme(self):
6975
def _test_scheme():
7076
connect('missing:///')

0 commit comments

Comments
 (0)