From df01130bb12f789e233c79363912322463ca1591 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 22 Aug 2017 13:07:24 -0400 Subject: - repair --dbs Change-Id: I69e39d2368f50b126c369ecc35e01799fd013254 (cherry picked from commit 3fc6f32ddc5fbbf439acff42c2fdae9e910154be) --- lib/sqlalchemy/testing/plugin/plugin_base.py | 2 +- lib/sqlalchemy/testing/plugin/pytestplugin.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/testing/plugin') diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index ca8abaa8e..2aeebd319 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 377b4643c..da682ea00 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) -- cgit v1.2.1