@@ -1834,6 +1834,30 @@ def test_write_unicode_filenames(self):
1834
1834
self .assertEqual (zf .filelist [0 ].filename , "foo.txt" )
1835
1835
self .assertEqual (zf .filelist [1 ].filename , "\xf6 .txt" )
1836
1836
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
+
1837
1861
def create_zipfile_with_extra_data (self , filename , extra_data_name ):
1838
1862
with zipfile .ZipFile (TESTFN , mode = 'w' ) as zf :
1839
1863
filename_encoded = filename .encode ("utf-8" )
0 commit comments