]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Added a few tests from the psycopg2 test suite
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 2 Dec 2020 03:40:22 +0000 (03:40 +0000)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 2 Dec 2020 03:40:22 +0000 (03:40 +0000)
tests/test_conninfo.py
tests/test_module.py [new file with mode: 0644]

index 93ab89306e7d85e3b13a61e0e31650579ba354aa..2b045c1468d8e425111bba1819c73ed0d550bd57 100644 (file)
@@ -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 (file)
index 0000000..6f594d8
--- /dev/null
@@ -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