44
55import pytest
66from _pytest .fixtures import FixtureRequest
7+ from sqlalchemy import TypeDecorator
78from sqlalchemy .dialects import mysql , postgresql
89from sqlalchemy .engine import Engine
910from sqlalchemy .schema import (
1819 UniqueConstraint ,
1920)
2021from sqlalchemy .sql .expression import text
21- from sqlalchemy .sql .sqltypes import NullType
22+ from sqlalchemy .sql .sqltypes import DateTime , NullType
2223from sqlalchemy .types import INTEGER , NUMERIC , SMALLINT , VARCHAR , Text
2324
2425from sqlacodegen .generators import CodeGenerator , TablesGenerator
2526
2627from .conftest import validate_code
2728
2829
30+ # This needs to be uppercased to trigger #315
31+ class TIMESTAMP_DECORATOR (TypeDecorator [DateTime ]):
32+ impl = DateTime
33+
34+
2935@pytest .fixture
3036def generator (
3137 request : FixtureRequest , metadata : MetaData , engine : Engine
@@ -45,12 +51,15 @@ def test_fancy_coltypes(generator: CodeGenerator) -> None:
4551 Column ("bool" , postgresql .BOOLEAN ),
4652 Column ("vector" , VECTOR (3 )),
4753 Column ("number" , NUMERIC (10 , asdecimal = False )),
54+ Column ("timestamp" , TIMESTAMP_DECORATOR ()),
4855 schema = "someschema" ,
4956 )
5057
5158 validate_code (
5259 generator .generate (),
5360 """\
61+ from tests.test_generator_tables import TIMESTAMP_DECORATOR
62+
5463 from pgvector.sqlalchemy.vector import VECTOR
5564 from sqlalchemy import Boolean, Column, Enum, MetaData, Numeric, Table
5665
@@ -63,6 +72,7 @@ def test_fancy_coltypes(generator: CodeGenerator) -> None:
6372 Column('bool', Boolean),
6473 Column('vector', VECTOR(3)),
6574 Column('number', Numeric(10, asdecimal=False)),
75+ Column('timestamp', TIMESTAMP_DECORATOR),
6676 schema='someschema'
6777 )
6878 """ ,
0 commit comments