diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2017-03-01 20:12:13 +0000 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2017-03-01 20:12:13 +0000 |
commit | 44d8edfd8c3bcaa3167e84fd11cc62b43bfd3af5 (patch) | |
tree | 0eb7221647e009e7b3675d63381cef500cccf08f | |
parent | 455f51c36ce6100b0da816e0056af60fa978c8a6 (diff) | |
download | psycopg2-44d8edfd8c3bcaa3167e84fd11cc62b43bfd3af5.tar.gz |
Ignore None arguments passed to make_dsn()fix-517
Close #517.
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | lib/extensions.py | 3 | ||||
-rwxr-xr-x | tests/test_connection.py | 4 |
3 files changed, 14 insertions, 0 deletions
@@ -1,6 +1,13 @@ Current release --------------- +What's new in psycopg 2.7.1 +--------------------------- + +- Ignore `!None` arguments passed to `~psycopg2.connect()` and + `~psycopg2.extensions.make_dsn()` (:ticket:`#517`). + + What's new in psycopg 2.7 ------------------------- diff --git a/lib/extensions.py b/lib/extensions.py index 9fee551..00d71f0 100644 --- a/lib/extensions.py +++ b/lib/extensions.py @@ -162,6 +162,9 @@ def make_dsn(dsn=None, **kwargs): "you can't specify both 'database' and 'dbname' arguments") kwargs['dbname'] = kwargs.pop('database') + # Drop the None arguments + kwargs = dict((k, v) for (k, v) in kwargs.iteritems() if v is not None) + if dsn is not None: tmp = parse_dsn(dsn) tmp.update(kwargs) diff --git a/tests/test_connection.py b/tests/test_connection.py index a9525b4..dae0560 100755 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -459,6 +459,10 @@ class MakeDsnTestCase(ConnectingTestCase): dsn = ext.make_dsn(dsnin) self.assertEqual(dsn, dsnin) + def test_null_args(self): + dsn = ext.make_dsn("dbname=foo", user="bar", password=None) + self.assertDsnEqual(dsn, "dbname=foo user=bar") + @skip_before_libpq(9, 2) def test_url_is_cool(self): url = 'postgresql://tester:secret@/test?application_name=wat' |