skia2/infra/bots/zip_utils_test.py
Hal Canary 389c8e9d2d [minor] mark scripts as executable
if a filename ends with `.py` and  the file begins with '#!.*python.*',
make it executable.

Change-Id: I41de516ff37343d3b0979bde9fd61813aec7365c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/254439
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-11-21 17:06:27 +00:00

75 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python
#
# Copyright 2016 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for zip_utils."""
import filecmp
import os
import test_utils
import unittest
import utils
import uuid
import zip_utils
class ZipUtilsTest(unittest.TestCase):
def test_zip_unzip(self):
with utils.tmp_dir():
fw = test_utils.FileWriter(os.path.join(os.getcwd(), 'input'))
# Create input files and directories.
fw.mkdir('mydir')
fw.mkdir('anotherdir', 0666)
fw.mkdir('dir3', 0600)
fw.mkdir('subdir')
fw.write('a.txt', 0777)
fw.write('b.txt', 0751)
fw.write('c.txt', 0640)
fw.write(os.path.join('subdir', 'd.txt'), 0640)
# Zip, unzip.
zip_utils.zip('input', 'test.zip')
zip_utils.unzip('test.zip', 'output')
# Compare the inputs and outputs.
test_utils.compare_trees(self, 'input', 'output')
def test_blacklist(self):
with utils.tmp_dir():
# Create input files and directories.
fw = test_utils.FileWriter(os.path.join(os.getcwd(), 'input'))
fw.mkdir('.git')
fw.write(os.path.join('.git', 'index'))
fw.write('somefile')
fw.write('.DS_STORE')
fw.write('leftover.pyc')
fw.write('.pycfile')
# Zip, unzip.
zip_utils.zip('input', 'test.zip', blacklist=['.git', '.DS*', '*.pyc'])
zip_utils.unzip('test.zip', 'output')
# Remove the files/dirs we don't expect to see in output, so that we can
# use self._compare_trees to check the results.
fw.remove(os.path.join('.git', 'index'))
fw.remove('.git')
fw.remove('.DS_STORE')
fw.remove('leftover.pyc')
# Compare results.
test_utils.compare_trees(self, 'input', 'output')
def test_nonexistent_dir(self):
with utils.tmp_dir():
with self.assertRaises(IOError):
zip_utils.zip('input', 'test.zip')
if __name__ == '__main__':
unittest.main()