shelve: consistently convert exception to bytes via `stringutil.forcebytestr`
authorMatt Harbison <matt_harbison@yahoo.com>
Tue, 20 Aug 2024 22:47:11 -0400
changeset 51817 adbfbbf9963f
parent 51816 a1a94d488e14
child 51819 438f4fca513e
shelve: consistently convert exception to bytes via `stringutil.forcebytestr` The other two places in this module use this, and past experience shows that this method does a nicer job. I'm not sure why we're converting to bytes here- `KeyError` is built-in and will have str attrs, and `RepoLookupError` is a subclass of the built-in `Exception` class (not `errors.Error`, which is allegedly the baseclass for all Mercurial exceptions).
mercurial/shelve.py
--- a/mercurial/shelve.py	Tue Aug 20 22:34:51 2024 -0400
+++ b/mercurial/shelve.py	Tue Aug 20 22:47:11 2024 -0400
@@ -391,7 +391,7 @@
                 obj.activebookmark = d.get(b'activebook', b'')
             obj.interactive = d.get(b'interactive') == cls._interactive
         except (error.RepoLookupError, KeyError) as err:
-            raise error.CorruptedState(pycompat.bytestr(err))
+            raise error.CorruptedState(stringutil.forcebytestr(err))
 
         return obj