]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
feat: display the pipeline status in the objects repr
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Tue, 10 May 2022 10:10:14 +0000 (12:10 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Tue, 10 May 2022 10:51:05 +0000 (12:51 +0200)
psycopg/psycopg/pq/misc.py
tests/test_pipeline.py
tests/test_pipeline_async.py

index 1822d604c3f29e456a33c6c7b2d5819acb8307f4..b035f2581d6f5ed4f45753e963c7ea08eda7fb54 100644 (file)
@@ -7,7 +7,7 @@ Various functionalities to make easier to work with the libpq.
 from typing import cast, NamedTuple, Optional, Union
 
 from .abc import PGconn, PGresult
-from ._enums import ConnStatus, TransactionStatus
+from ._enums import ConnStatus, TransactionStatus, PipelineStatus
 from .._encodings import pgconn_encoding
 
 
@@ -88,8 +88,12 @@ def connection_summary(pgconn: PGconn) -> str:
     """
     parts = []
     if pgconn.status == ConnStatus.OK:
-
+        # Put together the [STATUS]
         status = TransactionStatus(pgconn.transaction_status).name
+        if pgconn.pipeline_status:
+            status += f", pipeline={PipelineStatus(pgconn.pipeline_status).name}"
+
+        # Put together the (CONNECTION)
         if not pgconn.host.startswith(b"/"):
             parts.append(("host", pgconn.host.decode()))
         if pgconn.port != b"5432":
@@ -97,6 +101,7 @@ def connection_summary(pgconn: PGconn) -> str:
         if pgconn.user != pgconn.db:
             parts.append(("user", pgconn.user.decode()))
         parts.append(("database", pgconn.db.decode()))
+
     else:
         status = ConnStatus(pgconn.status).name
 
index b62e1653898e6feb34f8b40a4c2de23de005819c..2172c2ff213e75b2e557f73f7b22b6a9d4db9ae6 100644 (file)
@@ -16,7 +16,7 @@ pytestmark = pytest.mark.libpq(">= 14")
 def test_repr(conn):
     with conn.pipeline() as p:
         assert "psycopg.Pipeline" in repr(p)
-        assert "[IDLE]" in repr(p)
+        assert "[IDLE, pipeline=ON]" in repr(p)
 
     conn.close()
     assert "[BAD]" in repr(p)
index 234cc5edce17a7615e7795fbb96a38bcc4e9944f..82a0b5348d116cb7b62291e71541263e2667d605 100644 (file)
@@ -19,7 +19,7 @@ pytestmark = [
 async def test_repr(aconn):
     async with aconn.pipeline() as p:
         assert "psycopg.AsyncPipeline" in repr(p)
-        assert "[IDLE]" in repr(p)
+        assert "[IDLE, pipeline=ON]" in repr(p)
 
     await aconn.close()
     assert "[BAD]" in repr(p)