From: Dhairya Parmar Date: Wed, 13 Sep 2023 19:04:25 +0000 (+0530) Subject: mgr/tests: test returning error status works as expected X-Git-Tag: v18.2.4~221^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7e0bd483404394bfc342da7cb3e2f1be4d201c9d;p=ceph.git mgr/tests: test returning error status works as expected Fixes: https://tracker.ceph.com/issues/62641 Signed-off-by: Dhairya Parmar Signed-off-by: John Mulligan (cherry picked from commit 4d663e4e4484977fb90beeb05f67bc71215bddb3) --- diff --git a/src/pybind/mgr/tests/test_object_format.py b/src/pybind/mgr/tests/test_object_format.py index d2fd20870e7..2e674c69838 100644 --- a/src/pybind/mgr/tests/test_object_format.py +++ b/src/pybind/mgr/tests/test_object_format.py @@ -115,12 +115,18 @@ def test_format_yaml(obj: Any, compatible: bool, yaml_val: str): class Retty: - def __init__(self, v) -> None: + def __init__(self, v, status="") -> None: self.value = v + self.status = status def mgr_return_value(self) -> int: return self.value + def mgr_status_value(self) -> str: + if self.status: + return self.status + return "NOPE" + @pytest.mark.parametrize( "obj, ret", @@ -139,6 +145,24 @@ def test_return_value(obj: Any, ret: int): assert rva.mgr_return_value() == ret +@pytest.mark.parametrize( + "obj, ret", + [ + ({}, ""), + ({"fish": "sticks"}, ""), + (-55, ""), + (Retty(0), "NOPE"), + (Retty(-55, "cake"), "cake"), + (Retty(-50, "pie"), "pie"), + ], +) +def test_return_status(obj: Any, ret: str): + rva = object_format.StatusValueAdapter(obj) + # a StatusValueAdapter instance meets the StatusValueProvider protocol. + assert object_format._is_status_value_provider(rva) + assert rva.mgr_status_value() == ret + + def test_valid_formats(): ofa = object_format.ObjectFormatAdapter({"fred": "wilma"}) vf = ofa.valid_formats()