Mercurial > evolve
annotate tests/test-doctest.py @ 6935:954d7ea5cd67 stable tip
stack: when stack base is obsolete, pick any successor, even if at random
There are situations when s0 is obsolete and we also cannot pick just one
successor for it to use in stack. In such a case, let's pick the "latest"
successor from the first set.
We're assuming that obsutil.successorssets() returns data in the same order (it
should, since it makes sure to sort data internally). Keeping that in mind,
while the successor picked for s0 by this code is not based on any sort of
sophisticated logic, it should nonetheless be the same every time.
This patch is probably not going to completely break anything that was
previously working fine, because the previous behavior was to just abort with
an exception.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 16 Nov 2024 17:01:02 +0400 |
parents | 16fd24f6cf22 |
children |
rev | line source |
---|---|
6235
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
1 # this is hack to make sure no escape characters are inserted into the output |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
2 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
3 from __future__ import absolute_import |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
4 from __future__ import print_function |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
5 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
6 import doctest |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
7 import os |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
8 import re |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
9 import subprocess |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
10 import sys |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
11 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
12 ispy3 = sys.version_info[0] >= 3 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
13 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
14 if 'TERM' in os.environ: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
15 del os.environ['TERM'] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
16 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
17 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
18 class py3docchecker(doctest.OutputChecker): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
19 def check_output(self, want, got, optionflags): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
20 want2 = re.sub(r'''\bu(['"])(.*?)\1''', r'\1\2\1', want) # py2: u'' |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
21 got2 = re.sub(r'''\bb(['"])(.*?)\1''', r'\1\2\1', got) # py3: b'' |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
22 # py3: <exc.name>: b'<msg>' -> <name>: <msg> |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
23 # <exc.name>: <others> -> <name>: <others> |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
24 # TODO: more output massaging |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
25 return any( |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
26 doctest.OutputChecker.check_output(self, w, g, optionflags) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
27 for w, g in [(want, got), (want2, got2)] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
28 ) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
29 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
30 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
31 def testmod(name, optionflags=0, testtarget=None): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
32 __import__(name) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
33 mod = sys.modules[name] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
34 if testtarget is not None: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
35 mod = getattr(mod, testtarget) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
36 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
37 # minimal copy of doctest.testmod() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
38 finder = doctest.DocTestFinder() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
39 checker = None |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
40 if ispy3: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
41 checker = py3docchecker() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
42 runner = doctest.DocTestRunner(checker=checker, optionflags=optionflags) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
43 for test in finder.find(mod, name): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
44 runner.run(test) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
45 runner.summarize() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
46 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
47 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
48 DONT_RUN = [] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
49 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
50 # Exceptions to the defaults for a given detected module. The value for each |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
51 # module name is a list of dicts that specify the kwargs to pass to testmod. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
52 # testmod is called once per item in the list, so an empty list will cause the |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
53 # module to not be tested. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
54 testmod_arg_overrides = { |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
55 # 'mercurial.statprof': DONT_RUN, # >>> is an example, not a doctest |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
56 } |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
57 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
58 fileset = 'set:(**.py)' |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
59 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
60 cwd = os.path.dirname(os.environ["TESTDIR"]) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
61 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
62 # run-tests.py makes an installation of core Mercurial in /tmp/, but evolve is |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
63 # not installed together with it, and evolve modules need to be imported to run |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
64 # doctests. We insert it at the start to make sure wider install of evolve does not take priority. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
65 sys.path.insert(0, cwd) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
66 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
67 if not os.path.isdir(os.path.join(cwd, ".hg")): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
68 sys.exit(0) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
69 |
6864
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
70 files_cmd = 'hg files --print0 "%s"' % fileset |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
71 |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
72 # we prefer system hg for reading the repository, unless we're on python2 |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
73 # because then we assume that system hg is too old (this is not always true, |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
74 # but it's an easy check and works well enough for us) |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
75 if ispy3 and 'HGTEST_RESTOREENV': |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
76 files_cmd = '. $HGTEST_RESTOREENV; ' + files_cmd |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
77 |
16fd24f6cf22
tests: use system hg by restoring environment in test-doctest.py
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
6236
diff
changeset
|
78 files = subprocess.check_output(files_cmd, shell=True, cwd=cwd).split(b'\0') |
6235
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
79 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
80 if sys.version_info[0] >= 3: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
81 cwd = os.fsencode(cwd) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
82 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
83 mods_tested = set() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
84 for f in files: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
85 if not f: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
86 continue |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
87 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
88 with open(os.path.join(cwd, f), "rb") as fh: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
89 if not re.search(br'\n\s*>>>', fh.read()): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
90 continue |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
91 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
92 if ispy3: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
93 f = f.decode() |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
94 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
95 modname = f.replace('.py', '').replace('\\', '.').replace('/', '.') |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
96 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
97 # Third-party modules aren't our responsibility to test. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
98 if modname.startswith('hgext3rd.evolve.thirdparty.'): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
99 continue |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
100 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
101 for kwargs in testmod_arg_overrides.get(modname, [{}]): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
102 mods_tested.add((modname, '%r' % (kwargs,))) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
103 if modname.startswith('tests.'): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
104 # On py2, we can't import from tests.foo, but it works on both py2 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
105 # and py3 with the way that PYTHONPATH is setup to import without |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
106 # the 'tests.' prefix, so we do that. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
107 modname = modname[len('tests.'):] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
108 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
109 testmod(modname, **kwargs) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
110 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
111 # Meta-test: let's make sure that we actually ran what we expected to, above. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
112 # Each item in the set is a 2-tuple of module name and stringified kwargs passed |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
113 # to testmod. |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
114 expected_mods_tested = set( |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
115 [ |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
116 ('hgext3rd.evolve.obshistory', '{}'), |
6236
7ad8107d953a
topic: introduce topic namespaces concept starting with simple parsing
Anton Shestakov <av6@dwimlabs.net>
parents:
6235
diff
changeset
|
117 ('hgext3rd.topic.common', '{}'), |
6235
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
118 ] |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
119 ) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
120 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
121 unexpectedly_run = mods_tested.difference(expected_mods_tested) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
122 not_run = expected_mods_tested.difference(mods_tested) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
123 |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
124 if unexpectedly_run: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
125 print('Unexpectedly ran (probably need to add to list):') |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
126 for r in sorted(unexpectedly_run): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
127 print(' %r' % (r,)) |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
128 if not_run: |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
129 print('Expected to run, but was not run (doctest removed?):') |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
130 for r in sorted(not_run): |
318b81560f8c
tests: port test-doctest.py from core hg
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
131 print(' %r' % (r,)) |