# HG changeset patch # User Matt Harbison # Date 2018-09-21 04:37:03 # Node ID aeb2812f304d0f5e1308913adf3f54ff327bf9b7 # Parent 543f26ece6cf09d9ab36ff601ec53422f6b54b91 py3: fix a type error in hghave.has_hardlink test-hghave.t was failing with: feature hardlink failed: argument 1: : wrong type diff --git a/tests/hghave.py b/tests/hghave.py --- a/tests/hghave.py +++ b/tests/hghave.py @@ -16,6 +16,22 @@ checks = { "false": (lambda: False, "nail clipper"), } +if sys.version_info[0] >= 3: + def _bytespath(p): + if p is None: + return p + return p.encode('utf-8') + + def _strpath(p): + if p is None: + return p + return p.decode('utf-8') +else: + def _bytespath(p): + return p + + _strpath = _bytespath + def check(name, desc): """Registers a check function for a feature.""" def decorator(func): @@ -360,7 +376,7 @@ def has_hardlink(): os.close(fh) name = tempfile.mktemp(dir='.', prefix=tempprefix) try: - util.oslink(fn, name) + util.oslink(_bytespath(fn), _bytespath(name)) os.unlink(name) return True except OSError: