psycopg.git / summary / log / commit / refs
commit a017a45dd67f278a793ea06cd55b557ff8aea282
Author: Daniele Varrazzo <daniele.varrazzo@gmail.com>
Date: Wed Dec 02 03:40:22 2020 +0000
Added a few tests from the psycopg2 test suite
tests/test_conninfo.py | 1 +
tests/test_module.py | 30 ++++++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/tests/test_conninfo.py b/tests/test_conninfo.py
index 93ab8930..2b045c14 100644
--- a/tests/test_conninfo.py
+++ b/tests/test_conninfo.py
@@ -21,6 +21,7 @@ class MyString(str):
("user=bar", {"dbname": "foo bar"}, "dbname='foo bar' user=bar"),
("", {"dbname": "foo"}, "dbname=foo"),
("", {"dbname": "foo", "user": None}, "dbname=foo"),
+ ("", {"dbname": "foo", "port": 15432}, "dbname=foo port=15432"),
("", {"dbname": "a'b"}, r"dbname='a\'b'"),
(f"dbname={snowman}", {}, f"dbname={snowman}"),
("", {"dbname": snowman}, f"dbname={snowman}"),
diff --git a/tests/test_module.py b/tests/test_module.py
new file mode 100644
index 00000000..6f594d81
--- /dev/null
+++ b/tests/test_module.py
@@ -0,0 +1,30 @@
+import pytest
+
+
+@pytest.mark.parametrize(
+ "args, kwargs, want_conninfo",
+ [
+ ((), {}, ""),
+ (("dbname=foo",), {"user": "bar"}, "dbname=foo user=bar"),
+ ((), {"port": 15432}, "port=15432"),
+ ((), {"user": "foo", "dbname": None}, "user=foo"),
+ ],
+)
+def test_connect(monkeypatch, dsn, args, kwargs, want_conninfo):
+ # Check the main args passing from psycopg3.connect to the conn generator
+ # Details of the params manipulation are in test_conninfo.
+ import psycopg3.connection
+
+ orig_connect = psycopg3.connection.connect
+
+ got_conninfo = None
+
+ def mock_connect(conninfo):
+ nonlocal got_conninfo
+ got_conninfo = conninfo
+ return orig_connect(dsn)
+
+ monkeypatch.setattr(psycopg3.connection, "connect", mock_connect)
+
+ psycopg3.connect(*args, **kwargs)
+ assert got_conninfo == want_conninfo
[parent: 186f4bd19fe1]