15
15
# along with this program; if not, write to the Free Software
16
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
18
from bzrlib import (
299
297
self.assertEqual([], tree.get_parent_ids())
302
class TestFormat2WorkingTree(TestCaseWithTransport):
303
"""Tests that are specific to format 2 trees."""
305
def create_format2_tree(self, url):
306
return self.make_branch_and_tree(
307
url, format=bzrdir.BzrDirFormat6())
309
def test_conflicts(self):
310
# test backwards compatability
311
tree = self.create_format2_tree('.')
312
self.assertRaises(errors.UnsupportedOperation, tree.set_conflicts,
314
file('lala.BASE', 'wb').write('labase')
315
expected = conflicts.ContentsConflict('lala')
316
self.assertEqual(list(tree.conflicts()), [expected])
317
file('lala', 'wb').write('la')
318
tree.add('lala', 'lala-id')
319
expected = conflicts.ContentsConflict('lala', file_id='lala-id')
320
self.assertEqual(list(tree.conflicts()), [expected])
321
file('lala.THIS', 'wb').write('lathis')
322
file('lala.OTHER', 'wb').write('laother')
323
# When "text conflict"s happen, stem, THIS and OTHER are text
324
expected = conflicts.TextConflict('lala', file_id='lala-id')
325
self.assertEqual(list(tree.conflicts()), [expected])
326
os.unlink('lala.OTHER')
327
os.mkdir('lala.OTHER')
328
expected = conflicts.ContentsConflict('lala', file_id='lala-id')
329
self.assertEqual(list(tree.conflicts()), [expected])
332
300
class InstrumentedTree(object):
333
301
"""A instrumented tree to check the needs_tree_write_lock decorator."""