]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- repair --dbs
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 22 Aug 2017 17:07:24 +0000 (13:07 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 22 Aug 2017 17:07:45 +0000 (13:07 -0400)
Change-Id: I69e39d2368f50b126c369ecc35e01799fd013254
(cherry picked from commit 3fc6f32ddc5fbbf439acff42c2fdae9e910154be)

lib/sqlalchemy/testing/plugin/plugin_base.py
lib/sqlalchemy/testing/plugin/pytestplugin.py

index ca8abaa8e33e3783ace37985569579efdb74003b..2aeebd319254407bd33c10631abffc5fde66cf2a 100644 (file)
@@ -54,7 +54,7 @@ def setup_options(make_option):
     make_option("--db", action="append", type="string", dest="db",
                 help="Use prefab database uri. Multiple OK, "
                 "first one is run by default.")
-    make_option('--dbs', action='callback', callback=_list_dbs,
+    make_option('--dbs', action='callback', zeroarg_callback=_list_dbs,
                 help="List available prefab dbs")
     make_option("--dburi", action="append", type="string", dest="dburi",
                 help="Database uri.  Multiple OK, "
index 377b4643c8e2585eb0608db966eae2031472d605..da682ea008bd4df666c3695f5de18c772ff0fef5 100644 (file)
@@ -30,6 +30,26 @@ def pytest_addoption(parser):
                     callback_(option_string, values, parser)
             kw["action"] = CallableAction
 
+        zeroarg_callback = kw.pop("zeroarg_callback", None)
+        if zeroarg_callback:
+            class CallableAction(argparse.Action):
+                def __init__(self, option_strings,
+                             dest, default=False,
+                             required=False, help=None):
+                        super(CallableAction, self).__init__(
+                            option_strings=option_strings,
+                            dest=dest,
+                            nargs=0,
+                            const=True,
+                            default=default,
+                            required=required,
+                            help=help)
+
+                def __call__(self, parser, namespace,
+                             values, option_string=None):
+                    zeroarg_callback(option_string, values, parser)
+            kw["action"] = CallableAction
+
         group.addoption(name, **kw)
 
     plugin_base.setup_options(make_option)