tests/hghave.py
changeset 39775 aeb2812f304d
parent 39664 e37a0fcd82c0
child 40263 8cf459d8b111
equal deleted inserted replaced
39774:543f26ece6cf 39775:aeb2812f304d
    13 
    13 
    14 checks = {
    14 checks = {
    15     "true": (lambda: True, "yak shaving"),
    15     "true": (lambda: True, "yak shaving"),
    16     "false": (lambda: False, "nail clipper"),
    16     "false": (lambda: False, "nail clipper"),
    17 }
    17 }
       
    18 
       
    19 if sys.version_info[0] >= 3:
       
    20     def _bytespath(p):
       
    21         if p is None:
       
    22             return p
       
    23         return p.encode('utf-8')
       
    24 
       
    25     def _strpath(p):
       
    26         if p is None:
       
    27             return p
       
    28         return p.decode('utf-8')
       
    29 else:
       
    30     def _bytespath(p):
       
    31         return p
       
    32 
       
    33     _strpath = _bytespath
    18 
    34 
    19 def check(name, desc):
    35 def check(name, desc):
    20     """Registers a check function for a feature."""
    36     """Registers a check function for a feature."""
    21     def decorator(func):
    37     def decorator(func):
    22         checks[name] = (func, desc)
    38         checks[name] = (func, desc)
   358     from mercurial import util
   374     from mercurial import util
   359     fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix)
   375     fh, fn = tempfile.mkstemp(dir='.', prefix=tempprefix)
   360     os.close(fh)
   376     os.close(fh)
   361     name = tempfile.mktemp(dir='.', prefix=tempprefix)
   377     name = tempfile.mktemp(dir='.', prefix=tempprefix)
   362     try:
   378     try:
   363         util.oslink(fn, name)
   379         util.oslink(_bytespath(fn), _bytespath(name))
   364         os.unlink(name)
   380         os.unlink(name)
   365         return True
   381         return True
   366     except OSError:
   382     except OSError:
   367         return False
   383         return False
   368     finally:
   384     finally: