contrib/python3-ratchet.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 21 Nov 2019 23:46:51 +0100
changeset 44108 c472970339d2
parent 43554 9f70512ae2cf
child 45957 89a2afe31e82
permissions -rw-r--r--
changectx: use unfiltered changelog to walk ancestors in annotate Since we are only walking ancestors, it is safe to use an unfiltered repository. (Because if the original rev is not filtered, none of its ancestors will be). Differential Revision: https://phab.mercurial-scm.org/D7501
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32873
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
from __future__ import print_function
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
from __future__ import absolute_import
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
import argparse
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
import json
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
import os
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
import subprocess
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
import sys
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    26
28f429d19a71 contrib: add a ratchet for tests in Python 3
Augie Fackler <augie@google.com>
parents:
diff changeset
    27
_hgenv = dict(os.environ)
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    28
_hgenv.update(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    29
    {'HGPLAIN': '1',}
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    30
)
32873
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: 36618
diff changeset
    34
32873
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: 36618
diff changeset
    38
32873
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: 36618
diff changeset
    40
    return (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    41
        _runhg('hg', 'log', '-R', path, '-r0', '--template={node}').strip()
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    42
        == _HG_FIRST_CHANGE
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    43
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    44
32873
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: 36618
diff changeset
    51
32873
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: 36618
diff changeset
    54
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
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: 36618
diff changeset
    56
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    57
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    58
        '--commit-to-repo',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
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: 36618
diff changeset
    60
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    61
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    62
        '-j',
43554
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: 36618
diff changeset
    64
        type=int,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    65
        help='Number of parallel tests to run.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    66
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    67
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    68
        '--python3',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    69
        default=_py3default(),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    70
        help='python3 interpreter to use for test run',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    71
    )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    72
    p.add_argument(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    73
        '--commit-user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    74
        default='python3-ratchet@mercurial-scm.org',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    75
        help='Username to specify when committing to a repo.',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    76
    )
32873
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: 36618
diff changeset
    83
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
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: 36618
diff changeset
    85
            % opts.working_tests
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    86
        )
32873
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: 36618
diff changeset
    91
            print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    92
                'abort: if --commit-to-repo is given, '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    93
                '--working-tests must be from that repo'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    94
            )
32873
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: 36618
diff changeset
    97
        subprocess.check_call(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    98
            [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
    99
                opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   100
                '-c',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   101
                'import sys ; '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   102
                'assert ((3, 5) <= sys.version_info < (3, 6) '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   103
                'or sys.version_info >= (3, 6, 2))',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   104
            ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   105
        )
32873
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: 36618
diff changeset
   107
        print(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   108
            'warning: Python 3.6.0 and 3.6.1 have '
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   109
            'a bug which breaks Mercurial'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   110
        )
32873
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)')
36618
3790610c2793 py3: bail on ratcheting tests forward on 3.6.0 and 3.6.1
Kevin Bullock <kbullock+mercurial@ringworld.org>
parents: 32873
diff changeset
   112
        sys.exit(1)
32873
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: 36618
diff changeset
   114
    rt = subprocess.Popen(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   115
        [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   116
            opts.python3,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   117
            'run-tests.py',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   118
            '-j',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   119
            str(opts.j),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   120
            '--blacklist',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   121
            opts.working_tests,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   122
            '--json',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   123
        ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   124
    )
32873
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: 36618
diff changeset
   145
            _runhg(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   146
                'hg',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   147
                'commit',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   148
                '-R',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   149
                opts.commit_to_repo,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   150
                '--user',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   151
                opts.commit_user,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   152
                '--message',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   153
                'python3: expand list of passing tests',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36618
diff changeset
   154
            )
32873
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: 36618
diff changeset
   159
32873
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:])