mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
bpo-34726: Fix handling of hash-based pycs in zipimport. (GH-10327)
Current support for hash-based bytecode files in `zipimport` is rather sparse, which leads to test failures when the test suite is ran with the ``SOURCE_DATE_EPOCH`` environment variable set. This teaches zipimport to handle hash-based pycs properly.
This commit is contained in:
parent
bfe1839aa9
commit
a6e956bcb0
4 changed files with 1147 additions and 1049 deletions
|
@ -259,10 +259,32 @@ class CmdLineTest(unittest.TestCase):
|
|||
self._check_script(zip_name, run_name, zip_name, zip_name, '',
|
||||
zipimport.zipimporter)
|
||||
|
||||
def test_zipfile_compiled(self):
|
||||
def test_zipfile_compiled_timestamp(self):
|
||||
with support.temp_dir() as script_dir:
|
||||
script_name = _make_test_script(script_dir, '__main__')
|
||||
compiled_name = py_compile.compile(script_name, doraise=True)
|
||||
compiled_name = py_compile.compile(
|
||||
script_name, doraise=True,
|
||||
invalidation_mode=py_compile.PycInvalidationMode.TIMESTAMP)
|
||||
zip_name, run_name = make_zip_script(script_dir, 'test_zip', compiled_name)
|
||||
self._check_script(zip_name, run_name, zip_name, zip_name, '',
|
||||
zipimport.zipimporter)
|
||||
|
||||
def test_zipfile_compiled_checked_hash(self):
|
||||
with support.temp_dir() as script_dir:
|
||||
script_name = _make_test_script(script_dir, '__main__')
|
||||
compiled_name = py_compile.compile(
|
||||
script_name, doraise=True,
|
||||
invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH)
|
||||
zip_name, run_name = make_zip_script(script_dir, 'test_zip', compiled_name)
|
||||
self._check_script(zip_name, run_name, zip_name, zip_name, '',
|
||||
zipimport.zipimporter)
|
||||
|
||||
def test_zipfile_compiled_unchecked_hash(self):
|
||||
with support.temp_dir() as script_dir:
|
||||
script_name = _make_test_script(script_dir, '__main__')
|
||||
compiled_name = py_compile.compile(
|
||||
script_name, doraise=True,
|
||||
invalidation_mode=py_compile.PycInvalidationMode.UNCHECKED_HASH)
|
||||
zip_name, run_name = make_zip_script(script_dir, 'test_zip', compiled_name)
|
||||
self._check_script(zip_name, run_name, zip_name, zip_name, '',
|
||||
zipimport.zipimporter)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue