Mercurial > hg-git
view tests/test-doctest.py @ 1102:93cb29247d61
exchange: check for remote refs to determine if we're cloning
The exchange.pull wrapper function was checking whether any paths were
configured yet as a proxy to determine whether we're doing the initial
clone or a subsequent pull. Core hg @ bdae51a83dfb (released in 4.5) now
sets the 'default' path on the ui object before exchange.pull is called,
but we can check a bit more directly by checking if we have any remote
refs yet. This is the same as a check we do in GitHandler.fetch_pack().
author | Kevin Bullock <kbullock@ringworld.org> |
---|---|
date | Sat, 03 Feb 2018 14:54:35 -0600 |
parents | 80b8188a6eb1 |
children |
line wrap: on
line source
# this is hack to make sure no escape characters are inserted into the output from __future__ import absolute_import import doctest import os import re import sys ispy3 = (sys.version_info[0] >= 3) # add hggit/ to sys.path sys.path.insert(0, os.path.join(os.environ["TESTDIR"], "..")) if 'TERM' in os.environ: del os.environ['TERM'] class py3docchecker(doctest.OutputChecker): def check_output(self, want, got, optionflags): want2 = re.sub(r'''\bu(['"])(.*?)\1''', r'\1\2\1', want) # py2: u'' got2 = re.sub(r'''\bb(['"])(.*?)\1''', r'\1\2\1', got) # py3: b'' # py3: <exc.name>: b'<msg>' -> <name>: <msg> # <exc.name>: <others> -> <name>: <others> got2 = re.sub(r'''^hggit\.\w+\.(\w+): (['"])(.*?)\2''', r'\1: \3', got2, re.MULTILINE) got2 = re.sub(r'^hggit\.\w+\.(\w+): ', r'\1: ', got2, re.MULTILINE) return any(doctest.OutputChecker.check_output(self, w, g, optionflags) for w, g in [(want, got), (want2, got2)]) def testmod(name, optionflags=0, testtarget=None): __import__(name) mod = sys.modules[name] if testtarget is not None: mod = getattr(mod, testtarget) # minimal copy of doctest.testmod() finder = doctest.DocTestFinder() checker = None if ispy3: checker = py3docchecker() runner = doctest.DocTestRunner(checker=checker, optionflags=optionflags) for test in finder.find(mod, name): runner.run(test) runner.summarize() testmod('hggit.compat') testmod('hggit.hg2git') testmod('hggit.util') testmod('hggit.git_handler')