summaryrefslogtreecommitdiff
path: root/migrate/tests/changeset/test_changeset.py
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem@us.ibm.com>2013-11-06 13:04:39 -0800
committerMatt Riedemann <mriedem@us.ibm.com>2014-02-17 07:17:31 -0800
commit85317aead6208cd6377167fc7fcc4f57491d97f9 (patch)
tree63023270cc933caf4a71197d1082b92fc56b3b75 /migrate/tests/changeset/test_changeset.py
parentd58e47f85c4ffd7bb2200acd0db8d9bc033db6be (diff)
downloadsqalchemy-migrate-85317aead6208cd6377167fc7fcc4f57491d97f9.tar.gz
Add DB2 10.5 Support
This patch adds the initial support for DB2 10.5 to migrate. It includes: 1. The dialect implementation for DB2. 2. The dialect registration with the visitor. 3. Code to parse the engine name in version.py. 4. A new dependency on ibm_db_sa in test-requirements.txt. 5. A connection string in test_db.cfg for ibm_db_sa. Part of blueprint add-db2-support Co-authored-by: Sheng Bo Hou <sbhou@cn.ibm.com> Co-authored-by: Thuy Christenson <thuy@us.ibm.com> Co-authored-by: Rahul Priyadarshi <rahul.priyadarshi@in.ibm.com> Change-Id: I745ec615487b1b06c5d1a09ea316f376d66ee4c0
Diffstat (limited to 'migrate/tests/changeset/test_changeset.py')
-rw-r--r--migrate/tests/changeset/test_changeset.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/migrate/tests/changeset/test_changeset.py b/migrate/tests/changeset/test_changeset.py
index bd7f034..8b4a6be 100644
--- a/migrate/tests/changeset/test_changeset.py
+++ b/migrate/tests/changeset/test_changeset.py
@@ -231,18 +231,18 @@ class TestAddDropColumn(fixture.DB):
col.drop()
- @fixture.usedb(not_supported='mysql')
+ @fixture.usedb(not_supported=['mysql'])
def test_check(self):
"""Can create columns with check constraint"""
- col = Column('data',
+ col = Column('foo',
Integer,
- sqlalchemy.schema.CheckConstraint('data > 4'))
+ sqlalchemy.schema.CheckConstraint('foo > 4'))
col.create(self.table)
# check if constraint was added (cannot test on objects)
- self.table.insert(values={'data': 5}).execute()
+ self.table.insert(values={'foo': 5}).execute()
try:
- self.table.insert(values={'data': 3}).execute()
+ self.table.insert(values={'foo': 3}).execute()
except (sqlalchemy.exc.IntegrityError,
sqlalchemy.exc.ProgrammingError):
pass
@@ -272,10 +272,11 @@ class TestAddDropColumn(fixture.DB):
col.drop(self.table)
# TODO: remove already attached columns with uniques, pks, fks ..
- @fixture.usedb(not_supported='postgresql')
+ @fixture.usedb(not_supported=['ibm_db_sa', 'postgresql'])
def test_drop_column_of_composite_index(self):
# NOTE(rpodolyaka): postgresql automatically drops a composite index
# if one of its columns is dropped
+ # NOTE(mriedem): DB2 does the same.
self.table_idx.c.b.drop()
reflected = Table(self.table_idx.name, MetaData(), autoload=True,
@@ -441,7 +442,7 @@ class TestAddDropColumn(fixture.DB):
# check remaining foreign key is there
self.assertEqual([['r1']],
self._actual_foreign_keys())
-
+
@fixture.usedb()
def test_drop_with_complex_foreign_keys(self):
from sqlalchemy.schema import ForeignKeyConstraint
@@ -449,11 +450,16 @@ class TestAddDropColumn(fixture.DB):
self.table.drop()
self.meta.clear()
-
+
+ # NOTE(mriedem): DB2 does not currently support unique constraints
+ # on nullable columns, so the columns that are used to create the
+ # foreign keys here need to be non-nullable for testing with DB2
+ # to work.
+
# create FK's target
reftable = Table('tmp_ref', self.meta,
Column('id', Integer, primary_key=True),
- Column('jd', Integer),
+ Column('jd', Integer, nullable=False),
UniqueConstraint('id','jd')
)
if self.engine.has_table(reftable.name):
@@ -464,8 +470,8 @@ class TestAddDropColumn(fixture.DB):
self.table = Table(
self.table_name, self.meta,
Column('id', Integer, primary_key=True),
- Column('r1', Integer),
- Column('r2', Integer),
+ Column('r1', Integer, nullable=False),
+ Column('r2', Integer, nullable=False),
ForeignKeyConstraint(['r1','r2'],
[reftable.c.id,reftable.c.jd],
name='test_fk')