There's a generic except: in dal.py/sql.py that prevents SyntaxErrors
from being reported.

For example,

db = DAL('mssql://user:p...@127.0.0.1/')

results in:

RuntimeError: Failure to connect to DB. Tried 5 times

instead of:

SyntaxError: Invalid URI string in SQLDB: mssql://user:p...@127.0.0.1/


Unless there is some reason for ignoring SyntaxErrors that I'm not
aware of, I'd like to propose the following patch:

diff -r e1d065e37948 -r 80311269f4f3 gluon/dal.py
--- a/gluon/dal.py      Mon Jul 26 03:44:13 2010 -0500
+++ b/gluon/dal.py      Wed Jul 28 14:41:33 2010 -0400
@@ -2039,6 +2039,8 @@
                     self._adapter = ADAPTERS[prefix+self._dbname]
(self,uri,pool_size,folder,db_codec)
                     connected = True
                     break
+                except SyntaxError:
+                    raise
                 except:
                     time.sleep(1)
             if not connected:
diff -r e1d065e37948 -r 80311269f4f3 gluon/sql.py
--- a/gluon/sql.py      Mon Jul 26 03:44:13 2010 -0500
+++ b/gluon/sql.py      Wed Jul 28 14:41:33 2010 -0400
@@ -3883,6 +3883,8 @@
                 return SQLDB(uri, pool_size=pool_size, folder=folder,
                              db_codec=db_codec,
check_reserved=check_reserved,
                              migrate=migrate,
fake_migrate=fake_migrate)
+            except SyntaxError:
+                raise
             except:
                 time.sleep(1)
         raise RuntimeError, "Failure to connect to DB. Tried 5 times"

Reply via email to