Get test compat for oracle
Start getting all the exclusions and conventions in place to get the autogen suites to pass against the oracle dialect Change-Id: I63b8c46311af4fc77da6baf17b628a64e9748f85
This commit is contained in:
parent
053062c2ee
commit
61a5512349
|
@ -373,6 +373,11 @@ def _compare_indexes_and_uniques(
|
|||
supports_unique_constraints = True
|
||||
except NotImplementedError:
|
||||
pass
|
||||
except TypeError:
|
||||
# number of arguments is off for the base
|
||||
# method in SQLAlchemy due to the cache decorator
|
||||
# not being present
|
||||
pass
|
||||
try:
|
||||
conn_indexes = inspector.get_indexes(tname, schema=schema)
|
||||
except NotImplementedError:
|
||||
|
|
|
@ -22,7 +22,8 @@ try:
|
|||
# honor it unless nose is imported too...
|
||||
from nose import SkipTest
|
||||
except ImportError:
|
||||
from _pytest.runner import Skipped as SkipTest
|
||||
from pytest import skip
|
||||
SkipTest = skip.Exception
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
@ -75,6 +76,9 @@ def setup_options(make_option):
|
|||
dest="low_connections",
|
||||
help="Use a low number of distinct connections - "
|
||||
"i.e. for Oracle TNS")
|
||||
make_option("--write-idents", type="string", dest="write_idents",
|
||||
help="write out generated follower idents to <file>, "
|
||||
"when -n<num> is used")
|
||||
make_option("--reversetop", action="store_true",
|
||||
dest="reversetop", default=False,
|
||||
help="Use a random-ordering set implementation in the ORM "
|
||||
|
|
|
@ -17,7 +17,7 @@ import pytest
|
|||
import argparse
|
||||
import inspect
|
||||
import collections
|
||||
import itertools
|
||||
import os
|
||||
|
||||
try:
|
||||
import xdist # noqa
|
||||
|
@ -50,6 +50,14 @@ def pytest_configure(config):
|
|||
plugin_base.configure_follower(
|
||||
config.slaveinput["follower_ident"]
|
||||
)
|
||||
if config.option.write_idents:
|
||||
with open(config.option.write_idents, "a") as file_:
|
||||
file_.write(config.slaveinput["follower_ident"] + "\n")
|
||||
else:
|
||||
if config.option.write_idents and \
|
||||
os.path.exists(config.option.write_idents):
|
||||
os.remove(config.option.write_idents)
|
||||
|
||||
|
||||
plugin_base.pre_begin(config.option)
|
||||
|
||||
|
|
|
@ -275,9 +275,14 @@ def _oracle_drop_db(cfg, eng, ident):
|
|||
_ora_drop_ignore(conn, "%s_ts2" % ident)
|
||||
|
||||
|
||||
def reap_oracle_dbs(eng):
|
||||
def reap_oracle_dbs(eng, idents_file):
|
||||
log.info("Reaping Oracle dbs...")
|
||||
with eng.connect() as conn:
|
||||
with open(idents_file) as file_:
|
||||
idents = set(line.strip() for line in file_)
|
||||
|
||||
log.info("identifiers in file: %s", ", ".join(idents))
|
||||
|
||||
to_reap = conn.execute(
|
||||
"select u.username from all_users u where username "
|
||||
"like 'TEST_%' and not exists (select username "
|
||||
|
@ -287,7 +292,7 @@ def reap_oracle_dbs(eng):
|
|||
for name in all_names:
|
||||
if name.endswith("_ts1") or name.endswith("_ts2"):
|
||||
continue
|
||||
else:
|
||||
elif name in idents:
|
||||
to_drop.add(name)
|
||||
if "%s_ts1" % name in all_names:
|
||||
to_drop.add("%s_ts1" % name)
|
||||
|
|
|
@ -19,10 +19,25 @@ class SuiteRequirements(Requirements):
|
|||
|
||||
@property
|
||||
def unique_constraint_reflection(self):
|
||||
def doesnt_have_check_uq_constraints(config):
|
||||
if not util.sqla_084:
|
||||
return True
|
||||
from sqlalchemy import inspect
|
||||
insp = inspect(config.db)
|
||||
try:
|
||||
insp.get_unique_constraints('x')
|
||||
except NotImplementedError:
|
||||
return True
|
||||
except TypeError:
|
||||
return True
|
||||
except Exception:
|
||||
pass
|
||||
return False
|
||||
|
||||
return exclusions.skip_if(
|
||||
lambda config: not util.sqla_084,
|
||||
"SQLAlchemy 0.8.4 or greater required"
|
||||
)
|
||||
) + exclusions.skip_if(doesnt_have_check_uq_constraints)
|
||||
|
||||
@property
|
||||
def foreign_key_match(self):
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
"""Drop Oracle databases that are left over from a
|
||||
"""Drop Oracle databases that are left over from a
|
||||
multiprocessing test run.
|
||||
|
||||
Currently the cx_Oracle driver seems to sometimes not release a
|
||||
|
@ -6,19 +6,19 @@ TCP connection even if close() is called, which prevents the provisioning
|
|||
system from dropping a database in-process.
|
||||
|
||||
"""
|
||||
from sqlalchemy.testing.plugin import plugin_base
|
||||
from sqlalchemy.testing import engines
|
||||
from sqlalchemy.testing import provision
|
||||
from alembic.testing.plugin import plugin_base
|
||||
from alembic.testing import engines
|
||||
from alembic.testing import provision
|
||||
import logging
|
||||
import sys
|
||||
|
||||
logging.basicConfig()
|
||||
logging.getLogger(provision.__name__).setLevel(logging.INFO)
|
||||
|
||||
plugin_base.read_config()
|
||||
oracle = plugin_base.file_config.get('db', 'oracle')
|
||||
from sqlalchemy.testing import provision
|
||||
|
||||
engine = engines.testing_engine(oracle, {})
|
||||
provision.reap_oracle_dbs(engine)
|
||||
provision.reap_oracle_dbs(engine, sys.argv[1])
|
||||
|
||||
|
||||
|
|
|
@ -54,6 +54,12 @@ class DefaultRequirements(SuiteRequirements):
|
|||
"""foreign key constraints always have names in the DB"""
|
||||
return exclusions.fails_on('sqlite')
|
||||
|
||||
@property
|
||||
def no_name_normalize(self):
|
||||
return exclusions.skip_if(
|
||||
lambda config: config.db.dialect.requires_name_normalize
|
||||
)
|
||||
|
||||
@property
|
||||
def reflects_fk_options(self):
|
||||
return exclusions.only_on([
|
||||
|
@ -71,6 +77,16 @@ class DefaultRequirements(SuiteRequirements):
|
|||
"""backend supports DEFERRABLE option in foreign keys"""
|
||||
return exclusions.only_on(['postgresql'])
|
||||
|
||||
@property
|
||||
def flexible_fk_cascades(self):
|
||||
"""target database must support ON UPDATE/DELETE..CASCADE with the
|
||||
full range of keywords (e.g. NO ACTION, etc.)"""
|
||||
|
||||
return exclusions.skip_if(
|
||||
['oracle'],
|
||||
'target backend has poor FK cascade syntax'
|
||||
)
|
||||
|
||||
@property
|
||||
def reflects_unique_constraints_unambiguously(self):
|
||||
return exclusions.fails_on("mysql")
|
||||
|
|
|
@ -17,7 +17,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('test', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
|
@ -26,10 +26,10 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('name', String(50), nullable=False),
|
||||
Column('a1', String(10), server_default="x"),
|
||||
Column('test2', String(10)),
|
||||
ForeignKeyConstraint(['test2'], ['table.test']),
|
||||
ForeignKeyConstraint(['test2'], ['some_table.test']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('test', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
|
@ -46,7 +46,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ['test2'],
|
||||
'table', ['test'],
|
||||
'some_table', ['test'],
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
||||
|
@ -54,7 +54,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -66,7 +66,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('test2', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -76,7 +76,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('name', String(50), nullable=False),
|
||||
Column('a1', String(10), server_default="x"),
|
||||
Column('test2', String(10)),
|
||||
ForeignKeyConstraint(['test2'], ['table.test']),
|
||||
ForeignKeyConstraint(['test2'], ['some_table.test']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
diffs = self._fixture(m1, m2)
|
||||
|
@ -84,14 +84,14 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "add_fk",
|
||||
"user", ["test2"],
|
||||
"table", ["test"]
|
||||
"some_table", ["test"]
|
||||
)
|
||||
|
||||
def test_no_change(self):
|
||||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -101,10 +101,10 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('name', String(50), nullable=False),
|
||||
Column('a1', String(10), server_default="x"),
|
||||
Column('test2', Integer),
|
||||
ForeignKeyConstraint(['test2'], ['table.id']),
|
||||
ForeignKeyConstraint(['test2'], ['some_table.id']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -114,7 +114,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('name', String(50), nullable=False),
|
||||
Column('a1', String(10), server_default="x"),
|
||||
Column('test2', Integer),
|
||||
ForeignKeyConstraint(['test2'], ['table.id']),
|
||||
ForeignKeyConstraint(['test2'], ['some_table.id']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
diffs = self._fixture(m1, m2)
|
||||
|
@ -125,7 +125,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -137,10 +137,10 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10)),
|
||||
Column('other_id_2', String(10)),
|
||||
ForeignKeyConstraint(['other_id_1', 'other_id_2'],
|
||||
['table.id_1', 'table.id_2']),
|
||||
['some_table.id_1', 'some_table.id_2']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB'
|
||||
|
@ -153,7 +153,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10)),
|
||||
Column('other_id_2', String(10)),
|
||||
ForeignKeyConstraint(['other_id_1', 'other_id_2'],
|
||||
['table.id_1', 'table.id_2']),
|
||||
['some_table.id_1', 'some_table.id_2']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
diffs = self._fixture(m1, m2)
|
||||
|
@ -164,7 +164,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -177,7 +177,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_2', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -189,7 +189,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10)),
|
||||
Column('other_id_2', String(10)),
|
||||
ForeignKeyConstraint(['other_id_1', 'other_id_2'],
|
||||
['table.id_1', 'table.id_2'],
|
||||
['some_table.id_1', 'some_table.id_2'],
|
||||
name='fk_test_name'),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
|
@ -198,15 +198,16 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "add_fk",
|
||||
"user", ['other_id_1', 'other_id_2'],
|
||||
'table', ['id_1', 'id_2'],
|
||||
'some_table', ['id_1', 'id_2'],
|
||||
name="fk_test_name"
|
||||
)
|
||||
|
||||
@config.requirements.no_name_normalize
|
||||
def test_remove_composite_fk(self):
|
||||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -218,11 +219,11 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10)),
|
||||
Column('other_id_2', String(10)),
|
||||
ForeignKeyConstraint(['other_id_1', 'other_id_2'],
|
||||
['table.id_1', 'table.id_2'],
|
||||
['some_table.id_1', 'some_table.id_2'],
|
||||
name='fk_test_name'),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -240,7 +241,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ['other_id_1', 'other_id_2'],
|
||||
"table", ['id_1', 'id_2'],
|
||||
"some_table", ['id_1', 'id_2'],
|
||||
conditional_name="fk_test_name"
|
||||
)
|
||||
|
||||
|
@ -248,7 +249,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -259,7 +260,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_2', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id_1', String(10), key='tid1', primary_key=True),
|
||||
Column('id_2', String(10), key='tid2', primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -269,7 +270,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10), key='oid1'),
|
||||
Column('other_id_2', String(10), key='oid2'),
|
||||
ForeignKeyConstraint(['oid1', 'oid2'],
|
||||
['table.tid1', 'table.tid2'],
|
||||
['some_table.tid1', 'some_table.tid2'],
|
||||
name='fk_test_name'),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
|
@ -278,7 +279,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "add_fk",
|
||||
"user", ['other_id_1', 'other_id_2'],
|
||||
'table', ['id_1', 'id_2'],
|
||||
'some_table', ['id_1', 'id_2'],
|
||||
name="fk_test_name"
|
||||
)
|
||||
|
||||
|
@ -286,7 +287,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id_1', String(10), primary_key=True),
|
||||
Column('id_2', String(10), primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -296,10 +297,10 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10)),
|
||||
Column('other_id_2', String(10)),
|
||||
ForeignKeyConstraint(['other_id_1', 'other_id_2'],
|
||||
['table.id_1', 'table.id_2']),
|
||||
['some_table.id_1', 'some_table.id_2']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id_1', String(10), key='tid1', primary_key=True),
|
||||
Column('id_2', String(10), key='tid2', primary_key=True),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -309,7 +310,7 @@ class AutogenerateForeignKeysTest(AutogenFixtureTest, TestBase):
|
|||
Column('other_id_1', String(10), key='oid1'),
|
||||
Column('other_id_2', String(10), key='oid2'),
|
||||
ForeignKeyConstraint(['oid1', 'oid2'],
|
||||
['table.tid1', 'table.tid2']),
|
||||
['some_table.tid1', 'some_table.tid2']),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
diffs = self._fixture(m1, m2)
|
||||
|
@ -321,6 +322,7 @@ class IncludeHooksTest(AutogenFixtureTest, TestBase):
|
|||
__backend__ = True
|
||||
__requires__ = 'fk_names',
|
||||
|
||||
@config.requirements.no_name_normalize
|
||||
def test_remove_connection_fk(self):
|
||||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
@ -399,6 +401,7 @@ class IncludeHooksTest(AutogenFixtureTest, TestBase):
|
|||
)
|
||||
eq_(len(diffs), 1)
|
||||
|
||||
@config.requirements.no_name_normalize
|
||||
def test_change_fk(self):
|
||||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
@ -473,13 +476,13 @@ class IncludeHooksTest(AutogenFixtureTest, TestBase):
|
|||
|
||||
class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
||||
__backend__ = True
|
||||
__requires__ = ('sqlalchemy_09', )
|
||||
__requires__ = ('sqlalchemy_09', 'flexible_fk_cascades')
|
||||
|
||||
def _fk_opts_fixture(self, old_opts, new_opts):
|
||||
m1 = MetaData()
|
||||
m2 = MetaData()
|
||||
|
||||
Table('table', m1,
|
||||
Table('some_table', m1,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -488,10 +491,10 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
Column('id', Integer, primary_key=True),
|
||||
Column('name', String(50), nullable=False),
|
||||
Column('tid', Integer),
|
||||
ForeignKeyConstraint(['tid'], ['table.id'], **old_opts),
|
||||
ForeignKeyConstraint(['tid'], ['some_table.id'], **old_opts),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
Table('table', m2,
|
||||
Table('some_table', m2,
|
||||
Column('id', Integer, primary_key=True),
|
||||
Column('test', String(10)),
|
||||
mysql_engine='InnoDB')
|
||||
|
@ -500,7 +503,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
Column('id', Integer, primary_key=True),
|
||||
Column('name', String(50), nullable=False),
|
||||
Column('tid', Integer),
|
||||
ForeignKeyConstraint(['tid'], ['table.id'], **new_opts),
|
||||
ForeignKeyConstraint(['tid'], ['some_table.id'], **new_opts),
|
||||
mysql_engine='InnoDB')
|
||||
|
||||
return self._fixture(m1, m2)
|
||||
|
@ -526,7 +529,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
ondelete=None,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -534,7 +537,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
ondelete="cascade"
|
||||
)
|
||||
else:
|
||||
|
@ -549,7 +552,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
ondelete="CASCADE",
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -557,7 +560,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
ondelete=None
|
||||
)
|
||||
else:
|
||||
|
@ -579,7 +582,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate=None,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -587,7 +590,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate="cascade"
|
||||
)
|
||||
else:
|
||||
|
@ -602,7 +605,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate="CASCADE",
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -610,7 +613,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate=None
|
||||
)
|
||||
else:
|
||||
|
@ -667,7 +670,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate=None,
|
||||
ondelete=mock.ANY, # MySQL reports None, PG reports RESTRICT
|
||||
conditional_name="servergenerated"
|
||||
|
@ -676,7 +679,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate=None,
|
||||
ondelete="cascade"
|
||||
)
|
||||
|
@ -695,7 +698,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate=mock.ANY, # MySQL reports None, PG reports RESTRICT
|
||||
ondelete=None,
|
||||
conditional_name="servergenerated"
|
||||
|
@ -704,7 +707,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate="cascade",
|
||||
ondelete=None
|
||||
)
|
||||
|
@ -721,7 +724,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate="CASCADE",
|
||||
ondelete="SET NULL",
|
||||
conditional_name="servergenerated"
|
||||
|
@ -730,7 +733,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
onupdate="RESTRICT",
|
||||
ondelete="RESTRICT"
|
||||
)
|
||||
|
@ -746,7 +749,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially=None,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -754,7 +757,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially="deferred"
|
||||
)
|
||||
|
||||
|
@ -767,7 +770,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially="DEFERRED",
|
||||
deferrable=True,
|
||||
conditional_name="servergenerated"
|
||||
|
@ -776,7 +779,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially=None
|
||||
)
|
||||
|
||||
|
@ -790,7 +793,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially=None,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -798,7 +801,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially="immediate",
|
||||
deferrable=True
|
||||
)
|
||||
|
@ -813,7 +816,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially=None, # immediate is the default
|
||||
deferrable=True,
|
||||
conditional_name="servergenerated"
|
||||
|
@ -822,7 +825,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
initially=None,
|
||||
deferrable=None
|
||||
)
|
||||
|
@ -866,7 +869,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
deferrable=None,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -874,7 +877,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
deferrable=True
|
||||
)
|
||||
|
||||
|
@ -887,7 +890,7 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[0], "remove_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
deferrable=True,
|
||||
conditional_name="servergenerated"
|
||||
)
|
||||
|
@ -895,6 +898,6 @@ class AutogenerateFKOptionsTest(AutogenFixtureTest, TestBase):
|
|||
self._assert_fk_diff(
|
||||
diffs[1], "add_fk",
|
||||
"user", ["tid"],
|
||||
"table", ["id"],
|
||||
"some_table", ["id"],
|
||||
deferrable=None
|
||||
)
|
||||
|
|
4
tox.ini
4
tox.ini
|
@ -36,7 +36,7 @@ setenv=
|
|||
sqlite: SQLITE=--db sqlite
|
||||
postgresql: POSTGRESQL=--db postgresql
|
||||
mysql: MYSQL=--db mysql
|
||||
oracle: ORACLE=--db oracle --low-connections
|
||||
oracle: ORACLE=--db oracle --low-connections --write-idents oracle_idents.txt
|
||||
mssql: MSSQL=--db pymssql
|
||||
|
||||
# tox as of 2.0 blocks all environment variables from the
|
||||
|
@ -46,7 +46,7 @@ passenv=ORACLE_HOME NLS_LANG
|
|||
|
||||
commands=
|
||||
{env:BASECOMMAND} {env:WORKERS} {env:SQLITE:} {env:POSTGRESQL:} {env:MYSQL:} {env:ORACLE:} {env:MSSQL:} {env:BACKENDONLY:} {env:COVERAGE:} {posargs}
|
||||
{oracle}: python reap_oracle_dbs.py
|
||||
{oracle}: python reap_oracle_dbs.py oracle_idents.txt
|
||||
|
||||
|
||||
[testenv:pep8]
|
||||
|
|
Loading…
Reference in New Issue