~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/__init__.py

  • Committer: Martin Pool
  • Date: 2005-07-06 04:20:14 UTC
  • Revision ID: mbp@sourcefrog.net-20050706042014-fd5067865d8ff5a1
- delay import of subprocess module until it's needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
from unittest import TestResult, TestCase
19
19
 
20
 
try:
21
 
    import shutil
22
 
    from subprocess import call, Popen, PIPE
23
 
except ImportError, e:
24
 
    import sys
25
 
    sys.stderr.write("testbzr: sorry, this test suite requires the subprocess module\n"
26
 
                     "this is shipped with python2.4 and available separately for 2.3\n")
27
 
    raise
28
 
 
29
 
 
30
20
class CommandFailed(Exception):
31
21
    pass
32
22
 
69
59
        If a single string is based, it is split into words.
70
60
        For commands that are not simple space-separated words, please
71
61
        pass a list instead."""
 
62
        try:
 
63
            import shutil
 
64
            from subprocess import call
 
65
        except ImportError, e:
 
66
            import sys
 
67
            sys.stderr.write("testbzr: sorry, this test suite requires the subprocess module\n"
 
68
                             "this is shipped with python2.4 and available separately for 2.3\n")
 
69
            raise
 
70
 
 
71
 
72
72
        cmd = self.formcmd(cmd)
73
73
 
74
74
        self.log('$ ' + ' '.join(cmd))
81
81
 
82
82
    def backtick(self, cmd, retcode=0):
83
83
        """Run a command and return its output"""
 
84
        try:
 
85
            import shutil
 
86
            from subprocess import Popen, PIPE
 
87
        except ImportError, e:
 
88
            import sys
 
89
            sys.stderr.write("testbzr: sorry, this test suite requires the subprocess module\n"
 
90
                             "this is shipped with python2.4 and available separately for 2.3\n")
 
91
            raise
 
92
 
 
93
 
84
94
        cmd = self.formcmd(cmd)
85
95
        child = Popen(cmd, stdout=PIPE, stderr=self.TEST_LOG)
86
96
        outd, errd = child.communicate()