summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-05-20 12:36:40 +0200
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-05-20 12:37:53 +0200
commit56dab8398da14a58afca5307175c48c98f10e65e (patch)
treedfde3b35b540070e243874ee6dc2bd9e2983b988
parentba637a5e0cdb4f4dcec74f62b6aba9dbe0732f32 (diff)
downloadpsycopg2-56dab8398da14a58afca5307175c48c98f10e65e.tar.gz
Accept no param in connect()
More friendly towards ``connect(**parse_dsn())``, and what psycopg3 does. Close #1250
-rw-r--r--NEWS6
-rw-r--r--lib/__init__.py3
-rwxr-xr-xtests/test_module.py20
3 files changed, 21 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 3bd03f3..bf58d8e 100644
--- a/NEWS
+++ b/NEWS
@@ -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('')