Mercurial > hg
changeset 43856:229215fc1c1c
fuzz: fix mpatch_corpus to not have an overridden __repr__ on py3
Differential Revision: https://phab.mercurial-scm.org/D7606
author | Kyle Lippincott <spectral@google.com> |
---|---|
date | Wed, 11 Dec 2019 15:23:54 -0800 |
parents | 612951e08278 |
children | 74ec6ca0eb75 |
files | contrib/fuzz/mpatch_corpus.py |
diffstat | 1 files changed, 18 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/fuzz/mpatch_corpus.py Wed Dec 11 10:00:24 2019 -0800 +++ b/contrib/fuzz/mpatch_corpus.py Wed Dec 11 15:23:54 2019 -0800 @@ -2,6 +2,7 @@ import argparse import struct +import sys import zipfile from mercurial import ( @@ -14,16 +15,26 @@ args = ap.parse_args() -class deltafrag(object): +if sys.version_info[0] < 3: + + class py2reprhack(object): + def __repr__(self): + """Py2 calls __repr__ for `bytes(foo)`, forward to __bytes__""" + return self.__bytes__() + + +else: + + class py2reprhack(object): + """Not needed on py3.""" + + +class deltafrag(py2reprhack): def __init__(self, start, end, data): self.start = start self.end = end self.data = data - def __repr__(self): - # py2 calls __repr__ when you do `bytes(foo)` - return self.__bytes__() - def __bytes__(self): return ( struct.pack(">lll", self.start, self.end, len(self.data)) @@ -31,27 +42,19 @@ ) -class delta(object): +class delta(py2reprhack): def __init__(self, frags): self.frags = frags - def __repr__(self): - # py2 calls __repr__ when you do `bytes(foo)` - return self.__bytes__() - def __bytes__(self): return b''.join(bytes(f) for f in self.frags) -class corpus(object): +class corpus(py2reprhack): def __init__(self, base, deltas): self.base = base self.deltas = deltas - def __repr__(self): - # py2 calls __repr__ when you do `bytes(foo)` - return self.__bytes__() - def __bytes__(self): deltas = [bytes(d) for d in self.deltas] parts = (