contrib/python3-ratchet.py
author Manuel Jacob <me@manueljacob.de>
Mon, 11 Jul 2022 01:51:20 +0200
branchstable
changeset 49378 094a5fa3cf52
parent 48875 6000f5b25c9b
permissions -rw-r--r--
procutil: make stream detection in make_line_buffered more correct and strict In make_line_buffered(), we don’t want to wrap the stream if we know that lines get flushed to the underlying raw stream already. Previously, the heuristic was too optimistic. It assumed that any stream which is not an instance of io.BufferedIOBase doesn’t need wrapping. However, there are buffered streams that aren’t instances of io.BufferedIOBase, like Mercurial’s own winstdout. The new logic is different in two ways: First, only for the check, if unwraps any combination of WriteAllWrapper and winstdout. Second, it skips wrapping the stream only if it is an instance of io.RawIOBase (or already wrapped). If it is an instance of io.BufferedIOBase, it gets wrapped. In any other case, the function raises an exception. This ensures that, if an unknown stream is passed or we add another wrapper in the future, we don’t wrap the stream if it’s already line buffered or not wrap the stream if it’s not line buffered. In fact, this was already helpful during development of this change. Without it, I possibly would have forgot that WriteAllWrapper needs to be ignored for the check, leading to unnecessary wrapping if stdout is unbuffered. The alternative would have been to always wrap unknown streams. However, I don’t think that anyone would benefit from being less strict. We can expect streams from the standard library to be subclassing either io.RawIOBase or io.BufferedIOBase, so running Mercurial in the standard way should not regress by this change. Py2exe might replace sys.stdout and sys.stderr, but that currently breaks Mercurial anyway and also these streams don’t claim to be interactive, so this function is not called for them.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
# Copyright 2012 Facebook
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
#
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
# This software may be used and distributed according to the terms of the
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
# GNU General Public License version 2 or any later version.
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
"""Find tests that newly pass under Python 3.
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
The approach is simple: we maintain a whitelist of Python 3 passing
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
tests in the repository, and periodically run all the /other/ tests
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
and look for new passes. Any newly passing tests get automatically
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
added to the whitelist.
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
You probably want to run it like this:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
  $ cd tests
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
  $ python3 ../contrib/python3-ratchet.py \
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    16
  >   --working-tests=../contrib/python3-whitelist
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
"""
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
import argparse
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
import json
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
import os
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
import subprocess
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
import sys
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
_hgenv = dict(os.environ)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    26
_hgenv.update(
45942
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    27
    {
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    28
        'HGPLAIN': '1',
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43506
diff changeset
    29
    }
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    30
)
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    31
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    32
_HG_FIRST_CHANGE = '9117c6561b0bd7792fa13b50d28239d51b78e51f'
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    33
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    34
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    35
def _runhg(*args):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    36
    return subprocess.check_output(args, env=_hgenv)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    37
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    38
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    39
def _is_hg_repo(path):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    40
    return (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    41
        _runhg('hg', 'log', '-R', path, '-r0', '--template={node}').strip()
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    42
        == _HG_FIRST_CHANGE
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    43
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    44
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    45
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    46
def _py3default():
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    47
    if sys.version_info[0] >= 3:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    48
        return sys.executable
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    49
    return 'python3'
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    50
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    51
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    52
def main(argv=()):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    53
    p = argparse.ArgumentParser()
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    54
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    55
        '--working-tests', help='List of tests that already work in Python 3.'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    56
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    57
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    58
        '--commit-to-repo',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    59
        help='If set, commit newly fixed tests to the given repo',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    60
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    61
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    62
        '-j',
43506
9f70512ae2cf cleanup: remove pointless r-prefixes on single-quoted strings
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
    63
        default=os.sysconf('SC_NPROCESSORS_ONLN'),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    64
        type=int,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    65
        help='Number of parallel tests to run.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    66
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    67
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    68
        '--python3',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    69
        default=_py3default(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    70
        help='python3 interpreter to use for test run',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    71
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    72
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    73
        '--commit-user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    74
        default='python3-ratchet@mercurial-scm.org',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    75
        help='Username to specify when committing to a repo.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    76
    )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    77
    opts = p.parse_args(argv)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    78
    if opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    79
        if not _is_hg_repo(opts.commit_to_repo):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    80
            print('abort: specified repository is not the hg repository')
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    81
            sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    82
    if not opts.working_tests or not os.path.isfile(opts.working_tests):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    83
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    84
            'abort: --working-tests must exist and be a file (got %r)'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    85
            % opts.working_tests
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    86
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    87
        sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    88
    elif opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    89
        root = _runhg('hg', 'root').strip()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    90
        if not opts.working_tests.startswith(root):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    91
            print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    92
                'abort: if --commit-to-repo is given, '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    93
                '--working-tests must be from that repo'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    94
            )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    95
            sys.exit(1)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    96
    try:
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    97
        subprocess.check_call(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    98
            [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
    99
                opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   100
                '-c',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   101
                'import sys ; '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   102
                'assert ((3, 5) <= sys.version_info < (3, 6) '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   103
                'or sys.version_info >= (3, 6, 2))',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   104
            ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   105
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   106
    except subprocess.CalledProcessError:
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   107
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   108
            'warning: Python 3.6.0 and 3.6.1 have '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   109
            'a bug which breaks Mercurial'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   110
        )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   111
        print('(see https://bugs.python.org/issue29714 for details)')
36589
3790610c2793 py3: bail on ratcheting tests forward on 3.6.0 and 3.6.1
Kevin Bullock <kbullock+mercurial@ringworld.org>
parents: 32855
diff changeset
   112
        sys.exit(1)
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   113
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   114
    rt = subprocess.Popen(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   115
        [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   116
            opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   117
            'run-tests.py',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   118
            '-j',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   119
            str(opts.j),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   120
            '--blacklist',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   121
            opts.working_tests,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   122
            '--json',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   123
        ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   124
    )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   125
    rt.wait()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   126
    with open('report.json') as f:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   127
        data = f.read()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   128
    report = json.loads(data.split('=', 1)[1])
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   129
    newpass = set()
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   130
    for test, result in report.items():
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   131
        if result['result'] != 'success':
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   132
            continue
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   133
        # A new passing test! Huzzah!
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   134
        newpass.add(test)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   135
    if newpass:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   136
        # We already validated the repo, so we can just dive right in
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   137
        # and commit.
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   138
        if opts.commit_to_repo:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   139
            print(len(newpass), 'new passing tests on Python 3!')
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   140
            with open(opts.working_tests) as f:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   141
                oldpass = {l for l in f.read().splitlines() if l}
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   142
            with open(opts.working_tests, 'w') as f:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   143
                for p in sorted(oldpass | newpass):
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   144
                    f.write('%s\n' % p)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   145
            _runhg(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   146
                'hg',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   147
                'commit',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   148
                '-R',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   149
                opts.commit_to_repo,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   150
                '--user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   151
                opts.commit_user,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   152
                '--message',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   153
                'python3: expand list of passing tests',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   154
            )
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   155
        else:
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   156
            print('Newly passing tests:', '\n'.join(sorted(newpass)))
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   157
            sys.exit(2)
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   158
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36589
diff changeset
   159
32855
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   160
if __name__ == '__main__':
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
   161
    main(sys.argv[1:])