Author: phd
Date: Thu Feb 24 06:02:17 2011
New Revision: 4338
Log:
Fixed a bug - splitpasswd() can return None. Added a test for quoted special characters.
Modified:
SQLObject/trunk/sqlobject/dbconnection.py
SQLObject/trunk/sqlobject/tests/test_parse_uri.py
Modified: SQLObject/trunk/sqlobject/dbconnection.py
==============================================================================
--- SQLObject/trunk/sqlobject/dbconnection.py Tue Feb 22 07:44:08 2011 (r4337)
+++ SQLObject/trunk/sqlobject/dbconnection.py Thu Feb 24 06:02:17 2011 (r4338)
@@ -177,7 +177,7 @@
if '@' in host:
user, host = host.split('@', 1)
if user:
- user, password = [urllib.unquote(x) for x in urllib.splitpasswd(user)]
+ user, password = [x and urllib.unquote(x) or None for x in urllib.splitpasswd(user)]
host, port = urllib.splitport(host)
if port: port = int(port)
elif host == '':
Modified: SQLObject/trunk/sqlobject/tests/test_parse_uri.py
==============================================================================
--- SQLObject/trunk/sqlobject/tests/test_parse_uri.py Tue Feb 22 07:44:08 2011 (r4337)
+++ SQLObject/trunk/sqlobject/tests/test_parse_uri.py Thu Feb 24 06:02:17 2011 (r4338)
@@ -48,9 +48,9 @@
assert path == "/full/path/to/socket/database"
assert args == {}
- user, password, host, port, path, args = _parseURI("postgres://user:at@inpwd@host/database")
- assert user == "user"
- assert password == "at@inpwd"
+ user, password, host, port, path, args = _parseURI("postgres://us%3Aer:p%40ssword@host/database")
+ assert user == "us:er"
+ assert password == "p@ssword"
assert host == "host"
assert port is None
assert path == "/database"
|