~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/script.py

  • Committer: Martin Pool
  • Date: 2010-10-13 03:47:21 UTC
  • mfrom: (5489 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5490.
  • Revision ID: mbp@sourcefrog.net-20101013034721-sj95vv29bj300eq5
merge news

Show diffs side-by-side

added added

removed removed

Lines of Context:
221
221
        retcode, actual_output, actual_error = method(test_case,
222
222
                                                      str_input, args)
223
223
 
224
 
        self._check_output(output, actual_output, test_case)
225
 
        self._check_output(error, actual_error, test_case)
 
224
        try:
 
225
            self._check_output(output, actual_output, test_case)
 
226
        except AssertionError, e:
 
227
            raise AssertionError(str(e) + " in stdout of command %s" % cmd)
 
228
        try:
 
229
            self._check_output(error, actual_error, test_case)
 
230
        except AssertionError, e:
 
231
            raise AssertionError(str(e) +
 
232
                " in stderr of running command %s" % cmd)
226
233
        if retcode and not error and actual_error:
227
234
            test_case.fail('In \n\t%s\nUnexpected error: %s'
228
235
                           % (' '.join(cmd), actual_error))
229
236
        return retcode, actual_output, actual_error
230
237
 
231
238
    def _check_output(self, expected, actual, test_case):
232
 
        if expected is None:
233
 
            # Specifying None means: any output is accepted
234
 
            return
235
 
        if actual is None:
236
 
            test_case.fail('We expected output: %r, but found None'
237
 
                           % (expected,))
 
239
        if not actual:
 
240
            if expected is None:
 
241
                return
 
242
            elif expected == '...\n':
 
243
                return
 
244
            else:
 
245
                test_case.fail('expected output: %r, but found nothing'
 
246
                            % (expected,))
 
247
        expected = expected or ''
238
248
        matching = self.output_checker.check_output(
239
249
            expected, actual, self.check_options)
240
250
        if not matching: