1
# Copyright (C) 2009, 2010 Canonical Ltd
1
# Copyright (C) 2009, 2010, 2011 Canonical Ltd
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
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
"""Implementation tests for bzrlib.merge.Merger."""
17
"""Implementation tests for breezy.merge.Merger."""
21
from bzrlib.conflicts import TextConflict
21
from ..conflicts import TextConflict
24
24
merge as _mod_merge,
28
from bzrlib.tests import (
30
28
TestCaseWithTransport,
32
from bzrlib.tests.test_merge_core import MergeBuilder
33
from bzrlib.transform import TreeTransform
37
def load_tests(standard_tests, module, loader):
30
from .test_merge_core import MergeBuilder
31
from ..transform import TreeTransform
35
def load_tests(loader, standard_tests, pattern):
38
36
"""Multiply tests for tranport implementations."""
39
37
result = loader.suiteClass()
41
39
(name, {'merge_type': merger})
42
for name, merger in option._merge_type_registry.items()]
40
for name, merger in _mod_merge.merge_type_registry.items()]
43
41
return multiply_tests(standard_tests, scenarios, result)
176
174
transform.finalize()
177
175
return (limbodir, deletiondir)
179
def test_merge_with_existing_limbo(self):
180
wt = self.make_branch_and_tree('this')
181
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
177
def test_merge_with_existing_limbo_empty(self):
178
"""Empty limbo dir is just cleaned up - see bug 427773"""
179
wt = self.make_branch_and_tree('this')
180
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
182
self.do_merge(wt, wt)
184
def test_merge_with_existing_limbo_non_empty(self):
185
wt = self.make_branch_and_tree('this')
186
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
188
os.mkdir(os.path.join(limbodir, 'something'))
183
189
self.assertRaises(errors.ExistingLimbo, self.do_merge, wt, wt)
184
190
self.assertRaises(errors.LockError, wt.unlock)
186
def test_merge_with_pending_deletion(self):
187
wt = self.make_branch_and_tree('this')
188
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
189
os.mkdir(deletiondir)
192
def test_merge_with_pending_deletion_empty(self):
193
wt = self.make_branch_and_tree('this')
194
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
195
os.mkdir(deletiondir)
196
self.do_merge(wt, wt)
198
def test_merge_with_pending_deletion_non_empty(self):
199
"""Also see bug 427773"""
200
wt = self.make_branch_and_tree('this')
201
(limbodir, deletiondir) = self.get_limbodir_deletiondir(wt)
202
os.mkdir(deletiondir)
203
os.mkdir(os.path.join(deletiondir, 'something'))
190
204
self.assertRaises(errors.ExistingPendingDeletion, self.do_merge, wt, wt)
191
205
self.assertRaises(errors.LockError, wt.unlock)
195
209
"""Tests that the 'merge_file_content' hook is invoked."""
198
TestCaseWithTransport.setUp(self)
212
super(TestHookMergeFileContent, self).setUp()
199
213
self.hook_log = []
201
215
def install_hook_inactive(self):