From 2c73b1660f19bdc200636afca1094abfc4b11d8a Mon Sep 17 00:00:00 2001 From: Denis Laxalde Date: Tue, 11 Mar 2025 08:49:20 +0100 Subject: [PATCH] Move test_network_address_cast() in SpecialTypesCompileTest --- test/dialect/postgresql/test_types.py | 81 +++++++++++++++------------ 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/test/dialect/postgresql/test_types.py b/test/dialect/postgresql/test_types.py index 8437ee1720..795a897699 100644 --- a/test/dialect/postgresql/test_types.py +++ b/test/dialect/postgresql/test_types.py @@ -3447,10 +3447,51 @@ class SpecialTypesCompileTest(fixtures.TestBase, AssertsCompiledSQL): def test_bit_compile(self, type_, expected): self.assert_compile(type_, expected) + @testing.combinations( + (psycopg.dialect(),), + (psycopg2.dialect(),), + (asyncpg.dialect(),), + (pg8000.dialect(),), + argnames="dialect", + id_="n", + ) + def test_network_address_cast(self, metadata, dialect): + t = Table( + "addresses", + metadata, + Column("id", Integer, primary_key=True), + Column("addr", postgresql.INET), + Column("addr2", postgresql.MACADDR), + Column("addr3", postgresql.CIDR), + Column("addr4", postgresql.MACADDR8), + ) + stmt = select(t.c.id).where( + t.c.addr == "127.0.0.1", + t.c.addr2 == "08:00:2b:01:02:03", + t.c.addr3 == "192.168.100.128/25", + t.c.addr4 == "08:00:2b:01:02:03:04:05", + ) + param, param2, param3, param4 = { + "format": ("%s", "%s", "%s", "%s"), + "numeric_dollar": ("$1", "$2", "$3", "$4"), + "pyformat": ( + "%(addr_1)s", + "%(addr2_1)s", + "%(addr3_1)s", + "%(addr4_1)s", + ), + }[dialect.paramstyle] + expected = ( + "SELECT addresses.id FROM addresses " + f"WHERE addresses.addr = {param} " + f"AND addresses.addr2 = {param2} " + f"AND addresses.addr3 = {param3} " + f"AND addresses.addr4 = {param4}" + ) + self.assert_compile(stmt, expected, dialect=dialect) -class SpecialTypesTest( - AssertsCompiledSQL, fixtures.TablesTest, ComparesTables -): + +class SpecialTypesTest(fixtures.TablesTest, ComparesTables): """test DDL and reflection of PG-specific types""" __only_on__ = ("postgresql >= 8.3.0",) @@ -3503,40 +3544,6 @@ class SpecialTypesTest( assert t.c.precision_interval.type.precision == 3 assert t.c.bitstring.type.length == 4 - @testing.combinations( - (psycopg.dialect(),), - (psycopg2.dialect(),), - (asyncpg.dialect(),), - (pg8000.dialect(),), - argnames="dialect", - id_="n", - ) - def test_network_address_cast(self, special_types_table, dialect): - stmt = select(special_types_table.c.id).where( - special_types_table.c.addr == "127.0.0.1", - special_types_table.c.addr2 == "08:00:2b:01:02:03", - special_types_table.c.addr3 == "192.168.100.128/25", - special_types_table.c.addr4 == "08:00:2b:01:02:03:04:05", - ) - param, param2, param3, param4 = { - "format": ("%s", "%s", "%s", "%s"), - "numeric_dollar": ("$1", "$2", "$3", "$4"), - "pyformat": ( - "%(addr_1)s", - "%(addr2_1)s", - "%(addr3_1)s", - "%(addr4_1)s", - ), - }[dialect.paramstyle] - expected = ( - "SELECT sometable.id FROM sometable " - f"WHERE sometable.addr = {param} " - f"AND sometable.addr2 = {param2} " - f"AND sometable.addr3 = {param3} " - f"AND sometable.addr4 = {param4}" - ) - self.assert_compile(stmt, expected, dialect=dialect) - @testing.combinations( (postgresql.INET, "127.0.0.1"), (postgresql.CIDR, "192.168.100.128/25"), -- 2.47.3