|
4 | 4 | from _pytest.fixtures import FixtureRequest
|
5 | 5 | from sqlalchemy import BIGINT, PrimaryKeyConstraint
|
6 | 6 | from sqlalchemy.dialects import postgresql
|
7 |
| -from sqlalchemy.dialects.postgresql import JSON, JSONB |
| 7 | +from sqlalchemy.dialects.postgresql import JSON, JSONB, TSVECTOR |
8 | 8 | from sqlalchemy.engine import Engine
|
9 | 9 | from sqlalchemy.schema import (
|
10 | 10 | CheckConstraint,
|
@@ -1706,3 +1706,34 @@ class TestDomainJson(Base):
|
1706 | 1706 | foo: Mapped[Optional[dict]] = mapped_column(DOMAIN('domain_json', {domain_type.__name__}(astext_type=Text(length=128)), not_null=False))
|
1707 | 1707 | """,
|
1708 | 1708 | )
|
| 1709 | + |
| 1710 | + |
| 1711 | +def test_tsvector_missing_python_type(generator: CodeGenerator) -> None: |
| 1712 | + Table( |
| 1713 | + "test_tsvector", |
| 1714 | + generator.metadata, |
| 1715 | + Column("id", BIGINT, primary_key=True), |
| 1716 | + Column("vector", TSVECTOR()), |
| 1717 | + ) |
| 1718 | + |
| 1719 | + validate_code( |
| 1720 | + generator.generate(), |
| 1721 | + """\ |
| 1722 | + from typing import Any, Optional |
| 1723 | + import typing |
| 1724 | +
|
| 1725 | + from sqlalchemy import BigInteger |
| 1726 | + from sqlalchemy.dialects.postgresql import TSVECTOR |
| 1727 | + from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column |
| 1728 | +
|
| 1729 | + class Base(DeclarativeBase): |
| 1730 | + pass |
| 1731 | +
|
| 1732 | +
|
| 1733 | + class TestTsvector(Base): |
| 1734 | + __tablename__ = 'test_tsvector' |
| 1735 | +
|
| 1736 | + id: Mapped[int] = mapped_column(BigInteger, primary_key=True) |
| 1737 | + vector: Mapped[Optional[typing.Any]] = mapped_column(TSVECTOR) |
| 1738 | + """, |
| 1739 | + ) |
0 commit comments