From: Mike Bayer Date: Tue, 22 Aug 2017 17:07:24 +0000 (-0400) Subject: - repair --dbs X-Git-Tag: rel_1_1_14~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1d78a2ce8063e4b0fa351001f56fba06d44b8ce;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - repair --dbs Change-Id: I69e39d2368f50b126c369ecc35e01799fd013254 (cherry picked from commit 3fc6f32ddc5fbbf439acff42c2fdae9e910154be) --- diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index 915c63421c..8603038826 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -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, " diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py index 377b4643c8..da682ea008 100644 --- a/lib/sqlalchemy/testing/plugin/pytestplugin.py +++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py @@ -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)