From: Daniele Varrazzo Date: Mon, 16 May 2022 17:40:11 +0000 (+0200) Subject: test: fix for Python 3.11 X-Git-Tag: 3.1~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d98fb79586fb7daccf22c5abab5dd5c4e4a28439;p=thirdparty%2Fpsycopg.git test: fix for Python 3.11 The f-string expansion of str enums has changed. All the tests in the maint-3.0 branch were already fixed; this changeset only fixes the new ones. --- diff --git a/tests/test_client_cursor.py b/tests/test_client_cursor.py index da813e774..6c94b5eef 100644 --- a/tests/test_client_cursor.py +++ b/tests/test_client_cursor.py @@ -394,12 +394,12 @@ def test_executemany_null_first(conn, fmt_in): cur = conn.cursor() cur.execute("create table testmany (a bigint, b bigint)") cur.executemany( - f"insert into testmany values (%{fmt_in}, %{fmt_in})", + f"insert into testmany values (%{fmt_in.value}, %{fmt_in.value})", [[1, None], [3, 4]], ) with pytest.raises((psycopg.DataError, psycopg.ProgrammingError)): cur.executemany( - f"insert into testmany values (%{fmt_in}, %{fmt_in})", + f"insert into testmany values (%{fmt_in.value}, %{fmt_in.value})", [[1, ""], [3, 4]], ) diff --git a/tests/test_client_cursor_async.py b/tests/test_client_cursor_async.py index fe8631803..80f14e615 100644 --- a/tests/test_client_cursor_async.py +++ b/tests/test_client_cursor_async.py @@ -387,12 +387,12 @@ async def test_executemany_null_first(aconn, fmt_in): cur = aconn.cursor() await cur.execute("create table testmany (a bigint, b bigint)") await cur.executemany( - f"insert into testmany values (%{fmt_in}, %{fmt_in})", + f"insert into testmany values (%{fmt_in.value}, %{fmt_in.value})", [[1, None], [3, 4]], ) with pytest.raises((psycopg.DataError, psycopg.ProgrammingError)): await cur.executemany( - f"insert into testmany values (%{fmt_in}, %{fmt_in})", + f"insert into testmany values (%{fmt_in.value}, %{fmt_in.value})", [[1, ""], [3, 4]], ) diff --git a/tests/types/test_enum.py b/tests/types/test_enum.py index 2c4abdacd..0284dcf53 100644 --- a/tests/types/test_enum.py +++ b/tests/types/test_enum.py @@ -94,7 +94,7 @@ def test_enum_loader(conn, enum, fmt_in, fmt_out): for label in info.labels: cur = conn.execute( - f"select %{fmt_in}::{enum.__name__}", [label], binary=fmt_out + f"select %{fmt_in.value}::{enum.__name__}", [label], binary=fmt_out ) assert cur.fetchone()[0] == enum[label] @@ -110,7 +110,9 @@ def test_enum_loader_nonascii(conn, encoding, fmt_in, fmt_out): register_enum(info, conn, enum=enum) for label in info.labels: - cur = conn.execute(f"select %{fmt_in}::{info.name}", [label], binary=fmt_out) + cur = conn.execute( + f"select %{fmt_in.value}::{info.name}", [label], binary=fmt_out + ) assert cur.fetchone()[0] == enum[label] @@ -123,7 +125,9 @@ def test_enum_loader_sqlascii(conn, enum, fmt_in, fmt_out): conn.execute("set client_encoding to sql_ascii") for label in info.labels: - cur = conn.execute(f"select %{fmt_in}::{info.name}", [label], binary=fmt_out) + cur = conn.execute( + f"select %{fmt_in.value}::{info.name}", [label], binary=fmt_out + ) assert cur.fetchone()[0] == enum[label] @@ -135,7 +139,7 @@ def test_enum_dumper(conn, enum, fmt_in, fmt_out): register_enum(info, conn, enum) for item in enum: - cur = conn.execute(f"select %{fmt_in}", [item], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}", [item], binary=fmt_out) assert cur.fetchone()[0] == item @@ -150,7 +154,7 @@ def test_enum_dumper_nonascii(conn, encoding, fmt_in, fmt_out): register_enum(info, conn, enum) for item in enum: - cur = conn.execute(f"select %{fmt_in}", [item], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}", [item], binary=fmt_out) assert cur.fetchone()[0] == item @@ -163,7 +167,7 @@ def test_enum_dumper_sqlascii(conn, enum, fmt_in, fmt_out): conn.execute("set client_encoding to sql_ascii") for item in enum: - cur = conn.execute(f"select %{fmt_in}", [item], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}", [item], binary=fmt_out) assert cur.fetchone()[0] == item @@ -177,7 +181,7 @@ def test_generic_enum_dumper(conn, enum, fmt_in, fmt_out): else: want = item.value - cur = conn.execute(f"select %{fmt_in}", [item], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}", [item], binary=fmt_out) assert cur.fetchone()[0] == want @@ -187,7 +191,7 @@ def test_generic_enum_dumper(conn, enum, fmt_in, fmt_out): def test_generic_enum_dumper_nonascii(conn, encoding, fmt_in, fmt_out): conn.execute(f"set client_encoding to {encoding}") for item in NonAsciiEnum: - cur = conn.execute(f"select %{fmt_in}", [item.value], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}", [item.value], binary=fmt_out) assert cur.fetchone()[0] == item.value @@ -197,7 +201,7 @@ def test_generic_enum_dumper_nonascii(conn, encoding, fmt_in, fmt_out): def test_generic_enum_loader(conn, enum, fmt_in, fmt_out): for label in enum.__members__: cur = conn.execute( - f"select %{fmt_in}::{enum.__name__}", [label], binary=fmt_out + f"select %{fmt_in.value}::{enum.__name__}", [label], binary=fmt_out ) want = enum[label].name if fmt_out == pq.Format.BINARY: @@ -212,7 +216,9 @@ def test_generic_enum_loader_nonascii(conn, encoding, fmt_in, fmt_out): conn.execute(f"set client_encoding to {encoding}") for label in NonAsciiEnum.__members__: - cur = conn.execute(f"select %{fmt_in}::nonasciienum", [label], binary=fmt_out) + cur = conn.execute( + f"select %{fmt_in.value}::nonasciienum", [label], binary=fmt_out + ) if fmt_out == pq.Format.TEXT: assert cur.fetchone()[0] == label else: @@ -227,7 +233,9 @@ def test_enum_array_loader(conn, fmt_in, fmt_out): register_enum(info, conn, enum) labels = list(enum.__members__) - cur = conn.execute(f"select %{fmt_in}::{info.name}[]", [labels], binary=fmt_out) + cur = conn.execute( + f"select %{fmt_in.value}::{info.name}[]", [labels], binary=fmt_out + ) assert cur.fetchone()[0] == list(enum) @@ -238,7 +246,7 @@ def test_enum_array_dumper(conn, fmt_in, fmt_out): info = EnumInfo.fetch(conn, enum.__name__) register_enum(info, conn, enum) - cur = conn.execute(f"select %{fmt_in}::text[]", [list(enum)], binary=fmt_out) + cur = conn.execute(f"select %{fmt_in.value}::text[]", [list(enum)], binary=fmt_out) assert cur.fetchone()[0] == list(enum.__members__) @@ -249,7 +257,9 @@ def test_generic_enum_array_loader(conn, fmt_in, fmt_out): info = TypeInfo.fetch(conn, enum.__name__) info.register(conn) labels = list(enum.__members__) - cur = conn.execute(f"select %{fmt_in}::{info.name}[]", [labels], binary=fmt_out) + cur = conn.execute( + f"select %{fmt_in.value}::{info.name}[]", [labels], binary=fmt_out + ) if fmt_out == pq.Format.TEXT: assert cur.fetchone()[0] == labels else: @@ -286,7 +296,7 @@ def test_remap(conn, fmt_in, fmt_out, mapping): register_enum(info, conn, StrTestEnum, mapping=mapping) for member, label in [("ONE", "FOO"), ("TWO", "BAR"), ("THREE", "BAZ")]: - cur = conn.execute(f"select %{fmt_in}::text", [StrTestEnum[member]]) + cur = conn.execute(f"select %{fmt_in.value}::text", [StrTestEnum[member]]) assert cur.fetchone()[0] == label cur = conn.execute(f"select '{label}'::puretestenum", binary=fmt_out) assert cur.fetchone()[0] is StrTestEnum[member]