summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_lib2to3/test_all_fixers.py
blob: d0fca7072482cb48fc3bdfe6669c952c5ec47acb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""Tests that run all fixer modules over an input stream.

This has been broken out into its own test module because of its
running time.
"""
# Author: Collin Winter

# Python imports
import os.path
import test.support
import unittest

# Local imports
from . import support


@test.support.requires_resource('cpu')
class Test_all(support.TestCase):

    def setUp(self):
        self.refactor = support.get_refactorer()

    def refactor_file(self, filepath):
        if test.support.verbose:
            print(f"Refactor file: {filepath}")
        if os.path.basename(filepath) == 'infinite_recursion.py':
            # bpo-46542: Processing infinite_recursion.py can crash Python
            # if Python is built in debug mode: lower the recursion limit
            # to prevent a crash.
            with test.support.infinite_recursion(150):
                self.refactor.refactor_file(filepath)
        else:
            self.refactor.refactor_file(filepath)

    def test_all_project_files(self):
        for filepath in support.all_project_files():
            with self.subTest(filepath=filepath):
                self.refactor_file(filepath)

if __name__ == '__main__':
    unittest.main()