1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
import pytest
from psycopg._cmodule import _psycopg
from psycopg.conninfo import conninfo_to_dict
@pytest.mark.parametrize(
"args, kwargs, want",
[
((), {}, ""),
(("dbname=foo",), {"user": "bar"}, "dbname=foo user=bar"),
((), {"port": 15432}, "port=15432"),
((), {"user": "foo", "dbname": None}, "user=foo"),
],
)
def test_connect(monkeypatch, dsn_env, args, kwargs, want, setpgenv):
# Check the main args passing from psycopg.connect to the conn generator
# Details of the params manipulation are in test_conninfo.
import psycopg.connection
orig_connect = psycopg.generators.connect
got_conninfo: str
def mock_connect(conninfo, *, timeout):
nonlocal got_conninfo
got_conninfo = conninfo
return orig_connect(dsn_env, timeout=timeout)
setpgenv({})
monkeypatch.setattr(psycopg.generators, "connect", mock_connect)
conn = psycopg.connect(*args, **kwargs)
assert conninfo_to_dict(got_conninfo) == conninfo_to_dict(want)
conn.close()
def test_version():
from psycopg import __version__
assert __version__.startswith("3.")
@pytest.mark.skipif(_psycopg is None, reason="C module test")
def test_version_c():
# can be psycopg_c, psycopg_binary
packagename = _psycopg.__name__.split(".")[0]
cpackage = __import__(packagename)
assert cpackage.__version__.startswith("3.")
def test_version_static(mypy):
cp = mypy.run_on_source(
"""\
from psycopg import __version__
assert __version__
"""
)
assert not cp.stdout
@pytest.mark.skipif(_psycopg is None, reason="C module test")
def test_version_c_static(mypy):
# can be psycopg_c, psycopg_binary
cpackage = _psycopg.__name__.split(".")[0]
cp = mypy.run_on_source(
f"""\
from {cpackage} import __version__
assert __version__
"""
)
assert not cp.stdout
|