Author: phd
Date: 2010-07-02 09:35:45 -0600 (Fri, 02 Jul 2010)
New Revision: 4199
Added:
SQLObject/trunk/sqlobject/tests/test_psycopg_sslmode.py
Modified:
SQLObject/trunk/docs/News.txt
SQLObject/trunk/sqlobject/postgres/pgconnection.py
Log:
A new parameter 'sslmode' was added to PostgresConnection.
Modified: SQLObject/trunk/docs/News.txt
===================================================================
--- SQLObject/trunk/docs/News.txt 2010-07-02 15:21:12 UTC (rev 4198)
+++ SQLObject/trunk/docs/News.txt 2010-07-02 15:35:45 UTC (rev 4199)
@@ -40,6 +40,8 @@
* Renamed db_encoding to dbEncoding in UnicodeStringValidator.
+* A new parameter 'sslmode' was added to PostgresConnection.
+
SQLObject 0.12.4
================
Modified: SQLObject/trunk/sqlobject/postgres/pgconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/postgres/pgconnection.py 2010-07-02 15:21:12 UTC (rev 4198)
+++ SQLObject/trunk/sqlobject/postgres/pgconnection.py 2010-07-02 15:35:45 UTC (rev 4199)
@@ -66,6 +66,9 @@
dsn_dict["user"] = user
if password:
dsn_dict["password"] = password
+ sslmode = kw.pop("sslmode", None)
+ if sslmode:
+ dsn_dict["sslmode"] = sslmode
self.use_dsn = dsn is not None
if dsn is None:
if backend == 'pygresql':
@@ -93,6 +96,8 @@
dsn.append('host=%s' % host)
if port:
dsn.append('port=%d' % port)
+ if sslmode:
+ dsn.append('sslmode=%s' % sslmode)
dsn = ' '.join(dsn)
self.dsn = dsn
self.unicodeCols = kw.pop('unicodeCols', False)
Added: SQLObject/trunk/sqlobject/tests/test_psycopg_sslmode.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_psycopg_sslmode.py (rev 0)
+++ SQLObject/trunk/sqlobject/tests/test_psycopg_sslmode.py 2010-07-02 15:35:45 UTC (rev 4199)
@@ -0,0 +1,25 @@
+from sqlobject import *
+from sqlobject.tests.dbtest import *
+
+########################################
+## Test PosgreSQL sslmode
+########################################
+
+class TestSSLMode(SQLObject):
+ test = StringCol()
+
+def test_sslmode():
+ setupClass(TestSSLMode)
+ connection = TestSSLMode._connection
+ if (connection.dbName != 'postgres') or \
+ (not connection.module.__name__.startswith('psycopg')):
+ # sslmode is only implemented by psycopg[12] PostgreSQL driver
+ return
+
+ connection = getConnection(sslmode='require')
+ TestSSLMode._connection = connection
+ test = TestSSLMode(test='test') # Connect to the DB to test sslmode
+
+ connection.cache.clear()
+ test = TestSSLMode.select()[0]
+ assert test.test == 'test'
|