From: Mike Bayer Date: Tue, 14 Jul 2015 22:41:46 +0000 (-0400) Subject: - some additional names X-Git-Tag: rel_0_8_0~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1947910621ad283219c2730d9224644e51a816c;p=thirdparty%2Fsqlalchemy%2Falembic.git - some additional names - warn for name changes --- diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py index aee2c904..08a05513 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 f25ce67f..1fb09428 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 396ddf70..36d4774f 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(