]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
- some additional names
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 14 Jul 2015 22:41:46 +0000 (18:41 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 14 Jul 2015 22:41:46 +0000 (18:41 -0400)
- warn for name changes

alembic/operations/ops.py
alembic/util/langhelpers.py
tests/test_op.py

index aee2c90403b027ac46bac7e2feedb81ee36864ab..08a05513e68f79474f2d45ee26af2916e75e48ab 100644 (file)
@@ -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,
index f25ce67f94ac02fa397f96bc41e8f767d4ae954c..1fb09428ccafff905cccc7fad1e333e8b6aefd2e 100644 (file)
@@ -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)
 
index 396ddf700d8b61889e80375f87a7bac42bf6c2d0..36d4774f1626bec26b34f15e12ef3aded8ce6759 100644 (file)
@@ -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(