rust-status: properly translate OSError to Python
This is probably never going to be called after the next few patches, but we
might as well make sure this is done correctly for the future rewrite.
Differential Revision: https://phab.mercurial-scm.org/D9319
--- a/rust/hg-cpython/src/dirstate/status.rs Mon Nov 16 21:28:42 2020 -0800
+++ b/rust/hg-cpython/src/dirstate/status.rs Mon Nov 16 16:36:00 2020 +0100
@@ -10,6 +10,7 @@
//! `rustext.dirstate.status`.
use crate::{dirstate::DirstateMap, exceptions::FallbackError};
+use cpython::exc::OSError;
use cpython::{
exc::ValueError, ObjectProtocol, PyBytes, PyErr, PyList, PyObject,
PyResult, PyTuple, Python, PythonObject, ToPyObject,
@@ -89,6 +90,7 @@
PyErr::new::<FallbackError, _>(py, &as_string)
}
+ StatusError::IO(e) => PyErr::new::<OSError, _>(py, e.to_string()),
e => PyErr::new::<ValueError, _>(py, e.to_string()),
}
}