summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_compileall.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-10-14 07:42:27 (GMT)
committerGeorg Brandl <georg@python.org>2010-10-14 07:42:27 (GMT)
commit1463a3f8334b3279587af84d1134c559105f366a (patch)
tree69ac9293d69be883c35fda851b69b369d3c8e1af /Lib/test/test_compileall.py
parent1c2a7b7a698144b8dc5a890a76236e85f0bf763e (diff)
downloadcpython-1463a3f8334b3279587af84d1134c559105f366a.zip
cpython-1463a3f8334b3279587af84d1134c559105f366a.tar.gz
cpython-1463a3f8334b3279587af84d1134c559105f366a.tar.bz2
#9964: fix running test_compileall under -O and -OO.
Diffstat (limited to 'Lib/test/test_compileall.py')
-rw-r--r--Lib/test/test_compileall.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py
index 4ad0061..1f8df38 100644
--- a/Lib/test/test_compileall.py
+++ b/Lib/test/test_compileall.py
@@ -131,22 +131,28 @@ class CommandLineTests(unittest.TestCase):
assert sys.path[0] == self.directory, 'Missing path'
del sys.path[0]
- def test_pep3147_paths(self):
- # Ensure that the default behavior of compileall's CLI is to create
- # PEP 3147 pyc/pyo files.
- retcode = subprocess.call(
- (sys.executable, '-m', 'compileall', '-q', self.pkgdir))
- self.assertEqual(retcode, 0)
- # Verify the __pycache__ directory contents.
- cachedir = os.path.join(self.pkgdir, '__pycache__')
- self.assertTrue(os.path.exists(cachedir))
- ext = ('pyc' if __debug__ else 'pyo')
- 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)])
+ # Ensure that the default behavior of compileall's CLI is to create
+ # PEP 3147 pyc/pyo files.
+ for name, ext, switch in [
+ ('normal', 'pyc', []),
+ ('optimize', 'pyo', ['-O']),
+ ('doubleoptimize', 'pyo', ['-OO'])
+ ]:
+ def f(self, ext=ext, switch=switch):
+ retcode = subprocess.call(
+ [sys.executable] + switch +
+ ['-m', 'compileall', '-q', self.pkgdir])
+ self.assertEqual(retcode, 0)
+ # Verify the __pycache__ directory contents.
+ cachedir = os.path.join(self.pkgdir, '__pycache__')
+ self.assertTrue(os.path.exists(cachedir))
+ 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):
# Ensure that with the proper switch, compileall leaves legacy
@@ -157,10 +163,7 @@ class CommandLineTests(unittest.TestCase):
# Verify the __pycache__ directory contents.
cachedir = os.path.join(self.pkgdir, '__pycache__')
self.assertFalse(os.path.exists(cachedir))
- ext = ('pyc' if __debug__ else 'pyo')
- expected = [base.format(ext) for base in ('__init__.{}', 'bar.{}')]
- expected.extend(['__init__.py', 'bar.py'])
- expected.sort()
+ expected = sorted(['__init__.py', '__init__.pyc', 'bar.py', 'bar.pyc'])
self.assertEqual(sorted(os.listdir(self.pkgdir)), expected)
def test_multiple_runs(self):