Skip to content

Commit 8121799

Browse files
committed
fix: update type hints for Mapped columns to use Optional for better clarity
1 parent 1814b27 commit 8121799

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

tests/integration/test_inheritance.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
- Concrete Table Inheritance (CTI)
77
"""
88

9-
from __future__ import annotations
10-
119
import datetime
12-
from typing import TYPE_CHECKING, Any
10+
from typing import TYPE_CHECKING, Any, Optional
1311

1412
import pytest
1513
from sqlalchemy import ForeignKey, MetaData, select
@@ -43,11 +41,11 @@ class STIEmployee(base.CommonTableAttributes, LocalBase):
4341
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
4442

4543
class STIManager(STIEmployee):
46-
department: Mapped[str | None] = mapped_column(nullable=True)
44+
department: Mapped[Optional[str]] = mapped_column(nullable=True)
4745
__mapper_args__ = {"polymorphic_identity": "manager"}
4846

4947
class STIEngineer(STIEmployee):
50-
programming_language: Mapped[str | None] = mapped_column(nullable=True)
48+
programming_language: Mapped[Optional[str]] = mapped_column(nullable=True)
5149
__mapper_args__ = {"polymorphic_identity": "engineer"}
5250

5351
# Verify all use same table (auto-generated from parent class name)
@@ -74,11 +72,11 @@ class Employee(base.CommonTableAttributes, LocalBase):
7472
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
7573

7674
class Manager(Employee):
77-
department: Mapped[str | None] = mapped_column(default=None)
75+
department: Mapped[Optional[str]] = mapped_column(default=None)
7876
__mapper_args__ = {"polymorphic_identity": "manager"}
7977

8078
class Engineer(Employee):
81-
programming_language: Mapped[str | None] = mapped_column(default=None)
79+
programming_language: Mapped[Optional[str]] = mapped_column(default=None)
8280
__mapper_args__ = {"polymorphic_identity": "engineer"}
8381

8482
# Verify columns exist in single table
@@ -104,11 +102,11 @@ class Employee(base.CommonTableAttributes, LocalBase):
104102
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
105103

106104
class Manager(Employee):
107-
department: Mapped[str | None] = mapped_column(default=None)
105+
department: Mapped[Optional[str]] = mapped_column(default=None)
108106
__mapper_args__ = {"polymorphic_identity": "manager"}
109107

110108
class SeniorManager(Manager):
111-
budget: Mapped[int | None] = mapped_column(default=None)
109+
budget: Mapped[Optional[int]] = mapped_column(default=None)
112110
__mapper_args__ = {"polymorphic_identity": "senior_manager"}
113111

114112
# All three levels use same table
@@ -137,11 +135,11 @@ class Employee(base.CommonTableAttributes, LocalBase):
137135
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
138136

139137
class Manager(Employee):
140-
department: Mapped[str | None] = mapped_column(default=None)
138+
department: Mapped[Optional[str]] = mapped_column(default=None)
141139
__mapper_args__ = {"polymorphic_identity": "manager"}
142140

143141
class Engineer(Employee):
144-
programming_language: Mapped[str | None] = mapped_column(default=None)
142+
programming_language: Mapped[Optional[str]] = mapped_column(default=None)
145143
__mapper_args__ = {"polymorphic_identity": "engineer"}
146144

147145
# Create tables
@@ -445,7 +443,7 @@ class Employee(TimestampMixin, base.CommonTableAttributes, LocalBase):
445443
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
446444

447445
class Manager(Employee):
448-
department: Mapped[str | None] = mapped_column(default=None)
446+
department: Mapped[Optional[str]] = mapped_column(default=None)
449447
__mapper_args__ = {"polymorphic_identity": "manager"}
450448

451449
# STI works despite mixin
@@ -505,7 +503,7 @@ class Employee(base.CommonTableAttributes, LocalBase):
505503
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
506504

507505
class Manager(Employee):
508-
department: Mapped[str | None] = mapped_column(default=None)
506+
department: Mapped[Optional[str]] = mapped_column(default=None)
509507
# No __mapper_args__ - should still detect STI from parent
510508

511509
# Should use parent table even without explicit polymorphic_identity
@@ -550,15 +548,15 @@ class Employee(base.CommonTableAttributes, LocalBase):
550548
__mapper_args__ = {"polymorphic_on": "type", "polymorphic_identity": "employee"}
551549

552550
class Manager(Employee):
553-
level: Mapped[int | None] = mapped_column(default=None)
551+
level: Mapped[Optional[int]] = mapped_column(default=None)
554552
__mapper_args__ = {"polymorphic_identity": "manager"}
555553

556554
class SeniorManager(Manager):
557-
budget: Mapped[int | None] = mapped_column(default=None)
555+
budget: Mapped[Optional[int]] = mapped_column(default=None)
558556
__mapper_args__ = {"polymorphic_identity": "senior_manager"}
559557

560558
class ExecutiveManager(SeniorManager):
561-
bonus: Mapped[int | None] = mapped_column(default=None)
559+
bonus: Mapped[Optional[int]] = mapped_column(default=None)
562560
__mapper_args__ = {"polymorphic_identity": "executive_manager"}
563561

564562
# All levels use same table

0 commit comments

Comments
 (0)