From 61a551234966c01f387e5f7865cb19da079f3f4d Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 4 Jan 2017 11:24:26 -0500 Subject: [PATCH] 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 --- alembic/autogenerate/compare.py | 5 + alembic/testing/plugin/plugin_base.py | 6 +- alembic/testing/plugin/pytestplugin.py | 10 +- alembic/testing/provision.py | 9 +- alembic/testing/requirements.py | 17 +++- reap_oracle_dbs.py | 12 +-- tests/requirements.py | 16 +++ tests/test_autogen_fks.py | 129 +++++++++++++------------ tox.ini | 4 +- 9 files changed, 132 insertions(+), 76 deletions(-) diff --git a/alembic/autogenerate/compare.py b/alembic/autogenerate/compare.py index 1b721b0..c3d9452 100644 --- a/alembic/autogenerate/compare.py +++ b/alembic/autogenerate/compare.py @@ -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: diff --git a/alembic/testing/plugin/plugin_base.py b/alembic/testing/plugin/plugin_base.py index 1449b27..2b900ce 100644 --- a/alembic/testing/plugin/plugin_base.py +++ b/alembic/testing/plugin/plugin_base.py @@ -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 , " + "when -n is used") make_option("--reversetop", action="store_true", dest="reversetop", default=False, help="Use a random-ordering set implementation in the ORM " diff --git a/alembic/testing/plugin/pytestplugin.py b/alembic/testing/plugin/pytestplugin.py index 9a729b6..a55affe 100644 --- a/alembic/testing/plugin/pytestplugin.py +++ b/alembic/testing/plugin/pytestplugin.py @@ -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) diff --git a/alembic/testing/provision.py b/alembic/testing/provision.py index 9d03fb0..d1f26f4 100644 --- a/alembic/testing/provision.py +++ b/alembic/testing/provision.py @@ -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) diff --git a/alembic/testing/requirements.py b/alembic/testing/requirements.py index af8dbe1..ad4f27c 100644 --- a/alembic/testing/requirements.py +++ b/alembic/testing/requirements.py @@ -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): diff --git a/reap_oracle_dbs.py b/reap_oracle_dbs.py index ff638a0..e07c739 100644 --- a/reap_oracle_dbs.py +++ b/reap_oracle_dbs.py @@ -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]) diff --git a/tests/requirements.py b/tests/requirements.py index 491e655..987c0c7 100644 --- a/tests/requirements.py +++ b/tests/requirements.py @@ -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") diff --git a/tests/test_autogen_fks.py b/tests/test_autogen_fks.py index 7b792bd..569408b 100644 --- a/tests/test_autogen_fks.py +++ b/tests/test_autogen_fks.py @@ -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 ) diff --git a/tox.ini b/tox.ini index 25dc4f4..4291846 100644 --- a/tox.ini +++ b/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]