@@ -1834,6 +1834,30 @@ def test_write_unicode_filenames(self):
18341834 self .assertEqual (zf .filelist [0 ].filename , "foo.txt" )
18351835 self .assertEqual (zf .filelist [1 ].filename , "\xf6 .txt" )
18361836
1837+ def test_write_with_source_date_epoch (self ):
1838+ os .environ ['SOURCE_DATE_EPOCH' ] = "1727268221"
1839+ data = "Testing SOURCE_DATE_EPOCH"
1840+
1841+ with zipfile .ZipFile (self .TESTFN , "w" ) as zf :
1842+ zf .writestr ("test_source_date_epoch.txt" , data )
1843+
1844+ with zipfile .ZipFile (self .TESTFN , "r" ) as zf :
1845+ zip_info = zf .getinfo ("test_source_date_epoch.txt" )
1846+ self .assertEqual (zip_info .date_time , time .gmtime (int (os .environ ['SOURCE_DATE_EPOCH' ]))[:6 ])
1847+
1848+ def test_write_without_source_date_epoch (self ):
1849+ if 'SOURCE_DATE_EPOCH' in os .environ :
1850+ del os .environ ['SOURCE_DATE_EPOCH' ]
1851+ data = "Testing without SOURCE_DATE_EPOCH"
1852+
1853+ with zipfile .ZipFile (self .TESTFN , "w" ) as zf :
1854+ zf .writestr ("test_no_source_date_epoch.txt" , data )
1855+
1856+ with zipfile .ZipFile (self .TESTFN , "r" ) as zf :
1857+ zip_info = zf .getinfo ("test_no_source_date_epoch.txt" )
1858+ current_time = time .gmtime ()[:6 ]
1859+ self .assertNotEqual (zip_info .date_time , current_time )
1860+
18371861 def create_zipfile_with_extra_data (self , filename , extra_data_name ):
18381862 with zipfile .ZipFile (TESTFN , mode = 'w' ) as zf :
18391863 filename_encoded = filename .encode ("utf-8" )
0 commit comments