diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2021-05-20 12:36:40 +0200 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2021-05-20 12:37:53 +0200 |
commit | 56dab8398da14a58afca5307175c48c98f10e65e (patch) | |
tree | dfde3b35b540070e243874ee6dc2bd9e2983b988 | |
parent | ba637a5e0cdb4f4dcec74f62b6aba9dbe0732f32 (diff) | |
download | psycopg2-56dab8398da14a58afca5307175c48c98f10e65e.tar.gz |
Accept no param in connect()
More friendly towards ``connect(**parse_dsn())``, and what psycopg3 does.
Close #1250
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | lib/__init__.py | 3 | ||||
-rwxr-xr-x | tests/test_module.py | 20 |
3 files changed, 21 insertions, 8 deletions
@@ -1,6 +1,12 @@ Current release --------------- +What's new in psycopg 2.8.7 +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Accept empty params as `~psycopg2.connect()` (:ticket:`#1250). + + What's new in psycopg 2.8.6 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/lib/__init__.py b/lib/__init__.py index 3cd4640..52c82bc 100644 --- a/lib/__init__.py +++ b/lib/__init__.py @@ -120,9 +120,6 @@ def connect(dsn=None, connection_factory=None, cursor_factory=None, **kwargs): if 'async_' in kwargs: kwasync['async_'] = kwargs.pop('async_') - if dsn is None and not kwargs: - raise TypeError('missing dsn and no parameters') - dsn = _ext.make_dsn(dsn, **kwargs) conn = _connect(dsn, connection_factory=connection_factory, **kwasync) if cursor_factory is not None: diff --git a/tests/test_module.py b/tests/test_module.py index 78f4e43..f37dccd 100755 --- a/tests/test_module.py +++ b/tests/test_module.py @@ -50,12 +50,22 @@ class ConnectTestCase(unittest.TestCase): def tearDown(self): psycopg2._connect = self._connect_orig - def test_there_has_to_be_something(self): - self.assertRaises(TypeError, psycopg2.connect) - self.assertRaises(TypeError, psycopg2.connect, + def test_there_might_be_nothing(self): + psycopg2.connect() + self.assertEqual(self.args[0], '') + self.assertEqual(self.args[1], None) + self.assertEqual(self.args[2], False) + + psycopg2.connect( connection_factory=lambda dsn, async_=False: None) - self.assertRaises(TypeError, psycopg2.connect, - async_=True) + self.assertEqual(self.args[0], '') + self.assertNotEqual(self.args[1], None) + self.assertEqual(self.args[2], False) + + psycopg2.connect(async_=True) + self.assertEqual(self.args[0], '') + self.assertEqual(self.args[1], None) + self.assertEqual(self.args[2], True) def test_no_keywords(self): psycopg2.connect('') |