From 612ef3e5c9ba172868d22d93be64a340b7742fc6 Mon Sep 17 00:00:00 2001 From: Preston Timmons Date: Sat, 6 Apr 2013 13:59:39 -0500 Subject: Modified utils_tests for unittest2 discovery. --- tests/utils_tests/test_archive.py | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/utils_tests/test_archive.py (limited to 'tests/utils_tests/test_archive.py') diff --git a/tests/utils_tests/test_archive.py b/tests/utils_tests/test_archive.py new file mode 100644 index 0000000000..8861b4a577 --- /dev/null +++ b/tests/utils_tests/test_archive.py @@ -0,0 +1,72 @@ +import os +import shutil +import tempfile +from django.utils import unittest + +from django.utils.archive import Archive, extract +from django.utils._os import upath + + +TEST_DIR = os.path.join(os.path.dirname(upath(__file__)), 'archives') + + +class ArchiveTester(object): + archive = None + + def setUp(self): + """ + Create temporary directory for testing extraction. + """ + self.old_cwd = os.getcwd() + self.tmpdir = tempfile.mkdtemp() + self.addCleanup(shutil.rmtree, self.tmpdir) + self.archive_path = os.path.join(TEST_DIR, self.archive) + # Always start off in TEST_DIR. + os.chdir(TEST_DIR) + + def tearDown(self): + os.chdir(self.old_cwd) + + def test_extract_method(self): + with Archive(self.archive) as archive: + archive.extract(self.tmpdir) + self.check_files(self.tmpdir) + + def test_extract_method_no_to_path(self): + os.chdir(self.tmpdir) + with Archive(self.archive_path) as archive: + archive.extract() + self.check_files(self.tmpdir) + + def test_extract_function(self): + extract(self.archive_path, self.tmpdir) + self.check_files(self.tmpdir) + + def test_extract_function_no_to_path(self): + os.chdir(self.tmpdir) + extract(self.archive_path) + self.check_files(self.tmpdir) + + def check_files(self, tmpdir): + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, '1'))) + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, '2'))) + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'foo', '1'))) + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'foo', '2'))) + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'foo', 'bar', '1'))) + self.assertTrue(os.path.isfile(os.path.join(self.tmpdir, 'foo', 'bar', '2'))) + + +class TestZip(ArchiveTester, unittest.TestCase): + archive = 'foobar.zip' + + +class TestTar(ArchiveTester, unittest.TestCase): + archive = 'foobar.tar' + + +class TestGzipTar(ArchiveTester, unittest.TestCase): + archive = 'foobar.tar.gz' + + +class TestBzip2Tar(ArchiveTester, unittest.TestCase): + archive = 'foobar.tar.bz2' -- cgit v1.3