aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/tests/test_upload_docs.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_upload_docs.py')
-rw-r--r--setuptools/tests/test_upload_docs.py93
1 files changed, 40 insertions, 53 deletions
diff --git a/setuptools/tests/test_upload_docs.py b/setuptools/tests/test_upload_docs.py
index 769f16cc..cc71cadb 100644
--- a/setuptools/tests/test_upload_docs.py
+++ b/setuptools/tests/test_upload_docs.py
@@ -1,72 +1,59 @@
-"""build_ext tests
-"""
-import sys, os, shutil, tempfile, unittest, site, zipfile
+import os
+import zipfile
+import contextlib
+
+import pytest
+
from setuptools.command.upload_docs import upload_docs
from setuptools.dist import Distribution
-SETUP_PY = """\
-from setuptools import setup
+from .textwrap import DALS
+from . import contexts
+
-setup(name='foo')
-"""
+SETUP_PY = DALS(
+ """
+ from setuptools import setup
-class TestUploadDocsTest(unittest.TestCase):
- def setUp(self):
- self.dir = tempfile.mkdtemp()
- setup = os.path.join(self.dir, 'setup.py')
- f = open(setup, 'w')
+ setup(name='foo')
+ """)
+
+
+@pytest.fixture
+def sample_project(tmpdir_cwd):
+ # setup.py
+ with open('setup.py', 'wt') as f:
f.write(SETUP_PY)
- f.close()
- self.old_cwd = os.getcwd()
- os.chdir(self.dir)
- self.upload_dir = os.path.join(self.dir, 'build')
- os.mkdir(self.upload_dir)
+ os.mkdir('build')
- # A test document.
- f = open(os.path.join(self.upload_dir, 'index.html'), 'w')
+ # A test document.
+ with open('build/index.html', 'w') as f:
f.write("Hello world.")
- f.close()
-
- # An empty folder.
- os.mkdir(os.path.join(self.upload_dir, 'empty'))
-
- if sys.version >= "2.6":
- self.old_base = site.USER_BASE
- site.USER_BASE = upload_docs.USER_BASE = tempfile.mkdtemp()
- self.old_site = site.USER_SITE
- site.USER_SITE = upload_docs.USER_SITE = tempfile.mkdtemp()
-
- def tearDown(self):
- os.chdir(self.old_cwd)
- shutil.rmtree(self.dir)
- if sys.version >= "2.6":
- shutil.rmtree(site.USER_BASE)
- shutil.rmtree(site.USER_SITE)
- site.USER_BASE = self.old_base
- site.USER_SITE = self.old_site
+
+ # An empty folder.
+ os.mkdir('build/empty')
+
+
+@pytest.mark.usefixtures('sample_project')
+@pytest.mark.usefixtures('user_override')
+class TestUploadDocsTest:
def test_create_zipfile(self):
- # Test to make sure zipfile creation handles common cases.
- # This explicitly includes a folder containing an empty folder.
+ """
+ Ensure zipfile creation handles common cases, including a folder
+ containing an empty folder.
+ """
dist = Distribution()
cmd = upload_docs(dist)
- cmd.upload_dir = self.upload_dir
- cmd.target_dir = self.upload_dir
- tmp_dir = tempfile.mkdtemp()
- tmp_file = os.path.join(tmp_dir, 'foo.zip')
- try:
+ cmd.target_dir = cmd.upload_dir = 'build'
+ with contexts.tempdir() as tmp_dir:
+ tmp_file = os.path.join(tmp_dir, 'foo.zip')
zip_file = cmd.create_zipfile(tmp_file)
assert zipfile.is_zipfile(tmp_file)
- zip_file = zipfile.ZipFile(tmp_file) # woh...
-
- assert zip_file.namelist() == ['index.html']
-
- zip_file.close()
- finally:
- shutil.rmtree(tmp_dir)
-
+ with contextlib.closing(zipfile.ZipFile(tmp_file)) as zip_file:
+ assert zip_file.namelist() == ['index.html']