root / env / lib / python2.7 / site-packages / distribute-0.6.19-py2.7.egg / setuptools / tests / test_sandbox.py @ 1a305335
History | View | Annotate | Download (1.68 KB)
1 | 1a305335 | officers | """develop tests
|
---|---|---|---|
2 | """
|
||
3 | import sys |
||
4 | import os |
||
5 | import shutil |
||
6 | import unittest |
||
7 | import tempfile |
||
8 | |||
9 | from setuptools.sandbox import DirectorySandbox, SandboxViolation |
||
10 | |||
11 | def has_win32com(): |
||
12 | """
|
||
13 | Run this to determine if the local machine has win32com, and if it
|
||
14 | does, include additional tests.
|
||
15 | """
|
||
16 | if not sys.platform.startswith('win32'): |
||
17 | return False |
||
18 | try:
|
||
19 | mod = __import__('win32com') |
||
20 | except ImportError: |
||
21 | return False |
||
22 | return True |
||
23 | |||
24 | class TestSandbox(unittest.TestCase): |
||
25 | |||
26 | def setUp(self): |
||
27 | self.dir = tempfile.mkdtemp()
|
||
28 | |||
29 | def tearDown(self): |
||
30 | shutil.rmtree(self.dir)
|
||
31 | |||
32 | def test_devnull(self): |
||
33 | if sys.version < '2.4': |
||
34 | return
|
||
35 | sandbox = DirectorySandbox(self.dir)
|
||
36 | sandbox.run(self._file_writer(os.devnull))
|
||
37 | |||
38 | def _file_writer(path): |
||
39 | def do_write(): |
||
40 | f = open(path, 'w') |
||
41 | f.write('xxx')
|
||
42 | f.close() |
||
43 | return do_write
|
||
44 | |||
45 | _file_writer = staticmethod(_file_writer)
|
||
46 | |||
47 | if has_win32com():
|
||
48 | def test_win32com(self): |
||
49 | """
|
||
50 | win32com should not be prevented from caching COM interfaces
|
||
51 | in gen_py.
|
||
52 | """
|
||
53 | import win32com |
||
54 | gen_py = win32com.__gen_path__ |
||
55 | target = os.path.join(gen_py, 'test_write')
|
||
56 | sandbox = DirectorySandbox(self.dir)
|
||
57 | try:
|
||
58 | try:
|
||
59 | sandbox.run(self._file_writer(target))
|
||
60 | except SandboxViolation:
|
||
61 | self.fail("Could not create gen_py file due to SandboxViolation") |
||
62 | finally:
|
||
63 | if os.path.exists(target): os.remove(target)
|
||
64 | |||
65 | if __name__ == '__main__': |
||
66 | unittest.main() |