1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
1 |
""" test for setup.py build process """
|
2 |
||
3 |
import os |
|
1185.31.59
by John Arbash Meinel
Switch to sys.executable instead of just 'python' to make sure to run the right executable |
4 |
import sys |
5 |
import subprocess |
|
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
6 |
import shutil |
1540.3.32
by Martin Pool
Clean up test_setup code; avoid possible pipe jam |
7 |
from tempfile import TemporaryFile |
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
8 |
|
9 |
from bzrlib.tests import TestCase |
|
10 |
||
11 |
||
1540.3.31
by Martin Pool
Fix up TestSetup.tearDown - shouldn't try to remove nonexistent directory |
12 |
# TODO: ideally run this in a separate directory, so as not to clobber the
|
13 |
# real build directory
|
|
14 |
||
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
15 |
class TestSetup(TestCase): |
16 |
||
17 |
def test_build(self): |
|
1540.3.31
by Martin Pool
Fix up TestSetup.tearDown - shouldn't try to remove nonexistent directory |
18 |
""" test cmd `python setup.py build`
|
19 |
|
|
20 |
This typically catches new subdirectories which weren't added to setup.py
|
|
21 |
"""
|
|
1540.3.32
by Martin Pool
Clean up test_setup code; avoid possible pipe jam |
22 |
self.log('test_build running in %s' % os.getcwd()) |
23 |
try: |
|
24 |
# run setup.py build as subproces and catch return code
|
|
25 |
out_file = TemporaryFile() |
|
26 |
err_file = TemporaryFile() |
|
27 |
p = subprocess.Popen([sys.executable, 'setup.py', 'build'], |
|
28 |
stdout=out_file, stderr=err_file) |
|
29 |
s = p.communicate() |
|
30 |
self.assertEqual(0, p.returncode, '`python setup.py build` fails') |
|
31 |
finally: |
|
32 |
if os.path.exists('build'): |
|
33 |
shutil.rmtree(u'build') |