From b14b006946a05a8f1f2665760c714015f253cf79 Mon Sep 17 00:00:00 2001 From: Massimo DiPierro Date: Sun, 11 Mar 2012 19:38:46 -0500 Subject: [PATCH] fixed problem with pg8000 diver import, thanks Alan --- VERSION | 2 +- gluon/contrib/login_methods/oauth20_account.py | 18 +++++++++++++----- gluon/dal.py | 8 +++++--- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index a1ea15e3..7cac0546 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 1.99.7 (2012-03-09 13:49:42) dev +Version 1.99.7 (2012-03-11 19:38:42) dev diff --git a/gluon/contrib/login_methods/oauth20_account.py b/gluon/contrib/login_methods/oauth20_account.py index bb8bda66..d38918e3 100644 --- a/gluon/contrib/login_methods/oauth20_account.py +++ b/gluon/contrib/login_methods/oauth20_account.py @@ -105,7 +105,6 @@ class OAuthAccount(object): redirect_uri=current.session.redirect_uri, response_type='token', code=current.session.code) - if self.args: data.update(self.args) open_url = None @@ -113,22 +112,27 @@ class OAuthAccount(object): try: open_url = opener.open(self.token_url, urlencode(data)) except urllib2.HTTPError, e: - raise Exception(e.read()) + tmp = e.read() + print tmp + raise Exception(tmp) finally: del current.session.code # throw it away if open_url: try: - tokendata = cgi.parse_qs(open_url.read()) + data = open_url.read() + tokendata = cgi.parse_qs(data) current.session.token = \ dict([(k,v[-1]) for k,v in tokendata.items()]) # set expiration absolute time try to avoid broken # implementations where "expires_in" becomes "expires" if current.session.token.has_key('expires_in'): exps = 'expires_in' - else: + elif current.session.token.has_key('expires'): exps = 'expires' - current.session.token['expires'] = \ + else: + exps = None + current.session.token['expires'] = exps and \ int(current.session.token[exps]) + \ time.time() finally: @@ -161,6 +165,10 @@ class OAuthAccount(object): """ Returns the user using the Graph API. """ + if not current.session.token: return None + return dict(first_name = 'Pinco', + last_name = 'Pallino', + username = 'pincopallino') raise NotImplementedError, "Must override get_user()" if not self.accessToken(): return None diff --git a/gluon/dal.py b/gluon/dal.py index b315cc3d..a9e45f07 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -1993,10 +1993,12 @@ class PostgreSQLAdapter(BaseAdapter): % (db, user, host, port, password) # choose diver according uri if library == "postgres": - if self.drivers.get('psycopg2'): + if 'psycopg2' in self.drivers: self.driver = self.drivers['psycopg2'] - elif self.drivers.get('pg8000'): - self.driver = drivers.get('pg8000') + elif 'pg8000' in self.drivers: + self.driver = self.drivers['pg8000'] + else: + raise RuntimeError, "No pgsql driver" elif library == "postgres:psycopg2": self.driver = self.drivers.get('psycopg2') elif library == "postgres:pg8000":