43
43
This tests that the build process and man generator run correctly.
44
44
It also can catch new subdirectories that weren't added to setup.py.
46
if not os.path.isfile('setup.py'):
47
raise TestSkipped('There is no setup.py file in current directory')
46
# setup.py must be run from the root source directory, but the tests
47
# are not necessarily invoked from there
48
self.source_dir = os.path.dirname(os.path.dirname(bzrlib.__file__))
49
if not os.path.isfile(os.path.join(self.source_dir, 'setup.py')):
51
'There is no setup.py file adjacent to the bzrlib directory')
49
53
import distutils.sysconfig
50
54
makefile_path = distutils.sysconfig.get_makefile_filename()
51
55
if not os.path.exists(makefile_path):
52
raise TestSkipped('You must have the python Makefile installed to run this test.'
53
' Usually this can be found by installing "python-dev"')
57
'You must have the python Makefile installed to run this'
58
' test. Usually this can be found by installing'
54
60
except ImportError:
55
raise TestSkipped('You must have distutils installed to run this test.'
56
' Usually this can be found by installing "python-dev"')
62
'You must have distutils installed to run this test.'
63
' Usually this can be found by installing "python-dev"')
57
64
self.log('test_build running in %s' % os.getcwd())
58
install_dir = osutils.mkdtemp()
59
# setup.py must be run from the root source directory, but the tests
60
# are not necessarily invoked from there
61
self.source_dir = os.path.dirname(os.path.dirname(bzrlib.__file__))
65
root_dir = osutils.mkdtemp()
63
67
self.run_setup(['clean'])
64
68
# build is implied by install
65
69
## self.run_setup(['build'])
66
self.run_setup(['install', '--prefix', install_dir])
70
self.run_setup(['install', '--root', root_dir])
67
71
self.run_setup(['clean'])
69
osutils.rmtree(install_dir)
73
osutils.rmtree(root_dir)
71
75
def run_setup(self, args):
72
76
args = [sys.executable, './setup.py', ] + args