tests: make test-worker.t pass on py2
I broke the py2 version in https://phab.mercurial-scm.org/D9287
because the `WorkerError.__bytes__()` (or `.__str__()`?) output was
different in py2 compared to py3. Part of the problem was that I
didn't propagate the status code that was passed in to the superclass
so it could get printed. This patch fixes that. I don't know how it
worked on py3 before this patch...
I also added the usual `__bytes__ = _tobytes` override for good
measure. It doesn't seem to be needed for tests to pass, though.
Differential Revision: https://phab.mercurial-scm.org/D9377
--- a/mercurial/error.py Mon Nov 23 11:30:43 2020 -0800
+++ b/mercurial/error.py Mon Nov 23 11:56:10 2020 -0800
@@ -137,6 +137,10 @@
def __init__(self, status_code):
self.status_code = status_code
+ # Pass status code to superclass just so it becomes part of __bytes__
+ super(WorkerError, self).__init__(status_code)
+
+ __bytes__ = _tobytes
class InterventionRequired(Hint, Exception):
--- a/tests/test-worker.t Mon Nov 23 11:30:43 2020 -0800
+++ b/tests/test-worker.t Mon Nov 23 11:56:10 2020 -0800
@@ -90,7 +90,8 @@
mercurial.error.Abort: known exception (py3 !)
Abort: known exception (no-py3 !)
raise error.WorkerError(status)
- mercurial.error.WorkerError: 255
+ WorkerError: 255 (no-py3 !)
+ mercurial.error.WorkerError: 255 (py3 !)
Traceback must be printed for unknown exceptions