from psycopg.rows import tuple_row
from psycopg.conninfo import conninfo_to_dict, timeout_from_conninfo
-from .acompat import is_async, skip_sync, skip_async
+from .acompat import is_async, skip_sync, skip_async, sleep
from ._test_cursor import my_row_factory
from ._test_connection import tx_params, tx_params_isolation, tx_values_map
from ._test_connection import conninfo_params_timeout
conn_cls.connect("host=foo.com")
assert conninfo_to_dict(got) == {"host": "foo.com", "hostaddr": "1.1.1.1"}
+
+
+@pytest.mark.slow
+def test_right_exception_on_server_disconnect(conn):
+ conn.execute("SET SESSION idle_in_transaction_session_timeout = 100")
+ sleep(0.2)
+ with pytest.raises(e.IdleInTransactionSessionTimeout):
+ conn.execute("SELECT * from pg_tables")
from psycopg.rows import tuple_row
from psycopg.conninfo import conninfo_to_dict, timeout_from_conninfo
-from .acompat import is_async, skip_sync, skip_async
+from .acompat import is_async, skip_sync, skip_async, asleep
from ._test_cursor import my_row_factory
from ._test_connection import tx_params, tx_params_isolation, tx_values_map
from ._test_connection import conninfo_params_timeout
await aconn_cls.connect("host=foo.com")
assert conninfo_to_dict(got) == {"host": "foo.com", "hostaddr": "1.1.1.1"}
+
+
+@pytest.mark.slow
+async def test_right_exception_on_server_disconnect(aconn):
+ await aconn.execute("SET SESSION idle_in_transaction_session_timeout = 100")
+ await asleep(0.2)
+ with pytest.raises(e.IdleInTransactionSessionTimeout):
+ await aconn.execute("SELECT * from pg_tables")