Commit 63a4d818 authored by Georg Brandl's avatar Georg Brandl

#9964: fix running test_compileall under -O and -OO.

parent 97b12bc7
...@@ -131,22 +131,28 @@ class CommandLineTests(unittest.TestCase): ...@@ -131,22 +131,28 @@ class CommandLineTests(unittest.TestCase):
assert sys.path[0] == self.directory, 'Missing path' assert sys.path[0] == self.directory, 'Missing path'
del sys.path[0] del sys.path[0]
def test_pep3147_paths(self): # Ensure that the default behavior of compileall's CLI is to create
# Ensure that the default behavior of compileall's CLI is to create # PEP 3147 pyc/pyo files.
# PEP 3147 pyc/pyo files. for name, ext, switch in [
retcode = subprocess.call( ('normal', 'pyc', []),
(sys.executable, '-m', 'compileall', '-q', self.pkgdir)) ('optimize', 'pyo', ['-O']),
self.assertEqual(retcode, 0) ('doubleoptimize', 'pyo', ['-OO'])
# Verify the __pycache__ directory contents. ]:
cachedir = os.path.join(self.pkgdir, '__pycache__') def f(self, ext=ext, switch=switch):
self.assertTrue(os.path.exists(cachedir)) retcode = subprocess.call(
ext = ('pyc' if __debug__ else 'pyo') [sys.executable] + switch +
expected = sorted(base.format(imp.get_tag(), ext) for base in ['-m', 'compileall', '-q', self.pkgdir])
('__init__.{}.{}', 'bar.{}.{}')) self.assertEqual(retcode, 0)
self.assertEqual(sorted(os.listdir(cachedir)), expected) # Verify the __pycache__ directory contents.
# Make sure there are no .pyc files in the source directory. cachedir = os.path.join(self.pkgdir, '__pycache__')
self.assertFalse([pyc_file for pyc_file in os.listdir(self.pkgdir) self.assertTrue(os.path.exists(cachedir))
if pyc_file.endswith(ext)]) expected = sorted(base.format(imp.get_tag(), ext) for base in
('__init__.{}.{}', 'bar.{}.{}'))
self.assertEqual(sorted(os.listdir(cachedir)), expected)
# Make sure there are no .pyc files in the source directory.
self.assertFalse([pyc_file for pyc_file in os.listdir(self.pkgdir)
if pyc_file.endswith(ext)])
locals()['test_pep3147_paths_' + name] = f
def test_legacy_paths(self): def test_legacy_paths(self):
# Ensure that with the proper switch, compileall leaves legacy # Ensure that with the proper switch, compileall leaves legacy
...@@ -157,10 +163,7 @@ class CommandLineTests(unittest.TestCase): ...@@ -157,10 +163,7 @@ class CommandLineTests(unittest.TestCase):
# Verify the __pycache__ directory contents. # Verify the __pycache__ directory contents.
cachedir = os.path.join(self.pkgdir, '__pycache__') cachedir = os.path.join(self.pkgdir, '__pycache__')
self.assertFalse(os.path.exists(cachedir)) self.assertFalse(os.path.exists(cachedir))
ext = ('pyc' if __debug__ else 'pyo') expected = sorted(['__init__.py', '__init__.pyc', 'bar.py', 'bar.pyc'])
expected = [base.format(ext) for base in ('__init__.{}', 'bar.{}')]
expected.extend(['__init__.py', 'bar.py'])
expected.sort()
self.assertEqual(sorted(os.listdir(self.pkgdir)), expected) self.assertEqual(sorted(os.listdir(self.pkgdir)), expected)
def test_multiple_runs(self): def test_multiple_runs(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment