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]
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]
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]
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
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
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
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
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
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:
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:
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)
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__)
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:
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]