def test_connect_args(monkeypatch, pgconn, args, kwargs, want): the_conninfo = None def fake_connect(conninfo): nonlocal the_conninfo the_conninfo = conninfo return pgconn yield monkeypatch.setattr(psycopg3.connection, "connect", fake_connect) psycopg3.Connection.connect(*args, **kwargs) assert conninfo_to_dict(the_conninfo) == conninfo_to_dict(want)
def test_get_params_env(self, dsn, monkeypatch): dsn = conninfo_to_dict(dsn) dsn.pop("application_name", None) monkeypatch.delenv("PGAPPNAME", raising=False) with psycopg3.connect(**dsn) as conn: assert "application_name" not in conn.info.get_parameters() monkeypatch.setenv("PGAPPNAME", "hello test") with psycopg3.connect(**dsn) as conn: assert ( conn.info.get_parameters()["application_name"] == "hello test")
def __init__(self, server_dsn): cdict = conninfo.conninfo_to_dict(server_dsn) # Get server params self.server_port = cdict.get("port", "5432") if "host" not in cdict or cdict["host"].startswith("/"): self.server_host = "localhost" else: self.server_host = cdict["host"] # Get client params self.client_host = "localhost" self.client_port = self._get_random_port() # Make a connection string to the proxy cdict["host"] = self.client_host cdict["port"] = self.client_port cdict["sslmode"] = "disable" # not supported by the proxy self.client_dsn = conninfo.make_conninfo(**cdict) # The running proxy process self.proc = None
def test_make_conninfo(conninfo, kwargs, exp): out = make_conninfo(conninfo, **kwargs) assert conninfo_to_dict(out) == conninfo_to_dict(exp)
def test_conninfo_to_dict(conninfo, exp): assert conninfo_to_dict(conninfo) == exp
def test_get_params(self, conn, dsn): info = conn.info.get_parameters() for k, v in conninfo_to_dict(dsn).items(): assert info.get(k) == v