mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-07 09:20:58 -04:00
177d30cc01
- Deprecated BoundMetaData- use MetaData instead - Removed DMD and BMD from documentation
80 lines
2.5 KiB
Python
80 lines
2.5 KiB
Python
# coding: utf-8
|
|
import testbase
|
|
|
|
from sqlalchemy import *
|
|
|
|
"""verrrrry basic unicode column name testing"""
|
|
|
|
class UnicodeSchemaTest(testbase.PersistTest):
|
|
def setUpAll(self):
|
|
global metadata, t1, t2
|
|
metadata = MetaData(engine=testbase.db)
|
|
t1 = Table('unitable1', metadata,
|
|
Column(u'méil', Integer, primary_key=True),
|
|
Column(u'éXXm', Integer),
|
|
|
|
)
|
|
t2 = Table(u'unitéble2', metadata,
|
|
Column(u'méil', Integer, primary_key=True, key="a"),
|
|
Column(u'éXXm', Integer, ForeignKey(u'unitable1.méil'), key="b"),
|
|
|
|
)
|
|
metadata.create_all()
|
|
|
|
def tearDown(self):
|
|
t2.delete().execute()
|
|
t1.delete().execute()
|
|
|
|
def tearDownAll(self):
|
|
metadata.drop_all()
|
|
|
|
def test_insert(self):
|
|
t1.insert().execute({u'méil':1, u'éXXm':5})
|
|
t2.insert().execute({'a':1, 'b':1})
|
|
|
|
assert t1.select().execute().fetchall() == [(1, 5)]
|
|
assert t2.select().execute().fetchall() == [(1, 1)]
|
|
|
|
def test_reflect(self):
|
|
t1.insert().execute({u'méil':2, u'éXXm':7})
|
|
t2.insert().execute({'a':2, 'b':2})
|
|
|
|
meta = MetaData(testbase.db)
|
|
tt1 = Table(t1.name, meta, autoload=True)
|
|
tt2 = Table(t2.name, meta, autoload=True)
|
|
tt1.insert().execute({u'méil':1, u'éXXm':5})
|
|
tt2.insert().execute({u'méil':1, u'éXXm':1})
|
|
|
|
assert tt1.select(order_by=desc(u'méil')).execute().fetchall() == [(2, 7), (1, 5)]
|
|
assert tt2.select(order_by=desc(u'méil')).execute().fetchall() == [(2, 2), (1, 1)]
|
|
|
|
def test_mapping(self):
|
|
# TODO: this test should be moved to the ORM tests, tests should be
|
|
# added to this module testing SQL syntax and joins, etc.
|
|
class A(object):pass
|
|
class B(object):pass
|
|
|
|
mapper(A, t1, properties={
|
|
't2s':relation(B),
|
|
'a':t1.c[u'méil'],
|
|
'b':t1.c[u'éXXm']
|
|
})
|
|
mapper(B, t2)
|
|
sess = create_session()
|
|
a1 = A()
|
|
b1 = B()
|
|
a1.t2s.append(b1)
|
|
sess.save(a1)
|
|
sess.flush()
|
|
sess.clear()
|
|
new_a1 = sess.query(A).selectone(t1.c[u'méil'] == a1.a)
|
|
assert new_a1.a == a1.a
|
|
assert new_a1.t2s[0].a == b1.a
|
|
sess.clear()
|
|
new_a1 = sess.query(A).options(eagerload('t2s')).selectone(t1.c[u'méil'] == a1.a)
|
|
assert new_a1.a == a1.a
|
|
assert new_a1.t2s[0].a == b1.a
|
|
|
|
if __name__ == '__main__':
|
|
testbase.main()
|