From c1947910621ad283219c2730d9224644e51a816c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 14 Jul 2015 18:41:46 -0400 Subject: - some additional names - warn for name changes --- alembic/operations/ops.py | 6 +++++- alembic/util/langhelpers.py | 10 ++++++++-- tests/test_op.py | 17 +++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py index aee2c90..08a0551 100644 --- a/alembic/operations/ops.py +++ b/alembic/operations/ops.py @@ -391,7 +391,11 @@ class CreateForeignKeyOp(AddConstraintOp): **self.kw) @classmethod - @util._with_legacy_names([('name', 'constraint_name')]) + @util._with_legacy_names([ + ('name', 'constraint_name'), + ('source', 'source_table'), + ('referent', 'referent_table'), + ]) def create_foreign_key(cls, operations, constraint_name, source_table, referent_table, local_cols, remote_cols, onupdate=None, ondelete=None, diff --git a/alembic/util/langhelpers.py b/alembic/util/langhelpers.py index f25ce67..1fb0942 100644 --- a/alembic/util/langhelpers.py +++ b/alembic/util/langhelpers.py @@ -104,17 +104,23 @@ class ModuleClsProxy(with_metaclass(_ModuleClsMeta)): translations = getattr(fn, "_legacy_translations", []) if translations: outer_args = inner_args = "*args, **kw" - translate_str = "args, kw = _translate(%r, %r, args, kw)" % ( + translate_str = "args, kw = _translate(%r, %r, %r, args, kw)" % ( + fn.__name__, tuple(spec), translations ) - def translate(spec, translations, args, kw): + def translate(fn_name, spec, translations, args, kw): return_kw = {} return_args = [] for oldname, newname in translations: if oldname in kw: + warnings.warn( + "Argument %r is now named %r " + "for method %s()." % ( + oldname, newname, fn_name + )) return_kw[newname] = kw.pop(oldname) return_kw.update(kw) diff --git a/tests/test_op.py b/tests/test_op.py index 396ddf7..36d4774 100644 --- a/tests/test_op.py +++ b/tests/test_op.py @@ -596,6 +596,23 @@ class OpTest(TestBase): "ALTER TABLE t1 ADD CONSTRAINT uk_test UNIQUE (foo, bar)" ) + def test_add_foreign_key_legacy_kwarg(self): + context = op_fixture() + + op.create_foreign_key( + name='some_fk', + source='some_table', + referent='referred_table', + local_cols=['a', 'b'], + remote_cols=['c', 'd'], + ondelete='CASCADE' + ) + context.assert_( + "ALTER TABLE some_table ADD CONSTRAINT some_fk " + "FOREIGN KEY(a, b) REFERENCES referred_table (c, d) " + "ON DELETE CASCADE" + ) + def test_add_unique_constraint_legacy_kwarg(self): context = op_fixture() op.create_unique_constraint( -- cgit v1.2.1