55
66from nose .tools import eq_
77from sqlalchemy .engine import create_engine
8- from sqlalchemy .schema import MetaData , Table , Column , CheckConstraint , UniqueConstraint , Index , ForeignKeyConstraint
8+ from sqlalchemy .schema import (MetaData , Table , Column , CheckConstraint , UniqueConstraint , Index , ForeignKey ,
9+ ForeignKeyConstraint )
910from sqlalchemy .types import INTEGER , SMALLINT , VARCHAR , NUMERIC
1011from sqlalchemy .dialects .postgresql .base import BIGINT , DOUBLE_PRECISION , BOOLEAN , ENUM
1112from sqlalchemy .dialects .mysql .base import TINYINT
@@ -23,7 +24,7 @@ def remove_unicode_prefixes(text):
2324 remove_unicode_prefixes = lambda text : text
2425
2526
26- class TestCodeGenerator (object ):
27+ class TestModelGenerator (object ):
2728 def setup (self ):
2829 self .metadata = MetaData (create_engine ('sqlite:///' ))
2930
@@ -868,4 +869,24 @@ def test_schema_table(self):
868869 Column('name', String),
869870 schema='testschema'
870871)
872+ """ )
873+
874+ def test_foreign_key_options (self ):
875+ Table (
876+ 'simple_items' , self .metadata ,
877+ Column ('name' , VARCHAR , ForeignKey ('simple_items.name' , deferrable = True , initially = 'DEFERRED' ))
878+ )
879+
880+ eq_ (self .generate_code (), """\
881+ # coding: utf-8
882+ from sqlalchemy import Column, ForeignKey, MetaData, String, Table
883+
884+
885+ metadata = MetaData()
886+
887+
888+ t_simple_items = Table(
889+ 'simple_items', metadata,
890+ Column('name', String, ForeignKey('simple_items.name', deferrable=True, initially='DEFERRED'))
891+ )
871892""" )
0 commit comments