~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_trace.py

  • Committer: John Arbash Meinel
  • Date: 2006-07-04 14:00:29 UTC
  • mto: (1711.2.74 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 1837.
  • Revision ID: john@arbash-meinel.com-20060704140029-f7d23145ea05d75a
Add emacs ignores, remove old ignores

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2005, 2006 by Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
18
18
 
19
19
"""Tests for trace library"""
20
20
 
21
 
from cStringIO import StringIO
22
21
import errno
23
22
import os
24
23
import sys
 
24
from StringIO import StringIO
25
25
 
26
 
from bzrlib import (
27
 
    errors,
28
 
    )
29
26
from bzrlib.tests import TestCaseInTempDir, TestCase
30
27
from bzrlib.trace import mutter, report_exception
 
28
from bzrlib.errors import NotBranchError
31
29
 
32
30
 
33
31
def _format_exception():
68
66
        msg = _format_exception()
69
67
        self.assertContainsRe(msg, r'^bzr: ERROR: \[Errno .*\] No such file.*nosuchfile')
70
68
 
71
 
    def test_format_unicode_error(self):
72
 
        try:
73
 
            raise errors.BzrCommandError(u'argument foo\xb5 does not exist')
74
 
        except errors.BzrCommandError:
75
 
            pass
76
 
        msg = _format_exception()
77
69
 
78
70
    def test_format_exception(self):
79
71
        """Short formatting of bzr exceptions"""
80
72
        try:
81
 
            raise errors.NotBranchError('wibble')
82
 
        except errors.NotBranchError:
 
73
            raise NotBranchError, 'wibble'
 
74
        except NotBranchError:
83
75
            pass
84
76
        msg = _format_exception()
85
77
        self.assertTrue(len(msg) > 0)
88
80
    def test_trace_unicode(self):
89
81
        """Write Unicode to trace log"""
90
82
        self.log(u'the unicode character for benzene is \N{BENZENE RING}')
91
 
        self.assertContainsRe(self._get_log(keep_log_file=True),
92
 
                              "the unicode character for benzene is")
93
 
    
94
 
    def test_trace_argument_unicode(self):
95
 
        """Write a Unicode argument to the trace log"""
96
 
        mutter(u'the unicode character for benzene is %s', u'\N{BENZENE RING}')
97
 
        self.assertContainsRe(self._get_log(keep_log_file=True),
98
 
                              'the unicode character')
99
 
 
100
 
    def test_trace_argument_utf8(self):
101
 
        """Write a Unicode argument to the trace log"""
102
 
        mutter(u'the unicode character for benzene is %s',
103
 
               u'\N{BENZENE RING}'.encode('utf-8'))
104
 
        self.assertContainsRe(self._get_log(keep_log_file=True),
105
 
                              'the unicode character')
 
83
        self.assertContainsRe('the unicode character',
 
84
                self._get_log())
106
85
 
107
86
    def test_report_broken_pipe(self):
108
87
        try:
118
97
        # raise an exception
119
98
        mutter(u'Writing a greek mu (\xb5) works in a unicode string')
120
99
        mutter('But fails in an ascii string \xb5')
121
 
        mutter('and in an ascii argument: %s', '\xb5')
122
 
        log = self._get_log(keep_log_file=True)
 
100
        # TODO: jam 20051227 mutter() doesn't flush the log file, and
 
101
        #       self._get_log() opens the file directly and reads it.
 
102
        #       So we need to manually flush the log file
 
103
        import bzrlib.trace
 
104
        bzrlib.trace._trace_file.flush()
 
105
        log = self._get_log()
123
106
        self.assertContainsRe(log, 'Writing a greek mu')
124
 
        self.assertContainsRe(log, "But fails in an ascii string")
125
 
        self.assertContainsRe(log, u"ascii argument: \xb5")
 
107
        self.assertContainsRe(log, 'UnicodeError')
 
108
        self.assertContainsRe(log, "'But fails in an ascii string")