blob: 3e1e04a75fcd14a7a604d98c9778cbf634a66de4 [file] [log] [blame]
Tarek Ziadéeb5f27e2009-05-17 12:12:02 +00001"""Tests for distutils.archive_util."""
Tarek Ziadé441efa82009-05-17 15:03:23 +00002__revision__ = "$Id$"
Tarek Ziadéeb5f27e2009-05-17 12:12:02 +00003
4import unittest
5import os
6
7from distutils.archive_util import (check_archive_formats, make_tarball,
8 make_zipfile, make_archive)
9from distutils.spawn import find_executable
10from distutils.tests import support
11
12try:
13 import zipfile
14 ZIP_SUPPORT = True
15except ImportError:
16 ZIP_SUPPORT = find_executable('zip')
17
18class ArchiveUtilTestCase(support.TempdirManager,
19 unittest.TestCase):
20
21 @unittest.skipUnless(find_executable('tar'), 'Need the tar command to run')
22 def test_make_tarball(self):
23 # creating something to tar
24 tmpdir = self.mkdtemp()
25 self.write_file([tmpdir, 'file1'], 'xxx')
26 self.write_file([tmpdir, 'file2'], 'xxx')
27
28 tmpdir2 = self.mkdtemp()
29 base_name = os.path.join(tmpdir2, 'archive')
30 make_tarball(base_name, tmpdir)
31
32 # check if the compressed tarball was created
33 tarball = base_name + '.tar.gz'
34 self.assert_(os.path.exists(tarball))
35
36 # trying an uncompressed one
37 base_name = os.path.join(tmpdir2, 'archive')
38 make_tarball(base_name, tmpdir, compress=None)
39 tarball = base_name + '.tar'
40 self.assert_(os.path.exists(tarball))
41
42 @unittest.skipUnless(ZIP_SUPPORT, 'Need zip support to run')
Tarek Ziadé441efa82009-05-17 15:03:23 +000043 def test_make_zipfile(self):
Tarek Ziadéeb5f27e2009-05-17 12:12:02 +000044 # creating something to tar
45 tmpdir = self.mkdtemp()
46 self.write_file([tmpdir, 'file1'], 'xxx')
47 self.write_file([tmpdir, 'file2'], 'xxx')
48
49 tmpdir2 = self.mkdtemp()
50 base_name = os.path.join(tmpdir2, 'archive')
51 make_zipfile(base_name, tmpdir)
52
53 # check if the compressed tarball was created
54 tarball = base_name + '.zip'
55
56 def test_check_archive_formats(self):
57 self.assertEquals(check_archive_formats(['gztar', 'xxx', 'zip']),
58 'xxx')
59 self.assertEquals(check_archive_formats(['gztar', 'zip']), None)
60
61 def test_make_archive(self):
62 tmpdir = self.mkdtemp()
63 base_name = os.path.join(tmpdir, 'archive')
64 self.assertRaises(ValueError, make_archive, base_name, 'xxx')
65
66def test_suite():
67 return unittest.makeSuite(ArchiveUtilTestCase)
68
69if __name__ == "__main__":
70 unittest.main(defaultTest="test_suite")