Skip to content

Commit 6558d58

Browse files
Update tests for DOUBLE type support in SQLAlchemy 2.0+
Update test assertions to use get_double_type() for version-compatible type checking, and remove outdated TODO comments. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 4fed588 commit 6558d58

File tree

1 file changed

+16
-29
lines changed

1 file changed

+16
-29
lines changed

tests/pyathena/sqlalchemy/test_base.py

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,14 @@
1818
from sqlalchemy.sql.schema import Column, MetaData, Table
1919
from sqlalchemy.sql.selectable import TextualSelect
2020

21-
from pyathena.sqlalchemy.types import TINYINT, AthenaArray, AthenaMap, AthenaStruct, Tinyint
21+
from pyathena.sqlalchemy.types import (
22+
TINYINT,
23+
AthenaArray,
24+
AthenaMap,
25+
AthenaStruct,
26+
Tinyint,
27+
get_double_type,
28+
)
2229
from tests.pyathena.conftest import ENV
2330

2431

@@ -507,8 +514,7 @@ def test_reflect_select(self, engine):
507514
assert isinstance(one_row_complex.c.col_int.type, types.INTEGER)
508515
assert isinstance(one_row_complex.c.col_bigint.type, types.BIGINT)
509516
assert isinstance(one_row_complex.c.col_float.type, types.FLOAT)
510-
# TODO: types.DOUBLE is not defined in SQLAlchemy 1.4.
511-
assert isinstance(one_row_complex.c.col_double.type, types.FLOAT)
517+
assert isinstance(one_row_complex.c.col_double.type, get_double_type())
512518
assert isinstance(one_row_complex.c.col_string.type, types.String)
513519
assert isinstance(one_row_complex.c.col_varchar.type, types.VARCHAR)
514520
assert one_row_complex.c.col_varchar.type.length == 10
@@ -558,8 +564,7 @@ def test_get_column_type(self, engine):
558564
assert isinstance(dialect._get_column_type("int"), types.INTEGER)
559565
assert isinstance(dialect._get_column_type("bigint"), types.BIGINT)
560566
assert isinstance(dialect._get_column_type("float"), types.FLOAT)
561-
# TODO: types.DOUBLE is not defined in SQLAlchemy 1.4.
562-
assert isinstance(dialect._get_column_type("double"), types.FLOAT)
567+
assert isinstance(dialect._get_column_type("double"), get_double_type())
563568
assert isinstance(dialect._get_column_type("real"), types.FLOAT)
564569
assert isinstance(dialect._get_column_type("string"), types.String)
565570
assert isinstance(dialect._get_column_type("varchar"), types.VARCHAR)
@@ -2145,30 +2150,12 @@ def test_numeric_type_variants(self, engine):
21452150
assert type(actual.c.col_integer2.type) in [types.INT, types.INTEGER, types.Integer]
21462151
assert type(actual.c.col_bigint.type) in [types.BIGINT, types.BigInteger]
21472152
assert type(actual.c.col_biginteger.type) in [types.BIGINT, types.BigInteger]
2148-
assert type(actual.c.col_double1.type) in [types.FLOAT, types.Float]
2149-
assert type(actual.c.col_double2.type) in [types.FLOAT, types.Float]
2150-
assert type(actual.c.col_double_precision.type) in [types.FLOAT, types.Float]
2151-
# TODO: types.DOUBLE is not defined in SQLAlchemy 1.4.
2152-
# assert type(actual.c.col_double_precision.type) in [
2153-
# types.DOUBLE,
2154-
# types.Double,
2155-
# types.DOUBLE_PRECISION,
2156-
# ]
2157-
# assert type(actual.c.col_double1.type) in [
2158-
# types.DOUBLE,
2159-
# types.Double,
2160-
# types.DOUBLE_PRECISION,
2161-
# ]
2162-
# assert type(actual.c.col_double2.type) in [
2163-
# types.DOUBLE,
2164-
# types.Double,
2165-
# types.DOUBLE_PRECISION,
2166-
# ]
2167-
# assert type(actual.c.col_double_precision.type) in [
2168-
# types.DOUBLE,
2169-
# types.Double,
2170-
# types.DOUBLE_PRECISION,
2171-
# ]
2153+
expected_double_types = [types.FLOAT, types.Float]
2154+
if hasattr(types, "DOUBLE"):
2155+
expected_double_types.extend([types.DOUBLE, types.Double, types.DOUBLE_PRECISION])
2156+
assert type(actual.c.col_double1.type) in expected_double_types
2157+
assert type(actual.c.col_double2.type) in expected_double_types
2158+
assert type(actual.c.col_double_precision.type) in expected_double_types
21722159
assert type(actual.c.col_float1.type) in [types.FLOAT, types.Float]
21732160
assert type(actual.c.col_float2.type) in [types.FLOAT, types.Float]
21742161
assert type(actual.c.col_decimal.type) in [types.DECIMAL]

0 commit comments

Comments
 (0)