summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Di Mascio <adim@logilab.fr>2006-05-17 08:55:12 +0200
committerAdrien Di Mascio <adim@logilab.fr>2006-05-17 08:55:12 +0200
commit2e86db341b90ec482c3415c377867613a925b7ab (patch)
tree91982970dc62fe3b9fa5077dabcfc71b809ea812
parent767d41c3ba6b55be2c635ba7c2627883b4e40884 (diff)
downloadlogilab-common-2e86db341b90ec482c3415c377867613a925b7ab.tar.gz
fixed port parameter handling for pgdb and PgSQL
-rw-r--r--db.py13
-rw-r--r--test/unittest_db.py13
-rw-r--r--testlib.py4
3 files changed, 22 insertions, 8 deletions
diff --git a/db.py b/db.py
index 0e3dece..8f3c621 100644
--- a/db.py
+++ b/db.py
@@ -176,6 +176,15 @@ class _PgdbAdapter(DBAPIAdapter):
'int8', 'float4', 'float8',
'numeric', 'bool', 'money')
+ def connect(self, host='', database='', user='', password='', port=''):
+ """Wraps the native module connect method"""
+ if port:
+ warn("pgdb doesn't support 'port' parameter in connect()", UserWarning)
+ kwargs = {'host' : host, 'database' : database,
+ 'user' : user, 'password' : password}
+ cnx = self._native_module.connect(**kwargs)
+ return self._wrap_if_needed(cnx)
+
class _PsycopgAdapter(DBAPIAdapter):
"""Simple Psycopg Adapter to DBAPI (cnx_string differs from classical ones)
@@ -204,7 +213,7 @@ class _Psycopg2Adapter(_PsycopgAdapter):
class _PgsqlAdapter(DBAPIAdapter):
"""Simple pyPgSQL Adapter to DBAPI
"""
- def connect(self, host='', database='', user='', password=''):
+ def connect(self, host='', database='', user='', password='', port=''):
"""Handles psycopg connexion format"""
kwargs = {'host' : host, 'port': port, 'database' : database,
'user' : user, 'password' : password or None}
@@ -218,7 +227,7 @@ class _PgsqlAdapter(DBAPIAdapter):
def __getattr__(self, attrname):
# __import__('pyPgSQL.PgSQL', ...) imports the toplevel package
- return getattr(self._native_module.PgSQL, attrname)
+ return getattr(self._native_module, attrname)
# Sqlite #############################################################
diff --git a/test/unittest_db.py b/test/unittest_db.py
index e7417dd..b7e04f7 100644
--- a/test/unittest_db.py
+++ b/test/unittest_db.py
@@ -33,13 +33,17 @@ class PreferedDriverTC(TestCase):
self.assertEquals(exc.args[0], 'Unknown module baz for pg')
def testGlobalVar(self):
+ # XXX: Is this test supposed to be useful ? Is it supposed to test
+ # set_prefered_driver ?
old_drivers = PREFERED_DRIVERS['postgres'][:]
expected = old_drivers[:]
- expected.insert(0, expected.pop(1))
- set_prefered_driver('postgres','pgdb')
+ expected.insert(0, expected.pop(expected.index('pgdb')))
+ set_prefered_driver('postgres', 'pgdb')
+ self.assertEquals(PREFERED_DRIVERS['postgres'], expected)
+ set_prefered_driver('postgres', 'psycopg')
+ # self.assertEquals(PREFERED_DRIVERS['postgres'], old_drivers)
+ expected.insert(0, expected.pop(expected.index('psycopg')))
self.assertEquals(PREFERED_DRIVERS['postgres'], expected)
- set_prefered_driver('postgres','psycopg')
- self.assertEquals(PREFERED_DRIVERS['postgres'], old_drivers)
class getCnxTC(TestCase):
@@ -163,6 +167,7 @@ class DBAPIAdaptersTC(TestCase):
try:
binary = module.BINARY
except AttributeError, err:
+ raise
self.fail(str(err))
def test_adv_func_helper(self):
diff --git a/testlib.py b/testlib.py
index 2f6bf7d..4b0b90a 100644
--- a/testlib.py
+++ b/testlib.py
@@ -219,7 +219,7 @@ def run_test(test, verbose, runner=None):
# m = __import__(test, globals(), locals(), sys.path)
try:
suite = m.suite
- if hasattr(suite, 'func_code'):
+ if callable(suite): # hasattr(suite, 'func_code'):
suite = suite()
except AttributeError:
loader = unittest.TestLoader()
@@ -313,7 +313,7 @@ class SkipAwareTestResult(unittest._TextTestResult):
if self.exitfirst:
self.shouldStop = True
unittest._TextTestResult.addError(self, test, err)
- self._create_pdb(self.getDescription(test))
+ self._create_pdb(self.getDescription(test))
def addFailure(self, test, err):
if self.exitfirst: