Skip to content

Commit

Permalink
pythongh-108303: Move tokenize-related data to Lib/test/tokenizedata (p…
Browse files Browse the repository at this point in the history
…ythonGH-109265)

(cherry picked from commit 1110c5b)
  • Loading branch information
sobolevn authored and vstinner committed Sep 21, 2023
1 parent 4a0c118 commit b8e2908
Show file tree
Hide file tree
Showing 18 changed files with 40 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ PC/classicAppCompat.* binary
[attr]noeol -text

Lib/test/cjkencodings/* noeol
Lib/test/coding20731.py noeol
Lib/test/tokenizedata/coding20731.py noeol
Lib/test/decimaltestdata/*.decTest noeol
Lib/test/test_email/data/*.txt noeol
Lib/test/test_importlib/resources/data01/* noeol
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ repos:
- id: check-yaml
- id: end-of-file-fixer
types: [python]
exclude: Lib/test/coding20731.py
exclude: Lib/test/tokenizedata/coding20731.py
- id: trailing-whitespace
types_or: [c, python, rst]

Expand Down
16 changes: 12 additions & 4 deletions Lib/test/test_py_compile.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,9 @@ def test_exceptions_propagate(self):
os.chmod(self.directory, mode.st_mode)

def test_bad_coding(self):
bad_coding = os.path.join(os.path.dirname(__file__), 'bad_coding2.py')
bad_coding = os.path.join(os.path.dirname(__file__),
'tokenizedata',
'bad_coding2.py')
with support.captured_stderr():
self.assertIsNone(py_compile.compile(bad_coding, doraise=False))
self.assertFalse(os.path.exists(
Expand Down Expand Up @@ -195,7 +197,9 @@ def test_invalidation_mode(self):
self.assertEqual(flags, 0b1)

def test_quiet(self):
bad_coding = os.path.join(os.path.dirname(__file__), 'bad_coding2.py')
bad_coding = os.path.join(os.path.dirname(__file__),
'tokenizedata',
'bad_coding2.py')
with support.captured_stderr() as stderr:
self.assertIsNone(py_compile.compile(bad_coding, doraise=False, quiet=2))
self.assertIsNone(py_compile.compile(bad_coding, doraise=True, quiet=2))
Expand Down Expand Up @@ -260,14 +264,18 @@ def test_with_files(self):
self.assertTrue(os.path.exists(self.cache_path))

def test_bad_syntax(self):
bad_syntax = os.path.join(os.path.dirname(__file__), 'badsyntax_3131.py')
bad_syntax = os.path.join(os.path.dirname(__file__),
'tokenizedata',
'badsyntax_3131.py')
rc, stdout, stderr = self.pycompilecmd_failure(bad_syntax)
self.assertEqual(rc, 1)
self.assertEqual(stdout, b'')
self.assertIn(b'SyntaxError', stderr)

def test_bad_syntax_with_quiet(self):
bad_syntax = os.path.join(os.path.dirname(__file__), 'badsyntax_3131.py')
bad_syntax = os.path.join(os.path.dirname(__file__),
'tokenizedata',
'badsyntax_3131.py')
rc, stdout, stderr = self.pycompilecmd_failure('-q', bad_syntax)
self.assertEqual(rc, 1)
self.assertEqual(stdout, b'')
Expand Down
5 changes: 3 additions & 2 deletions Lib/test/test_source_encoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ def test_issue7820(self):
def test_20731(self):
sub = subprocess.Popen([sys.executable,
os.path.join(os.path.dirname(__file__),
'tokenizedata',
'coding20731.py')],
stderr=subprocess.PIPE)
err = sub.communicate()[1]
Expand Down Expand Up @@ -100,10 +101,10 @@ def test_bad_coding2(self):
self.verify_bad_module(module_name)

def verify_bad_module(self, module_name):
self.assertRaises(SyntaxError, __import__, 'test.' + module_name)
self.assertRaises(SyntaxError, __import__, 'test.tokenizedata.' + module_name)

path = os.path.dirname(__file__)
filename = os.path.join(path, module_name + '.py')
filename = os.path.join(path, 'tokenizedata', module_name + '.py')
with open(filename, "rb") as fp:
bytes = fp.read()
self.assertRaises(SyntaxError, compile, bytes, filename, 'exec')
Expand Down
29 changes: 18 additions & 11 deletions Lib/test/test_tarfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -2564,16 +2564,17 @@ def tarfilecmd_failure(self, *args):
return script_helper.assert_python_failure('-m', 'tarfile', *args)

def make_simple_tarfile(self, tar_name):
files = [support.findfile('tokenize_tests.txt'),
files = [support.findfile('tokenize_tests.txt',
subdir='tokenizedata'),
support.findfile('tokenize_tests-no-coding-cookie-'
'and-utf8-bom-sig-only.txt')]
'and-utf8-bom-sig-only.txt',
subdir='tokenizedata')]
self.addCleanup(os_helper.unlink, tar_name)
with tarfile.open(tar_name, 'w') as tf:
for tardata in files:
tf.add(tardata, arcname=os.path.basename(tardata))

def make_evil_tarfile(self, tar_name):
files = [support.findfile('tokenize_tests.txt')]
self.addCleanup(os_helper.unlink, tar_name)
with tarfile.open(tar_name, 'w') as tf:
benign = tarfile.TarInfo('benign')
Expand Down Expand Up @@ -2654,9 +2655,11 @@ def test_list_command_invalid_file(self):
self.assertEqual(rc, 1)

def test_create_command(self):
files = [support.findfile('tokenize_tests.txt'),
files = [support.findfile('tokenize_tests.txt',
subdir='tokenizedata'),
support.findfile('tokenize_tests-no-coding-cookie-'
'and-utf8-bom-sig-only.txt')]
'and-utf8-bom-sig-only.txt',
subdir='tokenizedata')]
for opt in '-c', '--create':
try:
out = self.tarfilecmd(opt, tmpname, *files)
Expand All @@ -2667,9 +2670,11 @@ def test_create_command(self):
os_helper.unlink(tmpname)

def test_create_command_verbose(self):
files = [support.findfile('tokenize_tests.txt'),
files = [support.findfile('tokenize_tests.txt',
subdir='tokenizedata'),
support.findfile('tokenize_tests-no-coding-cookie-'
'and-utf8-bom-sig-only.txt')]
'and-utf8-bom-sig-only.txt',
subdir='tokenizedata')]
for opt in '-v', '--verbose':
try:
out = self.tarfilecmd(opt, '-c', tmpname, *files,
Expand All @@ -2681,7 +2686,7 @@ def test_create_command_verbose(self):
os_helper.unlink(tmpname)

def test_create_command_dotless_filename(self):
files = [support.findfile('tokenize_tests.txt')]
files = [support.findfile('tokenize_tests.txt', subdir='tokenizedata')]
try:
out = self.tarfilecmd('-c', dotlessname, *files)
self.assertEqual(out, b'')
Expand All @@ -2692,7 +2697,7 @@ def test_create_command_dotless_filename(self):

def test_create_command_dot_started_filename(self):
tar_name = os.path.join(TEMPDIR, ".testtar")
files = [support.findfile('tokenize_tests.txt')]
files = [support.findfile('tokenize_tests.txt', subdir='tokenizedata')]
try:
out = self.tarfilecmd('-c', tar_name, *files)
self.assertEqual(out, b'')
Expand All @@ -2702,9 +2707,11 @@ def test_create_command_dot_started_filename(self):
os_helper.unlink(tar_name)

def test_create_command_compressed(self):
files = [support.findfile('tokenize_tests.txt'),
files = [support.findfile('tokenize_tests.txt',
subdir='tokenizedata'),
support.findfile('tokenize_tests-no-coding-cookie-'
'and-utf8-bom-sig-only.txt')]
'and-utf8-bom-sig-only.txt',
subdir='tokenizedata')]
for filetype in (GzipTest, Bz2Test, LzmaTest):
if not filetype.open:
continue
Expand Down
7 changes: 3 additions & 4 deletions Lib/test/test_tokenize.py
Original file line number Diff line number Diff line change
Expand Up @@ -1198,7 +1198,7 @@ class TestTokenizerAdheresToPep0263(TestCase):
"""

def _testFile(self, filename):
path = os.path.join(os.path.dirname(__file__), filename)
path = os.path.join(os.path.dirname(__file__), 'tokenizedata', filename)
with open(path, 'rb') as f:
TestRoundtrip.check_roundtrip(self, f)

Expand Down Expand Up @@ -1791,7 +1791,7 @@ def test_roundtrip(self):

self.check_roundtrip("if x == 1 : \n"
" print(x)\n")
fn = support.findfile("tokenize_tests.txt")
fn = support.findfile("tokenize_tests.txt", subdir="tokenizedata")
with open(fn, 'rb') as f:
self.check_roundtrip(f)
self.check_roundtrip("if x == 1:\n"
Expand Down Expand Up @@ -1846,8 +1846,7 @@ def test_random_files(self):
# pass the '-ucpu' option to process the full directory.

import glob, random
fn = support.findfile("tokenize_tests.txt")
tempdir = os.path.dirname(fn) or os.curdir
tempdir = os.path.dirname(__file__) or os.curdir
testfiles = glob.glob(os.path.join(glob.escape(tempdir), "test*.py"))

# Tokenize is broken on test_pep3131.py because regular expressions are
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_tools/test_reindent.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def test_help(self):
self.assertGreater(err, b'')

def test_reindent_file_with_bad_encoding(self):
bad_coding_path = findfile('bad_coding.py')
bad_coding_path = findfile('bad_coding.py', subdir='tokenizedata')
rc, out, err = assert_python_ok(self.script, '-r', bad_coding_path)
self.assertEqual(out, b'')
self.assertNotEqual(err, b'')
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_unicode_identifiers.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def test_non_bmp_normalized(self):

def test_invalid(self):
try:
from test import badsyntax_3131
from test.tokenizedata import badsyntax_3131
except SyntaxError as err:
self.assertEqual(str(err),
"invalid character '€' (U+20AC) (badsyntax_3131.py, line 2)")
Expand Down
Empty file.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit b8e2908

Please sign in to comment.