~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_trace.py

  • Committer: Alexander Belchenko
  • Date: 2008-02-06 15:33:12 UTC
  • mto: This revision was merged to the branch mainline in revision 3231.
  • Revision ID: bialix@ukr.net-20080206153312-qycs7u05d7fjtwqq
Ian's review

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007 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
23
23
import os
24
24
import re
25
25
import sys
26
 
import tempfile
27
26
 
28
27
from bzrlib import (
29
28
    errors,
32
31
from bzrlib.trace import (
33
32
    mutter, mutter_callsite, report_exception,
34
33
    set_verbosity_level, get_verbosity_level, is_quiet, is_verbose, be_quiet,
35
 
    pop_log_file,
36
 
    push_log_file,
37
34
    _rollover_trace_maybe,
38
35
    )
39
36
 
161
158
        self.assertContainsRe(log, "But fails in an ascii string")
162
159
        self.assertContainsRe(log, u"ascii argument: \xb5")
163
160
 
164
 
    def test_push_log_file(self):
165
 
        """Can push and pop log file, and this catches mutter messages.
166
 
 
167
 
        This is primarily for use in the test framework. 
168
 
        """
169
 
        tmp1 = tempfile.NamedTemporaryFile()
170
 
        tmp2 = tempfile.NamedTemporaryFile()
171
 
        try:
172
 
            memento1 = push_log_file(tmp1)
173
 
            mutter("comment to file1")
174
 
            try:
175
 
                memento2 = push_log_file(tmp2)
176
 
                try:
177
 
                    mutter("comment to file2")
178
 
                finally:
179
 
                    pop_log_file(memento2)
180
 
                mutter("again to file1")
181
 
            finally:
182
 
                pop_log_file(memento1)
183
 
            # the files were opened in binary mode, so should have exactly
184
 
            # these bytes.  and removing the file as the log target should
185
 
            # have caused them to be flushed out.  need to match using regexps
186
 
            # as there's a timestamp at the front.
187
 
            tmp1.seek(0)
188
 
            self.assertContainsRe(tmp1.read(),
189
 
                r"\d+\.\d+  comment to file1\n\d+\.\d+  again to file1\n")
190
 
            tmp2.seek(0)
191
 
            self.assertContainsRe(tmp2.read(),
192
 
                r"\d+\.\d+  comment to file2\n")
193
 
        finally:
194
 
            tmp1.close()
195
 
            tmp2.close()
196
 
 
197
161
 
198
162
class TestVerbosityLevel(TestCase):
199
163