@@ -2728,13 +2728,11 @@ class Simple:
27282728 """ ,
27292729 )
27302730
2731- @pytest .mark .xfail
27322731 def test_constraints_with_default_names (self , generator : CodeGenerator ) -> None :
27332732 generator .metadata .naming_convention = {
27342733 "uq" : "UNIQUE_%(table_name)s_%(column_0_N_name)s" ,
27352734 "ck" : "CHECK_%(table_name)s" ,
2736- "fk" : "FOREIGN_%(table_name)s_%(column_0_key)s"
2737- "_%(referred_table_name)s_%(referred_column_0_label)s" ,
2735+ "fk" : "FOREIGN_%(table_name)s_%(column_0_key)s_%(referred_table_name)s" ,
27382736 "pk" : "PRIMARY_%(table_name)s_%(column_0N_name)s" ,
27392737 }
27402738
@@ -2749,7 +2747,7 @@ def test_constraints_with_default_names(self, generator: CodeGenerator) -> None:
27492747 ForeignKeyConstraint (
27502748 ["container_id" ],
27512749 ["containers.id" ],
2752- name = "FOREIGN_items_container_id_containers_id " ,
2750+ name = "FOREIGN_items_container_id_containers " ,
27532751 ),
27542752 )
27552753 Table (
@@ -2765,49 +2763,53 @@ def test_constraints_with_default_names(self, generator: CodeGenerator) -> None:
27652763 validate_code (
27662764 generator .generate (),
27672765 """\
2768- from __future__ import annotations
2769- from dataclasses import dataclass, field
2770- from typing import List, Optional
2771- from sqlalchemy import CheckConstraint, Column, ForeignKey, \
2766+ from __future__ import annotations
2767+
2768+ from dataclasses import dataclass, field
2769+ from typing import List, Optional
2770+
2771+ from sqlalchemy import CheckConstraint, Column, ForeignKey, \
27722772 Integer, String, UniqueConstraint
2773- from sqlalchemy.orm import registry, relationship
2774- metadata = MetaData(
2775- naming_convention={
2776- "uq": "UNIQUE_%(table_name)s_%(column_0_N_name)s",
2777- "ck": "CHECK_%(table_name)s",
2778- "fk": "FOREIGN_%(table_name)s_%(column_0_key)s_\
2779- %(referred_table_name)s_%(referred_column_0_label)s",
2780- "pk": "PRIMARY_%(table_name)s_%(column_0N_name)s",
2781- }
2782- )
2783- mapper_registry = registry(metadata=metadata)
2784- @mapper_registry.mapped
2785- @dataclass
2786- class Containers:
2787- __tablename__ = 'containers'
2788- __table_args__ = (
2789- CheckConstraint('id > 0'),
2790- UniqueConstraint('id', 'name')
2791- )
2792- __sa_dataclass_metadata_key__ = 'sa'
2793- id: int = field(init=False, metadata={'sa': \
2794- Column(Integer, primary_key=True)})
2795- name: Optional[str] = field(default=None, metadata={'sa': \
2796- Column(String)})
2797- items: List[Items] = field(default_factory=list, metadata={'sa': \
2773+ from sqlalchemy.orm import registry, relationship
2774+
2775+ mapper_registry = registry()
2776+ mapper_registry.metadata.naming_convention = {'ck': 'CHECK_%(table_name)s',
2777+ 'fk': 'FOREIGN_%(table_name)s_%(column_0_key)s_%(referred_table_name)s',
2778+ 'pk': 'PRIMARY_%(table_name)s_%(column_0N_name)s',
2779+ 'uq': 'UNIQUE_%(table_name)s_%(column_0_N_name)s'}
2780+
2781+
2782+ @mapper_registry.mapped
2783+ @dataclass
2784+ class Containers:
2785+ __tablename__ = 'containers'
2786+ __table_args__ = (
2787+ CheckConstraint('id > 0'),
2788+ UniqueConstraint('id', 'name')
2789+ )
2790+ __sa_dataclass_metadata_key__ = 'sa'
2791+
2792+ id: int = field(init=False, metadata={'sa': Column(Integer, primary_key=True)})
2793+ name: Optional[str] = field(default=None, metadata={'sa': Column(String)})
2794+
2795+ items: List[Items] = field(default_factory=list, metadata={'sa': \
27982796 relationship('Items', back_populates='container')})
2799- @mapper_registry.mapped
2800- @dataclass
2801- class Items:
2802- __tablename__ = 'items'
2803- __sa_dataclass_metadata_key__ = 'sa'
2804- id: int = field(init=False, metadata={'sa': \
2797+
2798+
2799+ @mapper_registry.mapped
2800+ @dataclass
2801+ class Items:
2802+ __tablename__ = 'items'
2803+ __sa_dataclass_metadata_key__ = 'sa'
2804+
2805+ id: int = field(init=False, metadata={'sa': \
28052806 Column(Integer, primary_key=True, nullable=False, unique=True)})
2806- name: str = field(init=False, metadata={'sa': \
2807+ name: str = field(init=False, metadata={'sa': \
28072808 Column(String, primary_key=True, nullable=False)})
2808- container_id: Optional[int] = field(default=None, metadata={'sa': \
2809+ container_id: Optional[int] = field(default=None, metadata={'sa': \
28092810 Column(ForeignKey('containers.id'))})
2810- container: Optional[Containers] = field(default=None, metadata={'sa': \
2811+
2812+ container: Optional[Containers] = field(default=None, metadata={'sa': \
28112813 relationship('Containers', back_populates='items')})
28122814 """ ,
28132815 )
0 commit comments