tests/mockmakedate.py
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 23 Jan 2019 17:41:46 -0800
changeset 41353 13ccb03f2145
parent 41213 704a3aa3dc0a
child 43076 2372284d9457
permissions -rw-r--r--
tests: handle string escaping/encoding on Python 3 This code was failing on Python 3 for a few reasons: 1) sys.argv is str and str doesn't have a .decode() 2) the "string_escape" encoding was renamed to "unicode_escape" It is wonky casting to bytes to str to bytes. But this is test code, so meh. I don't believe we exercise any code paths in these tests where the arguments aren't ascii. Differential Revision: https://phab.mercurial-scm.org/D5667

# mock out util.makedate() to supply testable values

from __future__ import absolute_import

import os

from mercurial import pycompat
from mercurial.utils import dateutil

def mockmakedate():
    filename = os.path.join(os.environ['TESTTMP'], 'testtime')
    try:
        with open(filename, 'rb') as timef:
            time = float(timef.read()) + 1
    except IOError:
        time = 0.0
    with open(filename, 'wb') as timef:
        timef.write(pycompat.bytestr(time))
    return (time, 0)

dateutil.makedate = mockmakedate