312
def test__open_bzr_log_uses_stderr_for_failures(self):
313
# If _open_bzr_log cannot open the file, then we should write the
312
def test__open_brz_log_uses_stderr_for_failures(self):
313
# If _open_brz_log cannot open the file, then we should write the
314
314
# warning to stderr. Since this is normally happening before logging is
316
316
self.overrideAttr(sys, 'stderr', StringIO())
317
317
# Set the log file to something that cannot exist
318
self.overrideEnv('BRZ_LOG', os.getcwd() + '/no-dir/bzr.log')
319
self.overrideAttr(trace, '_bzr_log_filename')
320
logf = trace._open_bzr_log()
318
self.overrideEnv('BRZ_LOG', os.getcwd() + '/no-dir/brz.log')
319
self.overrideAttr(trace, '_brz_log_filename')
320
logf = trace._open_brz_log()
321
321
self.assertIs(None, logf)
322
322
self.assertContainsRe(sys.stderr.getvalue(),
323
'failed to open trace file: .*/no-dir/bzr.log')
323
'failed to open trace file: .*/no-dir/brz.log')
326
326
class TestVerbosityLevel(TestCase):
359
359
self.assertEqual(" WARNING Warned\n", self.get_log())
361
361
def test_log(self):
362
logging.getLogger("bzr").error("Errored")
362
logging.getLogger("brz").error("Errored")
363
363
self.assertEqual(" ERROR Errored\n", self.get_log())
365
365
def test_log_sub(self):
366
logging.getLogger("bzr.test_log_sub").debug("Whispered")
366
logging.getLogger("brz.test_log_sub").debug("Whispered")
367
367
self.assertEqual(" DEBUG Whispered\n", self.get_log())
369
369
def test_log_unicode_msg(self):
370
logging.getLogger("bzr").debug(u"\xa7")
370
logging.getLogger("brz").debug(u"\xa7")
371
371
self.assertEqual(u" DEBUG \xa7\n", self.get_log())
373
373
def test_log_unicode_arg(self):
374
logging.getLogger("bzr").debug("%s", u"\xa7")
374
logging.getLogger("brz").debug("%s", u"\xa7")
375
375
self.assertEqual(u" DEBUG \xa7\n", self.get_log())
377
377
def test_log_utf8_msg(self):
378
logging.getLogger("bzr").debug("\xc2\xa7")
378
logging.getLogger("brz").debug("\xc2\xa7")
379
379
self.assertEqual(u" DEBUG \xa7\n", self.get_log())
381
381
def test_log_utf8_arg(self):
382
logging.getLogger("bzr").debug("%s", "\xc2\xa7")
382
logging.getLogger("brz").debug("%s", "\xc2\xa7")
383
383
self.assertEqual(u" DEBUG \xa7\n", self.get_log())
385
385
def test_log_bytes_msg(self):
386
logging.getLogger("bzr").debug("\xa7")
386
logging.getLogger("brz").debug("\xa7")
387
387
log = self.get_log()
388
388
self.assertContainsString(log, "UnicodeDecodeError: ")
389
389
self.assertContainsString(log,
390
390
"Logging record unformattable: '\\xa7' % ()\n")
392
392
def test_log_bytes_arg(self):
393
logging.getLogger("bzr").debug("%s", "\xa7")
393
logging.getLogger("brz").debug("%s", "\xa7")
394
394
log = self.get_log()
395
395
self.assertContainsString(log, "UnicodeDecodeError: ")
396
396
self.assertContainsString(log,
397
397
"Logging record unformattable: '%s' % ('\\xa7',)\n")
399
399
def test_log_mixed_strings(self):
400
logging.getLogger("bzr").debug(u"%s", "\xa7")
400
logging.getLogger("brz").debug(u"%s", "\xa7")
401
401
log = self.get_log()
402
402
self.assertContainsString(log, "UnicodeDecodeError: ")
403
403
self.assertContainsString(log,
407
407
class BadRepr(object):
408
408
def __repr__(self):
409
409
raise ValueError("Broken object")
410
logging.getLogger("bzr").debug("%s", BadRepr())
410
logging.getLogger("brz").debug("%s", BadRepr())
411
411
log = self.get_log()
412
412
self.assertContainsRe(log, "ValueError: Broken object\n")
413
413
self.assertContainsRe(log, "Logging record unformattable: '%s' % .*\n")
430
430
def test_default_config(self):
431
431
config = trace.DefaultConfig()
432
self.overrideAttr(trace, "_bzr_log_filename", None)
433
trace._bzr_log_filename = None
434
expected_filename = trace._get_bzr_log_filename()
435
self.assertEqual(None, trace._bzr_log_filename)
432
self.overrideAttr(trace, "_brz_log_filename", None)
433
trace._brz_log_filename = None
434
expected_filename = trace._get_brz_log_filename()
435
self.assertEqual(None, trace._brz_log_filename)
436
436
config.__enter__()
438
438
# Should have entered and setup a default filename.
439
self.assertEqual(expected_filename, trace._bzr_log_filename)
439
self.assertEqual(expected_filename, trace._brz_log_filename)
441
441
config.__exit__(None, None, None)
442
442
# Should have exited and cleaned up.
443
self.assertEqual(None, trace._bzr_log_filename)
443
self.assertEqual(None, trace._brz_log_filename)