from threading import Thread
import psycopg3
-from psycopg3 import Connection, Notify
from psycopg3 import encodings
+from psycopg3 import Connection, Notify
from psycopg3.errors import UndefinedTable
from psycopg3.conninfo import conninfo_to_dict
("utf_8", "UTF8", "utf-8"),
("eucjp", "EUC_JP", "euc_jp"),
("euc-jp", "EUC_JP", "euc_jp"),
+ ("latin9", "LATIN9", "iso8859-15"),
],
)
def test_normalize_encoding(conn, enc, out, codec):
import psycopg3
from psycopg3 import encodings
-from psycopg3 import AsyncConnection
+from psycopg3 import AsyncConnection, Notify
from psycopg3.errors import UndefinedTable
from psycopg3.conninfo import conninfo_to_dict
async def test_set_encoding_unsupported(aconn):
- await aconn.set_client_encoding("EUC_TW")
cur = await aconn.cursor()
+ await cur.execute("set client_encoding to EUC_TW")
with pytest.raises(psycopg3.NotSupportedError):
- await cur.execute("select 1")
+ await cur.execute("select 'x'")
async def test_set_encoding_bad(aconn):
- with pytest.raises(psycopg3.DatabaseError):
+ with pytest.raises(LookupError):
await aconn.set_client_encoding("WAT")
assert len(nots1) == 1
assert len(nots2) == 2
n = nots2[1]
+ assert isinstance(n, Notify)
assert n.channel == "foo"
assert n.payload == "n2"
assert n.pid == aconn.pgconn.backend_pid
assert cur.query is None
assert cur.params is None
- cur.execute("select %s, %s", [1, None])
- assert cur.query == b"select $1, $2"
+ cur.execute("select %s, %s::text", [1, None])
+ assert cur.query == b"select $1, $2::text"
assert cur.params == [b"1", None]
cur.execute("select 1")
assert cur.query is None
assert cur.params is None
- await cur.execute("select %s, %s", [1, None])
- assert cur.query == b"select $1, $2"
+ await cur.execute("select %s, %s::text", [1, None])
+ assert cur.query == b"select $1, $2::text"
assert cur.params == [b"1", None]
await cur.execute("select 1")