/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_trace.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-22 00:56:52 UTC
  • mfrom: (6621.2.26 py3_pokes)
  • Revision ID: jelmer@jelmer.uk-20170522005652-yjahcr9hwmjkno7n
Merge Python3 porting work ('py3 pokes')

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
"""Tests for trace library"""
20
20
 
21
 
from cStringIO import StringIO
22
21
import errno
23
22
import logging
24
23
import os
26
25
import sys
27
26
import tempfile
28
27
 
29
 
from breezy import (
 
28
from .. import (
30
29
    debug,
31
30
    errors,
32
31
    trace,
33
32
    )
34
 
from breezy.tests import features, TestCaseInTempDir, TestCase
35
 
from breezy.trace import (
 
33
from ..sixish import (
 
34
    BytesIO,
 
35
    )
 
36
from . import features, TestCaseInTempDir, TestCase
 
37
from ..trace import (
36
38
    mutter, mutter_callsite, report_exception,
37
39
    set_verbosity_level, get_verbosity_level, is_quiet, is_verbose, be_quiet,
38
40
    pop_log_file,
44
46
 
45
47
def _format_exception():
46
48
    """Format an exception as it would normally be displayed to the user"""
47
 
    buf = StringIO()
 
49
    buf = BytesIO()
48
50
    report_exception(sys.exc_info(), buf)
49
51
    return buf.getvalue()
50
52
 
57
59
        # depending on whether apport is available or not.  See test_crash for
58
60
        # more.
59
61
        try:
60
 
            raise NotImplementedError, "time travel"
 
62
            raise NotImplementedError("time travel")
61
63
        except NotImplementedError:
62
64
            pass
63
65
        err = _format_exception()
99
101
    def test_format_os_error(self):
100
102
        try:
101
103
            os.rmdir('nosuchfile22222')
102
 
        except OSError, e:
 
104
        except OSError as e:
103
105
            e_str = str(e)
104
106
        msg = _format_exception()
105
107
        # Linux seems to give "No such file" but Windows gives "The system
164
166
        """Short friendly message for missing system modules."""
165
167
        try:
166
168
            import ImaginaryModule
167
 
        except ImportError, e:
 
169
        except ImportError as e:
168
170
            pass
169
171
        else:
170
172
            self.fail("somehow succeeded in importing %r" % ImaginaryModule)
176
178
    def test_report_import_syntax_error(self):
177
179
        try:
178
180
            raise ImportError("syntax error")
179
 
        except ImportError, e:
 
181
        except ImportError as e:
180
182
            pass
181
183
        msg = _format_exception()
182
184
        self.assertContainsRe(msg,
313
315
        # If _open_brz_log cannot open the file, then we should write the
314
316
        # warning to stderr. Since this is normally happening before logging is
315
317
        # set up.
316
 
        self.overrideAttr(sys, 'stderr', StringIO())
 
318
        self.overrideAttr(sys, 'stderr', BytesIO())
317
319
        # Set the log file to something that cannot exist
318
 
        self.overrideEnv('BRZ_LOG', os.getcwd() + '/no-dir/brz.log')
 
320
        self.overrideEnv('BRZ_LOG', '/no-such-dir/brz.log')
319
321
        self.overrideAttr(trace, '_brz_log_filename')
320
322
        logf = trace._open_brz_log()
321
323
        self.assertIs(None, logf)
322
 
        self.assertContainsRe(sys.stderr.getvalue(),
323
 
                              'failed to open trace file: .*/no-dir/brz.log')
 
324
        self.assertContainsRe(
 
325
            sys.stderr.getvalue(),
 
326
            "failed to open trace file: .* '/no-such-dir/brz.log'$")
324
327
 
325
328
 
326
329
class TestVerbosityLevel(TestCase):