tests/test-doctest.py
author Manuel Jacob <me@manueljacob.de>
Wed, 24 Jun 2020 14:44:21 +0200
changeset 44998 f2de8f31cb59
parent 44656 15aef805619d
child 45633 5a19d7c9129b
permissions -rw-r--r--
pycompat: use os.fsencode() to re-encode sys.argv Historically, the previous code made sense, as Py_EncodeLocale() and fs.fsencode() could possibly use different encodings. However, this is not the case anymore for Python 3.2, which uses the locale encoding as the filesystem encoding (this is not true for later Python versions, but see below). See https://vstinner.github.io/painful-history-python-filesystem-encoding.html for a source and more background information. Using os.fsencode() is safer, as the documentation for sys.argv says that it can be used to get the original bytes. When doing further changes, the Python developers will take care that this continues to work. One concrete case where os.fsencode() is more correct is when enabling Python's UTF-8 mode. Py_DecodeLocale() will use UTF-8 in this case. Our previous code would have encoded it using the locale encoding (which might be different), whereas os.fsencode() will encode it with UTF-8. Since we don’t claim to support the UTF-8 mode, this is not really a bug and the patch can go to the default branch. It might be a good idea to not commit this to the stable branch, as it could in theory introduce regressions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7041
b856071435f7 tests: fix readline escape characters in output for test-doctest.py
Mads Kiilerich <mads@kiilerich.com>
parents: 5525
diff changeset
     1
# this is hack to make sure no escape characters are inserted into the output
28933
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
     2
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
     3
from __future__ import absolute_import
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
     4
from __future__ import print_function
28933
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
     5
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
     6
import doctest
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
     7
import os
34140
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
     8
import re
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
     9
import subprocess
28933
6262f0215d08 tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 27432
diff changeset
    10
import sys
31438
82350f7fa56c tests: allow running doctests selectively on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 31024
diff changeset
    11
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    12
ispy3 = sys.version_info[0] >= 3
31438
82350f7fa56c tests: allow running doctests selectively on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 31024
diff changeset
    13
7078
967adcf5910d test-doctest: remove TERM env variable only if it's there
Patrick Mezard <pmezard@gmail.com>
parents: 7041
diff changeset
    14
if 'TERM' in os.environ:
7184
380fda3eed13 clean up trailing spaces
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7078
diff changeset
    15
    del os.environ['TERM']
3232
394ac87f3b74 [extendedchangelog] encode/decode function
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    16
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    17
34140
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    18
class py3docchecker(doctest.OutputChecker):
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    19
    def check_output(self, want, got, optionflags):
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    20
        want2 = re.sub(r'''\bu(['"])(.*?)\1''', r'\1\2\1', want)  # py2: u''
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    21
        got2 = re.sub(r'''\bb(['"])(.*?)\1''', r'\1\2\1', got)  # py3: b''
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    22
        # py3: <exc.name>: b'<msg>' -> <name>: <msg>
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    23
        #      <exc.name>: <others> -> <name>: <others>
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    24
        got2 = re.sub(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    25
            r'''^mercurial\.\w+\.(\w+): (['"])(.*?)\2''',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    26
            r'\1: \3',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    27
            got2,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    28
            re.MULTILINE,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    29
        )
34140
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    30
        got2 = re.sub(r'^mercurial\.\w+\.(\w+): ', r'\1: ', got2, re.MULTILINE)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    31
        return any(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    32
            doctest.OutputChecker.check_output(self, w, g, optionflags)
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    33
            for w, g in [(want, got), (want2, got2)]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    34
        )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    35
34140
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    36
34424
e416819d9ebb doctest: drop hack to run py2/3 tests selectively
Yuya Nishihara <yuya@tcha.org>
parents: 34362
diff changeset
    37
def testmod(name, optionflags=0, testtarget=None):
20047
10a7d2bcb81b tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents: 19098
diff changeset
    38
    __import__(name)
10a7d2bcb81b tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents: 19098
diff changeset
    39
    mod = sys.modules[name]
10a7d2bcb81b tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents: 19098
diff changeset
    40
    if testtarget is not None:
10a7d2bcb81b tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents: 19098
diff changeset
    41
        mod = getattr(mod, testtarget)
34140
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    42
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    43
    # minimal copy of doctest.testmod()
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    44
    finder = doctest.DocTestFinder()
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    45
    checker = None
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    46
    if ispy3:
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    47
        checker = py3docchecker()
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    48
    runner = doctest.DocTestRunner(checker=checker, optionflags=optionflags)
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    49
    for test in finder.find(mod, name):
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    50
        runner.run(test)
52ec9ac0303b doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents: 32485
diff changeset
    51
    runner.summarize()
14171
fa2b596db182 ui: add configint function and tests
Sune Foldager <cryo@cyanite.org>
parents: 13949
diff changeset
    52
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41359
diff changeset
    53
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    54
DONT_RUN = []
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    55
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    56
# Exceptions to the defaults for a given detected module. The value for each
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    57
# module name is a list of dicts that specify the kwargs to pass to testmod.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    58
# testmod is called once per item in the list, so an empty list will cause the
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    59
# module to not be tested.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    60
testmod_arg_overrides = {
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    61
    'i18n.check-translation': DONT_RUN,  # may require extra installation
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    62
    'mercurial.dagparser': [{'optionflags': doctest.NORMALIZE_WHITESPACE}],
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    63
    'mercurial.keepalive': DONT_RUN,  # >>> is an example, not a doctest
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    64
    'mercurial.posix': DONT_RUN,  # run by mercurial.platform
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    65
    'mercurial.statprof': DONT_RUN,  # >>> is an example, not a doctest
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    66
    'mercurial.util': [{}, {'testtarget': 'platform'}],  # run twice!
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    67
    'mercurial.windows': DONT_RUN,  # run by mercurial.platform
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    68
    'tests.test-url': [{'optionflags': doctest.NORMALIZE_WHITESPACE}],
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    69
}
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    70
44656
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    71
fileset = 'set:(**.py)'
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    72
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    73
cwd = os.path.dirname(os.environ["TESTDIR"])
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    74
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    75
files = subprocess.check_output(
44656
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    76
    "hg files --print0 \"%s\"" % fileset, shell=True, cwd=cwd,
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    77
).split(b'\0')
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    78
44656
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    79
if sys.version_info[0] >= 3:
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    80
    cwd = os.fsencode(cwd)
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    81
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    82
mods_tested = set()
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    83
for f in files:
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    84
    if not f:
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    85
        continue
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    86
44656
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    87
    with open(os.path.join(cwd, f), "rb") as fh:
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    88
        if not re.search(br'\n\s*>>>', fh.read()):
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    89
            continue
15aef805619d tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44565
diff changeset
    90
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    91
    if ispy3:
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    92
        f = f.decode()
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    93
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    94
    modname = f.replace('.py', '').replace('\\', '.').replace('/', '.')
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    95
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    96
    # Third-party modules aren't our responsibility to test, and the modules in
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    97
    # contrib generally do not have doctests in a good state, plus they're hard
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    98
    # to import if this test is running with py2, so we just skip both for now.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
    99
    if modname.startswith('mercurial.thirdparty.') or modname.startswith(
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   100
        'contrib.'
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   101
    ):
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   102
        continue
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   103
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   104
    for kwargs in testmod_arg_overrides.get(modname, [{}]):
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   105
        mods_tested.add((modname, '%r' % (kwargs,)))
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   106
        if modname.startswith('tests.'):
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   107
            # On py2, we can't import from tests.foo, but it works on both py2
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   108
            # and py3 with the way that PYTHONPATH is setup to import without
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   109
            # the 'tests.' prefix, so we do that.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   110
            modname = modname[len('tests.') :]
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   111
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   112
        testmod(modname, **kwargs)
44564
529cb23155bc tests: make test-doctest.t module list match reality
Kyle Lippincott <spectral@google.com>
parents: 43780
diff changeset
   113
44565
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   114
# Meta-test: let's make sure that we actually ran what we expected to, above.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   115
# Each item in the set is a 2-tuple of module name and stringified kwargs passed
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   116
# to testmod.
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   117
expected_mods_tested = set(
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   118
    [
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   119
        ('hgext.convert.convcmd', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   120
        ('hgext.convert.cvsps', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   121
        ('hgext.convert.filemap', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   122
        ('hgext.convert.p4', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   123
        ('hgext.convert.subversion', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   124
        ('hgext.fix', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   125
        ('hgext.mq', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   126
        ('mercurial.changelog', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   127
        ('mercurial.cmdutil', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   128
        ('mercurial.color', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   129
        ('mercurial.config', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   130
        ('mercurial.dagparser', "{'optionflags': 4}"),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   131
        ('mercurial.encoding', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   132
        ('mercurial.fancyopts', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   133
        ('mercurial.formatter', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   134
        ('mercurial.hg', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   135
        ('mercurial.hgweb.hgwebdir_mod', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   136
        ('mercurial.match', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   137
        ('mercurial.mdiff', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   138
        ('mercurial.minirst', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   139
        ('mercurial.parser', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   140
        ('mercurial.patch', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   141
        ('mercurial.pathutil', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   142
        ('mercurial.pycompat', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   143
        ('mercurial.revlogutils.deltas', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   144
        ('mercurial.revset', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   145
        ('mercurial.revsetlang', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   146
        ('mercurial.simplemerge', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   147
        ('mercurial.smartset', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   148
        ('mercurial.store', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   149
        ('mercurial.subrepo', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   150
        ('mercurial.templater', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   151
        ('mercurial.ui', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   152
        ('mercurial.util', "{'testtarget': 'platform'}"),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   153
        ('mercurial.util', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   154
        ('mercurial.utils.dateutil', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   155
        ('mercurial.utils.stringutil', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   156
        ('tests.drawdag', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   157
        ('tests.test-run-tests', '{}'),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   158
        ('tests.test-url', "{'optionflags': 4}"),
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   159
    ]
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   160
)
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   161
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   162
unexpectedly_run = mods_tested.difference(expected_mods_tested)
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   163
not_run = expected_mods_tested.difference(mods_tested)
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   164
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   165
if unexpectedly_run:
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   166
    print('Unexpectedly ran (probably need to add to list):')
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   167
    for r in sorted(unexpectedly_run):
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   168
        print('  %r' % (r,))
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   169
if not_run:
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   170
    print('Expected to run, but was not run (doctest removed?):')
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   171
    for r in sorted(not_run):
0af56d3ee24c tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents: 44564
diff changeset
   172
        print('  %r' % (r,))