Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions Lib/test/test_zipfile/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1812,11 +1812,8 @@ def test_write_with_source_date_epoch(self):

with zipfile.ZipFile(TESTFN, "r") as zf:
zip_info = zf.getinfo("test_source_date_epoch.txt")
get_time = time.localtime(int(os.environ['SOURCE_DATE_EPOCH']))[:6]
# Compare each element of the date_time tuple
# Allow for a 1-second difference
for z_time, g_time in zip(zip_info.date_time, get_time):
self.assertAlmostEqual(z_time, g_time, delta=1)
expected_utc = (1975, 7, 2, 22, 19, 59)
self.assertEqual(zip_info.date_time, expected_utc)

def test_write_without_source_date_epoch(self):
with os_helper.EnvironmentVarGuard() as env:
Expand Down
9 changes: 6 additions & 3 deletions Lib/zipfile/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -650,9 +650,12 @@ def _for_archive(self, archive):
Return self.
"""
# gh-91279: Set the SOURCE_DATE_EPOCH to a specific timestamp
epoch = os.environ.get('SOURCE_DATE_EPOCH')
get_time = int(epoch) if epoch else time.time()
self.date_time = time.localtime(get_time)[:6]
source_date_epoch = os.environ.get('SOURCE_DATE_EPOCH')

if source_date_epoch:
self.date_time = time.gmtime(int(source_date_epoch))[:6]
else:
self.date_time = time.localtime(time.time())[:6]

self.compress_type = archive.compression
self.compress_level = archive.compresslevel
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zip: On reproducible builds, ZipFile longer pulls in local environment timezone when writing file datetimes
Comment thread
jaraco marked this conversation as resolved.
Resolved
Loading