diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2010-02-22 20:03:59 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2010-02-22 20:03:59 -0500 |
commit | b9da3bd8418678235816f840f4cd86c68527097a (patch) | |
tree | e399c7e15d6b000355230b04c31859b83caf6099 /setuptools/tests/test_sandbox.py | |
parent | 2762c22f7a4dd3a288c04bb10af98605114bb08e (diff) | |
download | external_python_setuptools-b9da3bd8418678235816f840f4cd86c68527097a.tar.gz external_python_setuptools-b9da3bd8418678235816f840f4cd86c68527097a.tar.bz2 external_python_setuptools-b9da3bd8418678235816f840f4cd86c68527097a.zip |
Added test to capture issue #118
--HG--
branch : distribute
extra : rebase_source : 5c247cafcbecb311469147a46f7f82df47ea5341
Diffstat (limited to 'setuptools/tests/test_sandbox.py')
-rw-r--r-- | setuptools/tests/test_sandbox.py | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/setuptools/tests/test_sandbox.py b/setuptools/tests/test_sandbox.py index 1b0dc4ea..8b9e08e6 100644 --- a/setuptools/tests/test_sandbox.py +++ b/setuptools/tests/test_sandbox.py @@ -6,7 +6,20 @@ import shutil import unittest import tempfile -from setuptools.sandbox import DirectorySandbox +from setuptools.sandbox import DirectorySandbox, SandboxViolation + +def has_win32com(): + """ + Run this to determine if the local machine has win32com, and if it + does, include additional tests. + """ + if not sys.platform.startswith('win32'): + return False + try: + mod = __import__('win32com') + except ImportError: + return False + return True class TestSandbox(unittest.TestCase): @@ -18,11 +31,33 @@ class TestSandbox(unittest.TestCase): def test_devnull(self): sandbox = DirectorySandbox(self.dir) + sandbox.run(self._file_writer(os.devnull)) - def _write(): - f = open(os.devnull, 'w') + @staticmethod + def _file_writer(path): + def do_write(): + f = open(path, 'w') f.write('xxx') f.close() - - sandbox.run(_write) - + return do_write + + + if has_win32com(): + def test_win32com(self): + """ + win32com should not be prevented from caching COM interfaces + in gen_py. + """ + import win32com + gen_py = win32com.__gen_path__ + target = os.path.join(gen_py, 'test_write') + sandbox = DirectorySandbox(self.dir) + try: + sandbox.run(self._file_writer(target)) + except SandboxViolation: + self.fail("Could not create gen_py file due to SandboxViolation") + finally: + if os.path.exists(target): os.remove(target) + +if __name__ == '__main__': + unittest.main() |