3
import sys, os, shutil, tempfile, unittest, site, zipfile
4
from setuptools.command.upload_docs import upload_docs
5
from setuptools.dist import Distribution
8
from setuptools import setup
13
class TestUploadDocsTest(unittest.TestCase):
15
self.dir = tempfile.mkdtemp()
16
setup = os.path.join(self.dir, 'setup.py')
20
self.old_cwd = os.getcwd()
23
self.upload_dir = os.path.join(self.dir, 'build')
24
os.mkdir(self.upload_dir)
27
f = open(os.path.join(self.upload_dir, 'index.html'), 'w')
28
f.write("Hello world.")
32
os.mkdir(os.path.join(self.upload_dir, 'empty'))
34
if sys.version >= "2.6":
35
self.old_base = site.USER_BASE
36
site.USER_BASE = upload_docs.USER_BASE = tempfile.mkdtemp()
37
self.old_site = site.USER_SITE
38
site.USER_SITE = upload_docs.USER_SITE = tempfile.mkdtemp()
41
os.chdir(self.old_cwd)
42
shutil.rmtree(self.dir)
43
if sys.version >= "2.6":
44
shutil.rmtree(site.USER_BASE)
45
shutil.rmtree(site.USER_SITE)
46
site.USER_BASE = self.old_base
47
site.USER_SITE = self.old_site
49
def test_create_zipfile(self):
50
# Test to make sure zipfile creation handles common cases.
51
# This explicitly includes a folder containing an empty folder.
55
cmd = upload_docs(dist)
56
cmd.upload_dir = self.upload_dir
57
zip_file = cmd.create_zipfile()
59
assert zipfile.is_zipfile(zip_file)
61
zip_f = zipfile.ZipFile(zip_file) # woh...
63
assert zip_f.namelist() == ['index.html']