~bzr-pqm/bzr/bzr.dev

2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2006 Canonical Ltd
1740.5.1 by Martin Pool
When an unhandled exception occurs, write the traceback to stderr.
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
"""Tests for display of exceptions."""
18
19
import os
20
import sys
21
1904.2.5 by Martin Pool
Fix format warning inside test suite and add test
22
from bzrlib import bzrdir, repository
23
1740.5.1 by Martin Pool
When an unhandled exception occurs, write the traceback to stderr.
24
from bzrlib.tests import TestCaseInTempDir, TestCase
1740.5.6 by Martin Pool
Clean up many exception classes.
25
from bzrlib.errors import NotBranchError
1740.5.1 by Martin Pool
When an unhandled exception occurs, write the traceback to stderr.
26
27
class TestExceptionReporting(TestCase):
28
1740.5.2 by Martin Pool
Improved tests for display of exceptions.
29
    def test_report_exception(self):
1740.5.1 by Martin Pool
When an unhandled exception occurs, write the traceback to stderr.
30
        """When an error occurs, display bug report details to stderr"""
31
        out, err = self.run_bzr("assert-fail", retcode=3)
32
        self.assertContainsRe(err,
1740.5.3 by Martin Pool
Cleanup more exception-formatting code
33
                r'bzr: ERROR: exceptions\.AssertionError: always fails\n')
1740.5.1 by Martin Pool
When an unhandled exception occurs, write the traceback to stderr.
34
        self.assertContainsRe(err, r'please send this report to')
35
36
    # TODO: assert-fail doesn't need to always be present; we could just
37
    # register (and unregister) it from tests that want to touch it.
38
    #
1740.5.7 by Martin Pool
Add test for formatting of EPIPE
39
    # TODO: Some kind of test for the feature of invoking pdb
1904.2.5 by Martin Pool
Fix format warning inside test suite and add test
40
    
41
42
class TestDeprecationWarning(TestCaseInTempDir):
43
44
    def test_repository_deprecation_warning(self):
45
        """Old formats give a warning"""
46
        # the warning's normally off for testing but we reenable it
47
        repository._deprecation_warning_done = False
48
        try:
49
            os.mkdir('foo')
50
            bzrdir.BzrDirFormat5().initialize('foo')
51
            out, err = self.run_bzr("status", "foo")
1927.3.1 by Carl Friedrich Bolz
Throw away on-disk logfile when possible.
52
            self.assertContainsRe(self._get_log(keep_log_file=True),
53
                                  "bzr upgrade")
1904.2.5 by Martin Pool
Fix format warning inside test suite and add test
54
        finally:
55
            repository._deprecation_warning_done = True
56