Skip to content

Commit

Permalink
gh-54781: Move Lib/lib2to3/tests/ to Lib/test/test_lib2to3/ (#94049)
Browse files Browse the repository at this point in the history
* Move Lib/lib2to3/tests/ to Lib/test/test_lib2to3/.
* Remove Lib/test/test_lib2to3.py.
* Update imports.
* all_project_files(): use different paths and sort files
  to make the tests more reproducible.
* Update references to tests.
  • Loading branch information
vstinner committed Jun 21, 2022
1 parent 50ebd72 commit 616fa34
Show file tree
Hide file tree
Showing 35 changed files with 68 additions and 68 deletions.
9 changes: 0 additions & 9 deletions Lib/test/test_lib2to3.py

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import logging

# Local imports
from .. import pytree
from .. import pgen2
from ..pgen2 import driver
from lib2to3 import pytree
from lib2to3 import pgen2
from lib2to3.pgen2 import driver

logging.basicConfig()

Expand Down
21 changes: 16 additions & 5 deletions Lib/lib2to3/tests/support.py → Lib/test/test_lib2to3/support.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@
from textwrap import dedent

# Local imports
import lib2to3
from lib2to3 import pytree, refactor
from lib2to3.pgen2 import driver as pgen2_driver

lib2to3_dir = os.path.dirname(lib2to3.__file__)
test_dir = os.path.dirname(__file__)
proj_dir = os.path.normpath(os.path.join(test_dir, ".."))
grammar_path = os.path.join(test_dir, "..", "Grammar.txt")

This comment has been minimized.

Copy link
@Tc1122

Tc1122 Jun 27, 2022

What is did in this code block

grammar_path = os.path.join(lib2to3_dir, "Grammar.txt")
grammar = pgen2_driver.load_grammar(grammar_path)
grammar_no_print_statement = pgen2_driver.load_grammar(grammar_path)
del grammar_no_print_statement.keywords["print"]
Expand Down Expand Up @@ -49,10 +51,19 @@ def get_refactorer(fixer_pkg="lib2to3", fixers=None, options=None):
options = options or {}
return refactor.RefactoringTool(fixers, options, explicit=True)

def all_project_files():
for dirpath, dirnames, filenames in os.walk(proj_dir):
def _all_project_files(root, files):
for dirpath, dirnames, filenames in os.walk(root):
for filename in filenames:
if filename.endswith(".py"):
yield os.path.join(dirpath, filename)
if not filename.endswith(".py"):
continue
files.append(os.path.join(dirpath, filename))

def all_project_files():
files = []
_all_project_files(lib2to3_dir, files)
_all_project_files(test_dir, files)
# Sort to get more reproducible tests
files.sort()
return files

TestCase = unittest.TestCase
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# Local imports
from lib2to3 import pygram, fixer_util
from lib2to3.tests import support
from test.test_lib2to3 import support


class FixerTestCase(support.TestCase):
Expand Down Expand Up @@ -1791,7 +1791,7 @@ def f():

class Test_imports(FixerTestCase, ImportsFixerTests):
fixer = "imports"
from ..fixes.fix_imports import MAPPING as modules
from lib2to3.fixes.fix_imports import MAPPING as modules

def test_multiple_imports(self):
b = """import urlparse, cStringIO"""
Expand All @@ -1812,16 +1812,16 @@ def test_multiple_imports_as(self):

class Test_imports2(FixerTestCase, ImportsFixerTests):
fixer = "imports2"
from ..fixes.fix_imports2 import MAPPING as modules
from lib2to3.fixes.fix_imports2 import MAPPING as modules


class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests):

def setUp(self):
super(Test_imports_fixer_order, self).setUp(['imports', 'imports2'])
from ..fixes.fix_imports2 import MAPPING as mapping2
from lib2to3.fixes.fix_imports2 import MAPPING as mapping2
self.modules = mapping2.copy()
from ..fixes.fix_imports import MAPPING as mapping1
from lib2to3.fixes.fix_imports import MAPPING as mapping1
for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'):
self.modules[key] = mapping1[key]

Expand All @@ -1833,7 +1833,7 @@ def test_after_local_imports_refactoring(self):

class Test_urllib(FixerTestCase):
fixer = "urllib"
from ..fixes.fix_urllib import MAPPING as modules
from lib2to3.fixes.fix_urllib import MAPPING as modules

def test_import_module(self):
for old, changes in self.modules.items():
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
# Local imports
from lib2to3.pgen2 import driver as pgen2_driver
from lib2to3.pgen2 import tokenize
from ..pgen2.parse import ParseError
from lib2to3.pgen2.parse import ParseError
from lib2to3.pygram import python_symbols as syms


Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions Mac/BuildScript/scripts/postflight.framework
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ FWK="/Library/Frameworks/Python.framework/Versions/@PYVER@"

"${FWK}/bin/python@PYVER@" -E -s -Wi \
"${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \
-f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \
"${FWK}/lib/python${PYVER}"

"${FWK}/bin/python@PYVER@" -E -s -Wi -O \
"${FWK}/lib/python${PYVER}/compileall.py" -q -j0 \
-f -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-f -x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \
"${FWK}/lib/python${PYVER}"

"${FWK}/bin/python@PYVER@" -E -s -Wi \
Expand Down
14 changes: 7 additions & 7 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -1921,10 +1921,6 @@ LIBSUBDIRS= asyncio \
__phello__
TESTSUBDIRS= distutils/tests \
idlelib/idle_test \
lib2to3/tests \
lib2to3/tests/data \
lib2to3/tests/data/fixers \
lib2to3/tests/data/fixers/myfixes \
test test/audiodata \
test/capath test/cjkencodings \
test/data test/decimaltestdata \
Expand Down Expand Up @@ -1986,6 +1982,10 @@ TESTSUBDIRS= distutils/tests \
test/test_importlib/zipdata01 \
test/test_importlib/zipdata02 \
test/test_json \
test/test_lib2to3 \
test/test_lib2to3/data \
test/test_lib2to3/data/fixers \
test/test_lib2to3/data/fixers/myfixes \
test/test_peg_generator \
test/test_tools \
test/test_warnings test/test_warnings/data \
Expand Down Expand Up @@ -2073,17 +2073,17 @@ libinstall: all $(srcdir)/Modules/xxmodule.c
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
-j0 -d $(LIBDEST) -f \
-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-x 'bad_coding|badsyntax|site-packages|test/test_lib2to3/data' \
$(DESTDIR)$(LIBDEST)
-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
Expand Down
63 changes: 31 additions & 32 deletions PCbuild/lib.pyproj
Original file line number Diff line number Diff line change
Expand Up @@ -561,33 +561,6 @@
<Compile Include="lib2to3\pygram.py" />
<Compile Include="lib2to3\pytree.py" />
<Compile Include="lib2to3\refactor.py" />
<Compile Include="lib2to3\tests\data\bom.py" />
<Compile Include="lib2to3\tests\data\crlf.py" />
<Compile Include="lib2to3\tests\data\different_encoding.py" />
<Compile Include="lib2to3\tests\data\false_encoding.py" />
<Compile Include="lib2to3\tests\data\fixers\bad_order.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\fix_explicit.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\fix_first.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\fix_last.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\fix_parrot.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\fix_preorder.py" />
<Compile Include="lib2to3\tests\data\fixers\myfixes\__init__.py" />
<Compile Include="lib2to3\tests\data\fixers\no_fixer_cls.py" />
<Compile Include="lib2to3\tests\data\fixers\parrot_example.py" />
<Compile Include="lib2to3\tests\data\infinite_recursion.py" />
<Compile Include="lib2to3\tests\data\py2_test_grammar.py" />
<Compile Include="lib2to3\tests\data\py3_test_grammar.py" />
<Compile Include="lib2to3\tests\pytree_idempotency.py" />
<Compile Include="lib2to3\tests\support.py" />
<Compile Include="lib2to3\tests\test_all_fixers.py" />
<Compile Include="lib2to3\tests\test_fixers.py" />
<Compile Include="lib2to3\tests\test_main.py" />
<Compile Include="lib2to3\tests\test_parser.py" />
<Compile Include="lib2to3\tests\test_pytree.py" />
<Compile Include="lib2to3\tests\test_refactor.py" />
<Compile Include="lib2to3\tests\test_util.py" />
<Compile Include="lib2to3\tests\__init__.py" />
<Compile Include="lib2to3\tests\__main__.py" />
<Compile Include="lib2to3\__init__.py" />
<Compile Include="lib2to3\__main__.py" />
<Compile Include="linecache.py" />
Expand Down Expand Up @@ -1157,7 +1130,33 @@
<Compile Include="test\test_keywordonlyarg.py" />
<Compile Include="test\test_kqueue.py" />
<Compile Include="test\test_largefile.py" />
<Compile Include="test\test_lib2to3.py" />
<Compile Include="test\test_lib2to3\data\bom.py" />
<Compile Include="test\test_lib2to3\data\crlf.py" />
<Compile Include="test\test_lib2to3\data\different_encoding.py" />
<Compile Include="test\test_lib2to3\data\false_encoding.py" />
<Compile Include="test\test_lib2to3\data\fixers\bad_order.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_explicit.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_first.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_last.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_parrot.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\fix_preorder.py" />
<Compile Include="test\test_lib2to3\data\fixers\myfixes\__init__.py" />
<Compile Include="test\test_lib2to3\data\fixers\no_fixer_cls.py" />
<Compile Include="test\test_lib2to3\data\fixers\parrot_example.py" />
<Compile Include="test\test_lib2to3\data\infinite_recursion.py" />
<Compile Include="test\test_lib2to3\data\py2_test_grammar.py" />
<Compile Include="test\test_lib2to3\data\py3_test_grammar.py" />
<Compile Include="test\test_lib2to3\pytree_idempotency.py" />
<Compile Include="test\test_lib2to3\support.py" />
<Compile Include="test\test_lib2to3\test_all_fixers.py" />
<Compile Include="test\test_lib2to3\test_fixers.py" />
<Compile Include="test\test_lib2to3\test_main.py" />
<Compile Include="test\test_lib2to3\test_parser.py" />
<Compile Include="test\test_lib2to3\test_pytree.py" />
<Compile Include="test\test_lib2to3\test_refactor.py" />
<Compile Include="test\test_lib2to3\test_util.py" />
<Compile Include="test\test_lib2to3\__init__.py" />
<Compile Include="test\test_lib2to3\__main__.py" />
<Compile Include="test\test_linecache.py" />
<Compile Include="test\test_list.py" />
<Compile Include="test\test_listcomps.py" />
Expand Down Expand Up @@ -1743,10 +1742,6 @@
<Folder Include="lib2to3" />
<Folder Include="lib2to3\fixes" />
<Folder Include="lib2to3\pgen2" />
<Folder Include="lib2to3\tests" />
<Folder Include="lib2to3\tests\data" />
<Folder Include="lib2to3\tests\data\fixers" />
<Folder Include="lib2to3\tests\data\fixers\myfixes" />
<Folder Include="logging" />
<Folder Include="msilib" />
<Folder Include="multiprocessing" />
Expand Down Expand Up @@ -1802,6 +1797,10 @@
<Folder Include="test\test_import\data\package" />
<Folder Include="test\test_import\data\package2" />
<Folder Include="test\test_json" />
<Folder Include="test\test_lib2to3" />
<Folder Include="test\test_lib2to3\data" />
<Folder Include="test\test_lib2to3\data\fixers" />
<Folder Include="test\test_lib2to3\data\fixers\myfixes" />
<Folder Include="test\test_peg_generator" />
<Folder Include="test\test_tools" />
<Folder Include="test\test_unittest" />
Expand Down
2 changes: 1 addition & 1 deletion Tools/peg_generator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ time_stdlib: $(CPYTHON) venv
-d $(CPYTHON) \
$(TESTFLAGS) \
--exclude "*/bad*" \
--exclude "*/lib2to3/tests/data/*"
--exclude "*/test/test_lib2to3/data/*"

mypy: regen-metaparser
$(MYPY) # For list of files, see mypy.ini
Expand Down
2 changes: 1 addition & 1 deletion Tools/peg_generator/scripts/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def run_benchmark_stdlib(subcommand):
verbose=False,
excluded_files=[
"*/bad*",
"*/lib2to3/tests/data/*",
"*/test/test_lib2to3/data/*",
],
short=True,
mode=modes[subcommand],
Expand Down
1 change: 0 additions & 1 deletion Tools/scripts/generate_stdlib_module_names.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
'_xxtestfuzz',
'distutils.tests',
'idlelib.idle_test',
'lib2to3.tests',
'test',
'xxlimited',
'xxlimited_35',
Expand Down

0 comments on commit 616fa34

Please sign in to comment.