Commit 13d4f99d by Ralf W. Grosse-Kunstleve Committed by Copybara-Service

Enforce `pybind11_abseil.status.BuildStatusNotOk()` `code` is `StatusCode`.

Changes behavior of code introduced with https://github.com/pybind/pybind11_abseil/commit/4b5def2c2cdb16e9e099ed521acb03445cf44c3f on May 31, 2022, motivated by Google-internal developments.

PiperOrigin-RevId: 477289838
parent b959683a
...@@ -367,9 +367,9 @@ void RegisterStatusBindings(module m) { ...@@ -367,9 +367,9 @@ void RegisterStatusBindings(module m) {
} }
}); });
m.def("BuildStatusNotOk", [](int code, const std::string& msg) { m.def("BuildStatusNotOk", [](absl::StatusCode code, const std::string& msg) {
return PyStatusNotOk(google::NoThrowStatus<absl::Status>( return PyStatusNotOk(google::NoThrowStatus<absl::Status>(
absl::Status(static_cast<absl::StatusCode>(code), msg))); absl::Status(code, msg)));
}); });
} }
......
...@@ -77,11 +77,9 @@ class StatusTest(parameterized.TestCase): ...@@ -77,11 +77,9 @@ class StatusTest(parameterized.TestCase):
self.assertEqual(e.message, 'Msg enum.') self.assertEqual(e.message, 'Msg enum.')
def test_build_status_not_ok_int(self): def test_build_status_not_ok_int(self):
e = status.BuildStatusNotOk( with self.assertRaises(TypeError) as cm:
int(status.StatusCode.ALREADY_EXISTS), 'Msg int.') status.BuildStatusNotOk(1, 'Msg int.') # pytype: disable=wrong-arg-types
self.assertEqual(e.status.code(), status.StatusCode.ALREADY_EXISTS) self.assertIn('incompatible function arguments', str(cm.exception))
self.assertEqual(e.code, int(status.StatusCode.ALREADY_EXISTS))
self.assertEqual(e.message, 'Msg int.')
def test_status_not_ok_status(self): def test_status_not_ok_status(self):
e = status.StatusNotOk(status.Status(status.StatusCode.CANCELLED, 'Cnclld')) e = status.StatusNotOk(status.Status(status.StatusCode.CANCELLED, 'Cnclld'))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment