5557.1.15
by John Arbash Meinel
Merge bzr.dev 5597 to resolve NEWS, aka bzr-2.3.txt |
1 |
# Copyright (C) 2005, 2006, 2008-2011 Canonical Ltd
|
1887.1.1
by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines, |
2 |
#
|
1692.7.6
by Martin Pool
[patch] force deletion of trees containing readonly files (alexander) |
3 |
# This program is free software; you can redistribute it and/or modify
|
4 |
# it under the terms of the GNU General Public License as published by
|
|
5 |
# the Free Software Foundation; either version 2 of the License, or
|
|
6 |
# (at your option) any later version.
|
|
1887.1.1
by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines, |
7 |
#
|
1692.7.6
by Martin Pool
[patch] force deletion of trees containing readonly files (alexander) |
8 |
# This program is distributed in the hope that it will be useful,
|
9 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11 |
# GNU General Public License for more details.
|
|
1887.1.1
by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines, |
12 |
#
|
1692.7.6
by Martin Pool
[patch] force deletion of trees containing readonly files (alexander) |
13 |
# You should have received a copy of the GNU General Public License
|
14 |
# along with this program; if not, write to the Free Software
|
|
4183.7.1
by Sabin Iacob
update FSF mailing address |
15 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
1692.7.6
by Martin Pool
[patch] force deletion of trees containing readonly files (alexander) |
16 |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
17 |
"""Test for setup.py build process"""
|
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
18 |
|
6591.1.2
by Vincent Ladeuil
Minimal tests to cover using distutils.version.LooseVersion for pyrex. |
19 |
from distutils import version |
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
20 |
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 |
21 |
import sys |
22 |
import subprocess |
|
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
23 |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
24 |
import bzrlib |
6437.53.2
by Martin Packman
Isolate test_setup more completely with TestCaseInTempDir |
25 |
from bzrlib import tests |
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
26 |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
27 |
# TODO: Run bzr from the installed copy to see if it works. Really we need to
|
28 |
# run something that exercises every module, just starting it may not detect
|
|
29 |
# some missing modules.
|
|
30 |
#
|
|
31 |
# TODO: Check that the version numbers are in sync. (Or avoid this...)
|
|
1540.3.31
by Martin Pool
Fix up TestSetup.tearDown - shouldn't try to remove nonexistent directory |
32 |
|
6437.53.2
by Martin Packman
Isolate test_setup more completely with TestCaseInTempDir |
33 |
class TestSetup(tests.TestCaseInTempDir): |
1185.33.89
by Martin Pool
[patch] add a selftest test that the setup build script works (Alexander Belchenko) |
34 |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
35 |
def test_build_and_install(self): |
1540.3.31
by Martin Pool
Fix up TestSetup.tearDown - shouldn't try to remove nonexistent directory |
36 |
""" test cmd `python setup.py build`
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
37 |
|
1861.2.15
by Alexander Belchenko
English phrases corrected as John Meinel suggested. |
38 |
This tests that the build process and man generator run correctly.
|
39 |
It also can catch new subdirectories that weren't added to setup.py.
|
|
1540.3.31
by Martin Pool
Fix up TestSetup.tearDown - shouldn't try to remove nonexistent directory |
40 |
"""
|
4797.77.1
by Max Bowsher
Fix skip criteria for bzrlib.tests.test_setup - it was testing whether setup.py existed in one location, then trying to execute setup.py in a different location. |
41 |
# setup.py must be run from the root source directory, but the tests
|
42 |
# are not necessarily invoked from there
|
|
43 |
self.source_dir = os.path.dirname(os.path.dirname(bzrlib.__file__)) |
|
44 |
if not os.path.isfile(os.path.join(self.source_dir, 'setup.py')): |
|
6437.53.2
by Martin Packman
Isolate test_setup more completely with TestCaseInTempDir |
45 |
self.skip( |
5523.1.1
by Vincent Ladeuil
Merge 2.2 into trunk resolving conflicts and including fix for bug #632465 |
46 |
'There is no setup.py file adjacent to the bzrlib directory') |
1993.2.1
by John Arbash Meinel
Skip the setup tests if they don't have distutils. |
47 |
try: |
1995.1.2
by Matthieu Moy
Test for the presence of the Makefile |
48 |
import distutils.sysconfig |
49 |
makefile_path = distutils.sysconfig.get_makefile_filename() |
|
50 |
if not os.path.exists(makefile_path): |
|
6437.53.2
by Martin Packman
Isolate test_setup more completely with TestCaseInTempDir |
51 |
self.skip( |
5523.1.1
by Vincent Ladeuil
Merge 2.2 into trunk resolving conflicts and including fix for bug #632465 |
52 |
'You must have the python Makefile installed to run this'
|
53 |
' test. Usually this can be found by installing'
|
|
54 |
' "python-dev"') |
|
1993.2.1
by John Arbash Meinel
Skip the setup tests if they don't have distutils. |
55 |
except ImportError: |
6437.53.2
by Martin Packman
Isolate test_setup more completely with TestCaseInTempDir |
56 |
self.skip( |
5523.1.1
by Vincent Ladeuil
Merge 2.2 into trunk resolving conflicts and including fix for bug #632465 |
57 |
'You must have distutils installed to run this test.'
|
58 |
' Usually this can be found by installing "python-dev"') |
|
6437.53.3
by Martin Packman
Wording tweak suggested bu vila in review |
59 |
self.log('test_build running from %s' % self.source_dir) |
6437.53.1
by Martin Packman
Make test_setup put build and install products in a tempdir |
60 |
build_dir = os.path.join(self.test_dir, "build") |
61 |
install_dir = os.path.join(self.test_dir, "install") |
|
62 |
self.run_setup([ |
|
63 |
'build', '-b', build_dir, |
|
64 |
'install', '--root', install_dir]) |
|
65 |
# Install layout is platform dependant
|
|
66 |
self.assertPathExists(install_dir) |
|
67 |
self.run_setup(['clean', '-b', build_dir]) |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
68 |
|
69 |
def run_setup(self, args): |
|
70 |
args = [sys.executable, './setup.py', ] + args |
|
71 |
self.log('source base directory: %s', self.source_dir) |
|
72 |
self.log('args: %r', args) |
|
73 |
p = subprocess.Popen(args, |
|
74 |
cwd=self.source_dir, |
|
5404.1.1
by Andrew Bennetts
Use StringIO rather than real files on disk for log files in tests. |
75 |
stdout=subprocess.PIPE, |
76 |
stderr=subprocess.PIPE, |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
77 |
)
|
5404.1.1
by Andrew Bennetts
Use StringIO rather than real files on disk for log files in tests. |
78 |
stdout, stderr = p.communicate() |
79 |
self.log('stdout: %r', stdout) |
|
80 |
self.log('stderr: %r', stderr) |
|
1912.1.3
by Martin Pool
Add tests for build/install targets |
81 |
self.assertEqual(0, p.returncode, |
82 |
'invocation of %r failed' % args) |
|
6591.1.2
by Vincent Ladeuil
Minimal tests to cover using distutils.version.LooseVersion for pyrex. |
83 |
|
84 |
||
85 |
class TestDistutilsVersion(tests.TestCase): |
|
86 |
||
87 |
def test_version_with_string(self): |
|
88 |
# We really care about two pyrex specific versions and our ability to
|
|
89 |
# detect them
|
|
90 |
lv = version.LooseVersion |
|
91 |
self.assertTrue(lv("0.9.4.1") < lv('0.17.beta1')) |
|
92 |
self.assertTrue(lv("0.9.6.3") < lv('0.10')) |