]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Test password not included in ConnectionInfo.get_parameters()
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 28 Dec 2020 03:38:51 +0000 (04:38 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 22 Apr 2021 10:57:00 +0000 (11:57 +0100)
tests/test_conninfo.py

index 5b23a05392a49020adf12848e24d40515a05fdb7..b4c42ce60722c802c3a1a7bc8e6dceb4bd48cd80 100644 (file)
@@ -2,7 +2,7 @@ import pytest
 
 import psycopg3
 from psycopg3 import ProgrammingError
-from psycopg3.conninfo import make_conninfo, conninfo_to_dict
+from psycopg3.conninfo import make_conninfo, conninfo_to_dict, ConnectionInfo
 
 snowman = "\u2603"
 
@@ -120,7 +120,7 @@ class TestConnectionInfo:
         dsn = conninfo_to_dict(dsn)
         dsn.pop("application_name", None)
 
-        monkeypatch.delenv("PGAPPNAME")
+        monkeypatch.delenv("PGAPPNAME", raising=False)
         with psycopg3.connect(**dsn) as conn:
             assert "application_name" not in conn.info.get_parameters()
 
@@ -139,3 +139,11 @@ class TestConnectionInfo:
         assert conn.info.transaction_status.name == "IDLE"
         conn.close()
         assert conn.info.transaction_status.name == "UNKNOWN"
+
+    def test_no_password(self, dsn):
+        dsn2 = make_conninfo(dsn, password="the-pass-word")
+        pgconn = psycopg3.pq.PGconn.connect_start(dsn2.encode("utf8"))
+        info = ConnectionInfo(pgconn)
+        assert info.password == "the-pass-word"
+        assert "password" not in info.get_parameters()
+        assert info.get_parameters()["dbname"] == info.dbname