diff options
author | Georg Brandl <georg@python.org> | 2010-10-14 07:42:27 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-10-14 07:42:27 (GMT) |
commit | 1463a3f8334b3279587af84d1134c559105f366a (patch) | |
tree | 69ac9293d69be883c35fda851b69b369d3c8e1af /Lib/test/test_compileall.py | |
parent | 1c2a7b7a698144b8dc5a890a76236e85f0bf763e (diff) | |
download | cpython-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.py | 43 |
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): |