From: John Mulligan Date: Mon, 23 May 2022 19:36:35 +0000 (-0400) Subject: pybind/mgr: add test cases for ErrorResponseHandler decorator X-Git-Tag: v17.2.6~497^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b9dc222d867ffcef7e58ef9b17d6035c2a13fed;p=ceph.git pybind/mgr: add test cases for ErrorResponseHandler decorator Signed-off-by: John Mulligan (cherry picked from commit dfd22136608f02d6fb11c1e4032c17125ecc8423) --- diff --git a/src/pybind/mgr/tests/test_object_format.py b/src/pybind/mgr/tests/test_object_format.py index b09df8ce3847..6a1215fac38e 100644 --- a/src/pybind/mgr/tests/test_object_format.py +++ b/src/pybind/mgr/tests/test_object_format.py @@ -263,6 +263,13 @@ class DecoDemo: def gamma_three(self, size: int = 0) -> Dict[str, Any]: return {"name": "funnystuff", "size": size} + @CLICommand("z_err", perm="rw") + @object_format.ErrorResponseHandler() + def z_err(self, name: str = "default") -> Tuple[int, str, str]: + if "z" in name: + raise object_format.ErrorResponse(f"{name} bad") + return 0, name, "" + @pytest.mark.parametrize( "prefix, args, response", @@ -386,9 +393,29 @@ class DecoDemo: "Unknown format name: toml", ), ), + # --- + ( + "z_err", + {"name": "foobar"}, + ( + 0, + "foobar", + "", + ), + ), + # --- + ( + "z_err", + {"name": "zamboni"}, + ( + -22, + "", + "zamboni bad", + ), + ), ], ) -def test_cli_command_responder(prefix, args, response): +def test_cli_with_decorators(prefix, args, response): dd = DecoDemo() assert CLICommand.COMMANDS[prefix].call(dd, args, None) == response