Mercurial > hg
annotate tests/test-doctest.py @ 49603:3eda36e9b3d6 stable
matcher: fix issues regex flag contained in pattern (issue6759)
Python 3.11 is now enforcing that flag must be at the beginning of the regex
This creates a serious regression for people using Python 3.11 with an hgignore
using flag in a "relre" pattern.
We now detect any flags in such pattern and "prepend" our ".*" pattern after them.
In addition, we now insert the flag in the regexp to only affect the pattern we
are rewriting. Otherwise, the regex built from the combined pattern would these
flags in the middle of it anyway.
As a side effect of this last change, we fix a bug… before this change regex
flag in a pattern would affect all combined patterns. That was bad and is not
longer the case.
The Rust code needs to be updated to fix that very bug, but we will do it in
another changeset.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 16 Nov 2022 13:05:01 +0100 |
parents | 6000f5b25c9b |
children | 40060267df22 |
rev | line source |
---|---|
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 |
6262f0215d08
tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27432
diff
changeset
|
4 import doctest |
45657
4a146cff76fa
tests: fix test-check-module-imports.t broken by D9150
Martin von Zweigbergk <martinvonz@google.com>
parents:
45633
diff
changeset
|
5 import os |
34140
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
6 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
|
7 import subprocess |
28933
6262f0215d08
tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27432
diff
changeset
|
8 import sys |
31438
82350f7fa56c
tests: allow running doctests selectively on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
31024
diff
changeset
|
9 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
10 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
|
11 |
7078
967adcf5910d
test-doctest: remove TERM env variable only if it's there
Patrick Mezard <pmezard@gmail.com>
parents:
7041
diff
changeset
|
12 if 'TERM' in os.environ: |
7184
380fda3eed13
clean up trailing spaces
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
7078
diff
changeset
|
13 del os.environ['TERM'] |
3232
394ac87f3b74
[extendedchangelog] encode/decode function
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
14 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
15 |
34140
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
16 class py3docchecker(doctest.OutputChecker): |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
17 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
|
18 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
|
19 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
|
20 # 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
|
21 # <exc.name>: <others> -> <name>: <others> |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
22 got2 = re.sub( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
23 r'''^mercurial\.\w+\.(\w+): (['"])(.*?)\2''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
24 r'\1: \3', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
25 got2, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
26 re.MULTILINE, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
27 ) |
34140
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
28 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
|
29 return any( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
30 doctest.OutputChecker.check_output(self, w, g, optionflags) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
31 for w, g in [(want, got), (want2, got2)] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
32 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
33 |
34140
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
34 |
34424
e416819d9ebb
doctest: drop hack to run py2/3 tests selectively
Yuya Nishihara <yuya@tcha.org>
parents:
34362
diff
changeset
|
35 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
|
36 __import__(name) |
10a7d2bcb81b
tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents:
19098
diff
changeset
|
37 mod = sys.modules[name] |
10a7d2bcb81b
tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents:
19098
diff
changeset
|
38 if testtarget is not None: |
10a7d2bcb81b
tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com>
parents:
19098
diff
changeset
|
39 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
|
40 |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
41 # 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
|
42 finder = doctest.DocTestFinder() |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
43 checker = None |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
44 if ispy3: |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
45 checker = py3docchecker() |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
46 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
|
47 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
|
48 runner.run(test) |
52ec9ac0303b
doctest: normalize b'', u'' and exception output on Python 3
Yuya Nishihara <yuya@tcha.org>
parents:
32485
diff
changeset
|
49 runner.summarize() |
14171
fa2b596db182
ui: add configint function and tests
Sune Foldager <cryo@cyanite.org>
parents:
13949
diff
changeset
|
50 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41359
diff
changeset
|
51 |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
52 DONT_RUN = [] |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
53 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
54 # 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
|
55 # 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
|
56 # 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
|
57 # 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
|
58 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
|
59 '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
|
60 '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
|
61 '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
|
62 '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
|
63 '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
|
64 '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
|
65 '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
|
66 '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
|
67 } |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
68 |
44656
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
69 fileset = 'set:(**.py)' |
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
70 |
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
71 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
|
72 |
45633
5a19d7c9129b
tests: skip doctests if not running from a hg repo
Joerg Sonnenberger <joerg@bec.de>
parents:
44656
diff
changeset
|
73 if not os.path.isdir(os.path.join(cwd, ".hg")): |
5a19d7c9129b
tests: skip doctests if not running from a hg repo
Joerg Sonnenberger <joerg@bec.de>
parents:
44656
diff
changeset
|
74 sys.exit(0) |
5a19d7c9129b
tests: skip doctests if not running from a hg repo
Joerg Sonnenberger <joerg@bec.de>
parents:
44656
diff
changeset
|
75 |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
76 files = subprocess.check_output( |
45942
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45657
diff
changeset
|
77 "hg files --print0 \"%s\"" % fileset, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45657
diff
changeset
|
78 shell=True, |
89a2afe31e82
formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents:
45657
diff
changeset
|
79 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
|
80 ).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
|
81 |
44656
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
82 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
|
83 cwd = os.fsencode(cwd) |
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
84 |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
85 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
|
86 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
|
87 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
|
88 continue |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
89 |
44656
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
90 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
|
91 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
|
92 continue |
15aef805619d
tests: perform grep manually in test-doctest.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44565
diff
changeset
|
93 |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
94 if ispy3: |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
95 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
|
96 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
97 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
|
98 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
99 # 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
|
100 # 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
|
101 # 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
|
102 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
|
103 'contrib.' |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
104 ): |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
105 continue |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
106 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
107 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
|
108 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
|
109 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
|
110 # 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
|
111 # 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
|
112 # 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
|
113 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
|
114 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
115 testmod(modname, **kwargs) |
44564
529cb23155bc
tests: make test-doctest.t module list match reality
Kyle Lippincott <spectral@google.com>
parents:
43780
diff
changeset
|
116 |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
117 # 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
|
118 # 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
|
119 # to testmod. |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
120 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
|
121 [ |
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.convcmd', '{}'), |
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.cvsps', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
124 ('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
|
125 ('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
|
126 ('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
|
127 ('hgext.fix', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
128 ('hgext.mq', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
129 ('mercurial.changelog', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
130 ('mercurial.cmdutil', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
131 ('mercurial.color', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
132 ('mercurial.dagparser', "{'optionflags': 4}"), |
48741
46d12f7762e4
dirstate-v2: fix infinite loop in pure packer
Raphaël Gomès <rgomes@octobus.net>
parents:
47189
diff
changeset
|
133 ('mercurial.dirstateutils.v2', '{}'), |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
134 ('mercurial.encoding', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
135 ('mercurial.fancyopts', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
136 ('mercurial.formatter', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
137 ('mercurial.hg', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
138 ('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
|
139 ('mercurial.match', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
140 ('mercurial.mdiff', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
141 ('mercurial.minirst', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
142 ('mercurial.parser', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
143 ('mercurial.patch', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
144 ('mercurial.pathutil', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
145 ('mercurial.pycompat', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
146 ('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
|
147 ('mercurial.revset', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
148 ('mercurial.revsetlang', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
149 ('mercurial.simplemerge', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
150 ('mercurial.smartset', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
151 ('mercurial.store', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
152 ('mercurial.subrepo', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
153 ('mercurial.templater', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
154 ('mercurial.ui', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
155 ('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
|
156 ('mercurial.util', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
157 ('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
|
158 ('mercurial.utils.stringutil', '{}'), |
46907
ffd3e823a7e5
urlutil: extract `url` related code from `util` into the new module
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
45942
diff
changeset
|
159 ('mercurial.utils.urlutil', '{}'), |
44565
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
160 ('tests.drawdag', '{}'), |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
161 ('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
|
162 ('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
|
163 ] |
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 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
166 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
|
167 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
|
168 |
0af56d3ee24c
tests: make test-doctest.t automatically find files to run tests on
Kyle Lippincott <spectral@google.com>
parents:
44564
diff
changeset
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 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
|
176 print(' %r' % (r,)) |