From: Daniele Varrazzo Date: Wed, 2 Dec 2020 03:40:22 +0000 (+0000) Subject: Added a few tests from the psycopg2 test suite X-Git-Tag: 3.0.dev0~289 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a017a45dd67f278a793ea06cd55b557ff8aea282;p=thirdparty%2Fpsycopg.git Added a few tests from the psycopg2 test suite --- diff --git a/tests/test_conninfo.py b/tests/test_conninfo.py index 93ab89306..2b045c146 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 000000000..6f594d815 --- /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