summaryrefslogtreecommitdiff
path: root/test/engine/reflection.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/engine/reflection.py')
-rw-r--r--test/engine/reflection.py68
1 files changed, 10 insertions, 58 deletions
diff --git a/test/engine/reflection.py b/test/engine/reflection.py
index 9ee21f799..79f12fae4 100644
--- a/test/engine/reflection.py
+++ b/test/engine/reflection.py
@@ -4,20 +4,17 @@ import pickle, StringIO
from sqlalchemy import *
import sqlalchemy.ansisql as ansisql
from sqlalchemy.exceptions import NoSuchTableError
-import sqlalchemy.databases.mysql as mysql
from testlib import *
class ReflectionTest(PersistTest):
+
+ @testing.exclude('mysql', '<', (4, 1, 1))
def testbasic(self):
use_function_defaults = testbase.db.engine.name == 'postgres' or testbase.db.engine.name == 'oracle'
use_string_defaults = use_function_defaults or testbase.db.engine.__module__.endswith('sqlite')
- if (testbase.db.engine.name == 'mysql' and
- testbase.db.dialect.get_version_info(testbase.db) < (4, 1, 1)):
- return
-
if use_function_defaults:
defval = func.current_date()
deftype = Date
@@ -94,12 +91,6 @@ class ReflectionTest(PersistTest):
users.create()
addresses.create()
try:
- # create a join from the two tables, this ensures that
- # theres a foreign key set up
- # previously, we couldnt get foreign keys out of mysql. seems like
- # we can now as long as we use InnoDB
-# if testbase.db.engine.__module__.endswith('mysql'):
- # addresses.c.remote_user_id.append_item(ForeignKey('engine_users.user_id'))
print users
print addresses
j = join(users, addresses)
@@ -228,41 +219,6 @@ class ReflectionTest(PersistTest):
finally:
meta.drop_all()
-
- @testing.supported('mysql')
- def testmysqltypes(self):
- meta1 = MetaData(testbase.db)
- table = Table(
- 'mysql_types', meta1,
- Column('id', Integer, primary_key=True),
- Column('num1', mysql.MSInteger(unsigned=True)),
- Column('text1', mysql.MSLongText),
- Column('text2', mysql.MSLongText()),
- Column('num2', mysql.MSBigInteger),
- Column('num3', mysql.MSBigInteger()),
- Column('num4', mysql.MSDouble),
- Column('num5', mysql.MSDouble()),
- Column('enum1', mysql.MSEnum('"black"', '"white"')),
- )
- try:
- table.drop(checkfirst=True)
- table.create()
- meta2 = MetaData(testbase.db)
- t2 = Table('mysql_types', meta2, autoload=True)
- assert isinstance(t2.c.num1.type, mysql.MSInteger)
- assert t2.c.num1.type.unsigned
- assert isinstance(t2.c.text1.type, mysql.MSLongText)
- assert isinstance(t2.c.text2.type, mysql.MSLongText)
- assert isinstance(t2.c.num2.type, mysql.MSBigInteger)
- assert isinstance(t2.c.num3.type, mysql.MSBigInteger)
- assert isinstance(t2.c.num4.type, mysql.MSDouble)
- assert isinstance(t2.c.num5.type, mysql.MSDouble)
- assert isinstance(t2.c.enum1.type, mysql.MSEnum)
- t2.drop()
- t2.create()
- finally:
- table.drop(checkfirst=True)
-
def test_pks_not_uniques(self):
"""test that primary key reflection not tripped up by unique indexes"""
@@ -346,14 +302,11 @@ class ReflectionTest(PersistTest):
testbase.db.execute("drop table django_admin_log")
testbase.db.execute("drop table django_content_type")
+ @testing.exclude('mysql', '<', (4, 1, 1))
def test_composite_fk(self):
"""test reflection of composite foreign keys"""
- if (testbase.db.engine.name == 'mysql' and
- testbase.db.dialect.get_version_info(testbase.db) < (4, 1, 1)):
- return
meta = MetaData(testbase.db)
-
table = Table(
'multi', meta,
Column('multi_id', Integer, primary_key=True),
@@ -389,6 +342,7 @@ class ReflectionTest(PersistTest):
finally:
meta.drop_all()
+ @testing.exclude('mysql', '<', (4, 1, 1))
def test_to_metadata(self):
meta = MetaData()
@@ -397,13 +351,13 @@ class ReflectionTest(PersistTest):
Column('name', String(40), nullable=False),
Column('description', String(30), CheckConstraint("description='hi'")),
UniqueConstraint('name'),
- mysql_engine='InnoDB'
+ test_needs_fk=True,
)
table2 = Table('othertable', meta,
Column('id', Integer, primary_key=True),
Column('myid', Integer, ForeignKey('mytable.myid')),
- mysql_engine='InnoDB'
+ test_needs_fk=True,
)
def test_to_metadata():
@@ -413,7 +367,7 @@ class ReflectionTest(PersistTest):
return (table_c, table2_c)
def test_pickle():
- meta.connect(testbase.db)
+ meta.bind = testbase.db
meta2 = pickle.loads(pickle.dumps(meta))
assert meta2.bind is None
return (meta2.tables['mytable'], meta2.tables['othertable'])
@@ -617,7 +571,7 @@ class CreateDropTest(PersistTest):
global metadata, users
metadata = MetaData()
users = Table('users', metadata,
- Column('user_id', Integer, Sequence('user_id_seq', optional=True), primary_key = True),
+ Column('user_id', Integer, Sequence('user_id_seq', optional=True), primary_key=True),
Column('user_name', String(40)),
)
@@ -625,7 +579,6 @@ class CreateDropTest(PersistTest):
Column('address_id', Integer, Sequence('address_id_seq', optional=True), primary_key = True),
Column('user_id', Integer, ForeignKey(users.c.user_id)),
Column('email_address', String(40)),
-
)
orders = Table('orders', metadata,
@@ -633,14 +586,12 @@ class CreateDropTest(PersistTest):
Column('user_id', Integer, ForeignKey(users.c.user_id)),
Column('description', String(50)),
Column('isopen', Integer),
-
)
orderitems = Table('items', metadata,
Column('item_id', INT, Sequence('items_id_seq', optional=True), primary_key = True),
Column('order_id', INT, ForeignKey("orders")),
Column('item_name', VARCHAR(50)),
-
)
def test_sorter( self ):
@@ -662,10 +613,11 @@ class CreateDropTest(PersistTest):
finally:
metadata.drop_all(bind=testbase.db)
+ @testing.exclude('mysql', '<', (4, 1, 1))
def test_createdrop(self):
metadata.create_all(bind=testbase.db)
self.assertEqual( testbase.db.has_table('items'), True )
- self.assertEqual( testbase.db.has_table('email_addresses'), True )
+ self.assertEqual( testbase.db.has_table('email_addresses'), True )
metadata.create_all(bind=testbase.db)
self.assertEqual( testbase.db.has_table('items'), True )