Files
mayan-edms/mayan/apps/common/tests/test_compressed_files.py
2018-09-05 00:40:10 -04:00

71 lines
2.3 KiB
Python

from __future__ import unicode_literals
from common.tests import BaseTestCase
from django.test import override_settings
from ..compressed_files import Archive, TarArchive, ZipArchive
from .literals import (
TEST_COMPRESSED_FILE_CONTENTS, TEST_FILE_CONTENTS_1, TEST_FILE_CONTENTS_2,
TEST_FILE3_PATH, TEST_FILENAME1, TEST_FILENAME2, TEST_FILENAME3,
TEST_TAR_BZ2_FILE_PATH, TEST_TAR_FILE_PATH, TEST_TAR_GZ_FILE_PATH,
TEST_ZIP_FILE_PATH
)
class TarArchiveClassTestCase(BaseTestCase):
archive_path = TEST_TAR_FILE_PATH
cls = TarArchive
filename = TEST_FILENAME3
file_path = TEST_FILE3_PATH
members_list = TEST_COMPRESSED_FILE_CONTENTS
member_name = TEST_FILENAME1
member_contents = TEST_FILE_CONTENTS_1
def test_add_file(self):
archive = self.cls()
archive.create()
with open(self.file_path) as file_object:
archive.add_file(file_object=file_object, filename=self.filename)
self.assertTrue(archive.members(), [self.filename])
def test_open(self):
with open(self.archive_path) as file_object:
archive = Archive.open(file_object=file_object)
self.assertTrue(isinstance(archive, self.cls))
def test_members(self):
with open(self.archive_path) as file_object:
archive = Archive.open(file_object=file_object)
self.assertEqual(archive.members(), self.members_list)
def test_member_contents(self):
with open(self.archive_path) as file_object:
archive = Archive.open(file_object=file_object)
self.assertEqual(
archive.member_contents(filename=self.member_name), self.member_contents
)
def test_open_member(self):
with open(self.archive_path) as file_object:
archive = Archive.open(file_object=file_object)
file_object = archive.open_member(filename=self.member_name)
self.assertEqual(
file_object.read(), self.member_contents
)
class ZipArchiveClassTestCase(TarArchiveClassTestCase):
archive_path = TEST_ZIP_FILE_PATH
cls = ZipArchive
class TarGzArchiveClassTestCase(TarArchiveClassTestCase):
archive_path = TEST_TAR_GZ_FILE_PATH
cls = TarArchive
class TarBz2ArchiveClassTestCase(TarArchiveClassTestCase):
archive_path = TEST_TAR_BZ2_FILE_PATH
cls = TarArchive