Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /chromium /src /refs/heads/main /. /build /zip_helpers_unittest.py
blob: 19000273b5cae6fbb7817a675deb6d35d59916a3 [file] [log] [blame] [edit]
#!/usr/bin/env python3
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import pathlib
import shutil
import sys
import tempfile
import unittest
import zipfile
import zip_helpers
def _make_test_zips(tmp_dir, create_conflct=False):
zip1= os.path.join(tmp_dir,'A.zip')
zip2= os.path.join(tmp_dir,'B.zip')
with zipfile.ZipFile(zip1,'w')as z:
z.writestr('file1','AAAAA')
z.writestr('file2','BBBBB')
with zipfile.ZipFile(zip2,'w')as z:
z.writestr('file2','ABABA'if create_conflctelse'BBBBB')
z.writestr('file3','CCCCC')
return zip1, zip2
classZipHelpersTest(unittest.TestCase):
def test_merge_zips__identical_file(self):
with tempfile.TemporaryDirectory()as tmp_dir:
zip1, zip2= _make_test_zips(tmp_dir)
merged_zip= os.path.join(tmp_dir,'merged.zip')
zip_helpers.merge_zips(merged_zip,[zip1, zip2])
with zipfile.ZipFile(merged_zip)as z:
self.assertEqual(z.namelist(),['file1','file2','file3'])
def test_merge_zips__conflict(self):
with tempfile.TemporaryDirectory()as tmp_dir:
zip1, zip2= _make_test_zips(tmp_dir, create_conflct=True)
merged_zip= os.path.join(tmp_dir,'merged.zip')
with self.assertRaises(Exception):
zip_helpers.merge_zips(merged_zip,[zip1, zip2])
def test_merge_zips__conflict_with_append(self):
with tempfile.TemporaryDirectory()as tmp_dir:
zip1, zip2= _make_test_zips(tmp_dir, create_conflct=True)
with self.assertRaises(Exception):
with zipfile.ZipFile(zip1,'a')as dst_zip:
zip_helpers.merge_zips(dst_zip,[zip2])
if __name__=='__main__':
unittest.main()

[8]ページ先頭

©2009-2025 Movatter.jp