~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_setup.py

first cut at merge from integration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 by Canonical Ltd
2
 
 
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.
7
 
 
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.
12
 
 
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
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
 
 
17
1
""" test for setup.py build process """
18
2
 
19
3
import os
20
4
import sys
21
5
import subprocess
22
6
import shutil
23
 
from tempfile import TemporaryFile
24
7
 
25
8
from bzrlib.tests import TestCase
26
 
import bzrlib.osutils as osutils
27
9
 
28
 
# TODO: ideally run this in a separate directory, so as not to clobber the
29
 
# real build directory
30
10
 
31
11
class TestSetup(TestCase):
32
12
 
 
13
    def setUp(self):
 
14
        pass
 
15
 
33
16
    def test_build(self):
34
 
        """ test cmd `python setup.py build`
35
 
        
36
 
        This typically catches new subdirectories which weren't added to setup.py
37
 
        """
38
 
        self.log('test_build running in %s' % os.getcwd())
39
 
        try:
40
 
            # run setup.py build as subproces and catch return code
41
 
            out_file = TemporaryFile()
42
 
            err_file = TemporaryFile()
43
 
            p = subprocess.Popen([sys.executable, 'setup.py', 'build'],
44
 
                                 stdout=out_file, stderr=err_file)
45
 
            s = p.communicate()
46
 
            self.assertEqual(0, p.returncode, '`python setup.py build` fails')
47
 
        finally:
48
 
            if os.path.exists('build'):
49
 
                osutils.rmtree(u'build')
 
17
        """ test cmd `python setup.py build` """
 
18
        # run setup.py build as subproces and catch return code
 
19
        p = subprocess.Popen([sys.executable, 'setup.py', 'build'],
 
20
                stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
21
        s = p.communicate()
 
22
        self.assertEqual(0, p.returncode, '`python setup.py build` fails')
 
23
 
 
24
    def tearDown(self):
 
25
        """ cleanup build directory """
 
26
        shutil.rmtree(u'build')