Blob Blame History Raw
Change the way a deprecation warning is issued. Fixes these:

http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=98
http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=106

diff -Naur sqlalchemy-migrate-0.6.orig/migrate/versioning/script/py.py sqlalchemy-migrate-0.6/migrate/versioning/script/py.py
--- sqlalchemy-migrate-0.6.orig/migrate/versioning/script/py.py	2010-07-09 18:53:14.000000000 +0000
+++ sqlalchemy-migrate-0.6/migrate/versioning/script/py.py	2011-12-04 22:35:55.450650132 +0000
@@ -4,6 +4,7 @@
 import shutil
 import warnings
 import logging
+import inspect
 from StringIO import StringIO
 
 import migrate
@@ -136,12 +137,12 @@
         funcname = base.operations[op]
         script_func = self._func(funcname)
 
-        try:
-            script_func(engine)
-        except TypeError:
-            warnings.warn("upgrade/downgrade functions must accept engine"
-                " parameter (since version > 0.5.4)", exceptions.MigrateDeprecationWarning)
-            raise
+        # check for old way of using engine
+        if not inspect.getargspec(script_func).args:
+            raise TypeError("upgrade/downgrade functions must accept engine"
+                " parameter (since version 0.5.4)")
+
+        script_func(engine)
 
     @property
     def module(self):