From a8d1aecfabe288dcfce3c01bfd87a5a6aff3683c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 22 Aug 2006 18:58:01 +0000 Subject: - urls support escaped characters in passwords [ticket:281] --- lib/sqlalchemy/engine/url.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/engine') diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index bd8ee2643..7c3d947ca 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -1,5 +1,6 @@ import re import cgi +import urllib import sqlalchemy.exceptions as exceptions class URL(object): @@ -19,7 +20,7 @@ class URL(object): if self.username is not None: s += self.username if self.password is not None: - s += ':' + self.password + s += ':' + urllib.quote_plus(self.password) s += "@" if self.host is not None: s += self.host @@ -81,6 +82,8 @@ def _parse_rfc1738_args(name): else: query = None opts = {'username':username,'password':password,'host':host,'port':port,'database':database, 'query':query} + if opts['password'] is not None: + opts['password'] = urllib.unquote_plus(opts['password']) return URL(name, **opts) else: raise exceptions.ArgumentError("Could not parse rfc1738 URL from string '%s'" % name) -- cgit v1.2.1