507
507
self.assertEqual(self.format_supports_external_lookups,
508
508
repo._format.supports_external_lookups)
510
def test_abort_write_group_does_not_raise_when_suppressed(self):
511
"""Similar to per_repository.test_write_group's test of the same name.
513
Also requires that the exception is logged.
515
repo = self.make_repository('repo')
516
token = repo.lock_write()
517
self.addCleanup(repo.unlock)
518
repo.start_write_group()
519
# Damage the repository on the filesystem
520
self.get_transport('').rename('repo', 'foo')
521
# abort_write_group will not raise an error
522
self.assertEqual(None, repo.abort_write_group(suppress_errors=True))
523
# But it does log an error
524
log_file = self._get_log(keep_log_file=True)
525
self.assertContainsRe(log_file, 'abort_write_group failed')
526
self.assertContainsRe(log_file, r'INFO bzr: ERROR \(ignored\):')
527
if token is not None:
528
repo.leave_lock_in_place()
530
def test_abort_write_group_does_raise_when_not_suppressed(self):
531
repo = self.make_repository('repo')
532
token = repo.lock_write()
533
self.addCleanup(repo.unlock)
534
repo.start_write_group()
535
# Damage the repository on the filesystem
536
self.get_transport('').rename('repo', 'foo')
537
# abort_write_group will not raise an error
538
self.assertRaises(Exception, repo.abort_write_group)
539
if token is not None:
540
repo.leave_lock_in_place()
511
543
class TestPackRepositoryStacking(TestCaseWithTransport):