# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os import unittest from collections import OrderedDict
import mozunit import six
import mozpack.path as mozpath from mozpack.files import FileFinder from mozpack.mozjar import (
Deflater,
JarLog,
JarReader,
JarReaderError,
JarStruct,
JarWriter,
JarWriterError,
) from mozpack.test.test_files import MockDest
def test_deflater_compress(self):
deflater = Deflater(True)
deflater.write(self.wrap(b"aaaaaaaaaaaaanopqrstuvwxyz"))
self.assertTrue(deflater.compressed)
self.assertEqual(deflater.uncompressed_size, 26)
self.assertNotEqual(deflater.compressed_size, deflater.uncompressed_size)
self.assertEqual(deflater.crc32, 0xD46B97ED) # The CRC is the same as when not compressed
deflater = Deflater(False)
self.assertFalse(deflater.compressed)
deflater.write(self.wrap(b"aaaaaaaaaaaaanopqrstuvwxyz"))
self.assertEqual(deflater.crc32, 0xD46B97ED)
if os.sep == "\\":
self.assertEqual(
files[3].filename, "baz/backslash", "backslashes in filenames on Windows should get normalized",
) else:
self.assertEqual(
files[3].filename, "baz\\backslash", "backslashes in filenames on POSIX platform are untouched",
)
s = MockDest() with JarWriter(fileobj=s, compress=False) as jar:
jar.add("bar", b"aaaaaaaaaaaaanopqrstuvwxyz")
jar.add("foo", b"foo")
jar.add("baz/qux", b"aaaaaaaaaaaaanopqrstuvwxyz", True)
jar = JarReader(fileobj=s)
files = [j for j in jar]
def test_add_from_finder(self):
s = MockDest() with JarWriter(fileobj=s) as jar:
finder = FileFinder(test_data_path) for p, f in finder.find("test_data"):
jar.add("test_data", f)
jar = JarReader(fileobj=s)
files = [j for j in jar]
class TestPreload(unittest.TestCase): def test_preload(self):
s = MockDest() with JarWriter(fileobj=s) as jar:
jar.add("foo", b"foo")
jar.add("bar", b"abcdefghijklmnopqrstuvwxyz")
jar.add("baz/qux", b"aaaaaaaaaaaaanopqrstuvwxyz")
jar = JarReader(fileobj=s)
self.assertEqual(jar.last_preloaded, None)
with JarWriter(fileobj=s) as jar:
jar.add("foo", b"foo")
jar.add("bar", b"abcdefghijklmnopqrstuvwxyz")
jar.add("baz/qux", b"aaaaaaaaaaaaanopqrstuvwxyz")
jar.preload(["baz/qux", "bar"])
jar = JarReader(fileobj=s)
self.assertEqual(jar.last_preloaded, "bar")
files = [j for j in jar]
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.