diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-07-14 18:41:46 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-07-14 18:41:46 -0400 |
commit | c1947910621ad283219c2730d9224644e51a816c (patch) | |
tree | a2c48507540490150ea0d27d9bc73f5710d2e592 | |
parent | 4fd02761188764e3b82db36da47127a8dcfb950e (diff) | |
download | alembic-c1947910621ad283219c2730d9224644e51a816c.tar.gz |
- some additional names
- warn for name changes
-rw-r--r-- | alembic/operations/ops.py | 6 | ||||
-rw-r--r-- | alembic/util/langhelpers.py | 10 | ||||
-rw-r--r-- | 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( |