Commits

jason kirtland  committed 28327e4

Added more unicode foreign key tests for [ticket:729]

  • Participants
  • Parent commits 485ef67

Comments (0)

Files changed (1)

File test/sql/unicode.py

 class UnicodeSchemaTest(PersistTest):
     @testing.unsupported('oracle')
     def setUpAll(self):
-        global unicode_bind, metadata, t1, t2
+        global unicode_bind, metadata, t1, t2, t3
 
         unicode_bind = utf8_engine()
 
             )
         t2 = Table(u'Unitéble2', metadata,
             Column(u'méil', Integer, primary_key=True, key="a"),
-            Column(u'\u6e2c\u8a66', Integer, ForeignKey(u'unitable1.méil'), key="b"),
+            Column(u'\u6e2c\u8a66', Integer, ForeignKey(u'unitable1.méil'),
+                   key="b"),
             )
+        t3 = Table(u'\u6e2c\u8a66', metadata,
+                   Column(u'\u6e2c\u8a66_id', Integer, primary_key=True,
+                          autoincrement=False),
+                   Column(u'unitable1_\u6e2c\u8a66', Integer,
+                          ForeignKey(u'unitable1.\u6e2c\u8a66')),
+                   Column(u'Unitéble2_b', Integer,
+                          ForeignKey(u'Unitéble2.b')),
+                   Column(u'\u6e2c\u8a66_self', Integer,
+                          ForeignKey(u'\u6e2c\u8a66.\u6e2c\u8a66_id')))
         metadata.create_all()
 
     @testing.unsupported('oracle')
     def tearDown(self):
         if metadata.tables:
+            t3.delete().execute()
             t2.delete().execute()
             t1.delete().execute()
         
     def test_insert(self):
         t1.insert().execute({u'méil':1, u'\u6e2c\u8a66':5})
         t2.insert().execute({'a':1, 'b':1})
-        
+        t3.insert().execute({u'\u6e2c\u8a66_id': 1,
+                             u'unitable1_\u6e2c\u8a66': 5,
+                             u'Unitéble2_b': 1,
+                             u'\u6e2c\u8a66_self': 1})
+
         assert t1.select().execute().fetchall() == [(1, 5)]
         assert t2.select().execute().fetchall() == [(1, 1)]
+        assert t3.select().execute().fetchall() == [(1, 5, 1, 1)]
     
     @testing.unsupported('oracle')
     def test_reflect(self):
         t1.insert().execute({u'méil':2, u'\u6e2c\u8a66':7})
         t2.insert().execute({'a':2, 'b':2})
+        t3.insert().execute({u'\u6e2c\u8a66_id': 2,
+                             u'unitable1_\u6e2c\u8a66': 7,
+                             u'Unitéble2_b': 2,
+                             u'\u6e2c\u8a66_self': 2})
 
         meta = MetaData(unicode_bind)
         tt1 = Table(t1.name, meta, autoload=True)
         tt2 = Table(t2.name, meta, autoload=True)
+        tt3 = Table(t3.name, meta, autoload=True)
 
         tt1.insert().execute({u'méil':1, u'\u6e2c\u8a66':5})
         tt2.insert().execute({u'méil':1, u'\u6e2c\u8a66':1})
+        tt3.insert().execute({u'\u6e2c\u8a66_id': 1,
+                              u'unitable1_\u6e2c\u8a66': 5,
+                              u'Unitéble2_b': 1,
+                              u'\u6e2c\u8a66_self': 1})
 
         self.assert_(tt1.select(order_by=desc(u'méil')).execute().fetchall() ==
                      [(2, 7), (1, 5)])
         self.assert_(tt2.select(order_by=desc(u'méil')).execute().fetchall() ==
                      [(2, 2), (1, 1)])
+        self.assert_(tt3.select(order_by=desc(u'\u6e2c\u8a66_id')).
+                     execute().fetchall() ==
+                     [(2, 7, 2, 2), (1, 5, 1, 1)])
         meta.drop_all()
         metadata.create_all()