resource_extractor.py should preserve the timestamps of entries of the input JAR
RELNOTES:
--
MOS_MIGRATED_REVID=139370787
diff --git a/tools/android/resource_extractor.py b/tools/android/resource_extractor.py
index 5177d5e..2cd11d9 100644
--- a/tools/android/resource_extractor.py
+++ b/tools/android/resource_extractor.py
@@ -90,7 +90,7 @@
def ExtractResources(input_jar, output_zip):
for path in input_jar.namelist():
if IsValidPath(path):
- output_zip.writestr(path, input_jar.read(path))
+ output_zip.writestr(input_jar.getinfo(path), input_jar.read(path))
def main(argv):
diff --git a/tools/android/resource_extractor_test.py b/tools/android/resource_extractor_test.py
index 77a4a37..de5b6a8 100644
--- a/tools/android/resource_extractor_test.py
+++ b/tools/android/resource_extractor_test.py
@@ -62,6 +62,14 @@
"not_CVS/include", "META-INF/services/foo"),
output_zip.namelist())
+ def testTimestampsAreTheSame(self):
+ input_jar = zipfile.ZipFile(StringIO.StringIO(), "w")
+ entry_info = zipfile.ZipInfo("a", (1982, 1, 1, 0, 0, 0))
+ input_jar.writestr(entry_info, "")
+ output_zip = zipfile.ZipFile(StringIO.StringIO(), "w")
+ resource_extractor.ExtractResources(input_jar, output_zip)
+ self.assertEqual((1982, 1, 1, 0, 0, 0), output_zip.getinfo("a").date_time)
+
if __name__ == "__main__":
unittest.main()