| # Copyright 2017 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import unittest |
| import zipfile |
| |
| from devil import devil_env |
| from devil.utils import zip_utils |
| |
| with devil_env.SysPath(devil_env.PY_UTILS_PATH): |
| from py_utils import tempfile_ext |
| |
| |
| class WriteZipFileTest(unittest.TestCase): |
| def testSimple(self): |
| with tempfile_ext.NamedTemporaryDirectory() as working_dir: |
| file1 = os.path.join(working_dir, 'file1.txt') |
| file2 = os.path.join(working_dir, 'file2.txt') |
| |
| with open(file1, 'w') as f1: |
| f1.write('file1') |
| with open(file2, 'w') as f2: |
| f2.write('file2') |
| |
| zip_tuples = [ |
| (file1, 'foo/file1.txt'), |
| (file2, 'bar/file2.txt'), |
| ] |
| |
| zip_path = os.path.join(working_dir, 'out.zip') |
| zip_utils.WriteZipFile(zip_path, zip_tuples) |
| |
| self.assertTrue(zipfile.is_zipfile(zip_path)) |
| |
| actual = zipfile.ZipFile(zip_path) |
| expected_files = [ |
| 'foo/file1.txt', |
| 'bar/file2.txt', |
| ] |
| |
| self.assertEquals(sorted(expected_files), sorted(actual.namelist())) |