Rev 4600: More cleanup. in file:///home/vila/src/bzr/experimental/conflict-manager/

Vincent Ladeuil v.ladeuil+lp at free.fr
Thu Aug 13 17:38:52 BST 2009


At file:///home/vila/src/bzr/experimental/conflict-manager/

------------------------------------------------------------
revno: 4600
revision-id: v.ladeuil+lp at free.fr-20090813163852-nc09r6mit8v872jp
parent: v.ladeuil+lp at free.fr-20090813143456-rnzl2lkja386f25w
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: cleanup
timestamp: Thu 2009-08-13 18:38:52 +0200
message:
  More cleanup.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_conflicts.py'
--- a/bzrlib/tests/test_conflicts.py	2009-08-13 14:34:56 +0000
+++ b/bzrlib/tests/test_conflicts.py	2009-08-13 16:38:52 +0000
@@ -23,20 +23,6 @@
     errors,
     tests,
     )
-from bzrlib.conflicts import (
-    ConflictList,
-    ContentsConflict,
-    DuplicateID,
-    DuplicateEntry,
-    MissingParent,
-    NonDirectoryParent,
-    ParentLoop,
-    PathConflict,
-    TextConflict,
-    UnversionedParent,
-    resolve,
-    restore,
-    )
 
 
 # TODO: Test commit with some added, and added-but-missing files
@@ -105,82 +91,84 @@
 
     def test_conflicts(self):
         """Conflicts are detected properly"""
-        tree = self.make_branch_and_tree('.',
-            format=bzrdir.BzrDirFormat6())
-        file('hello', 'w').write('hello world4')
-        file('hello.THIS', 'w').write('hello world2')
-        file('hello.BASE', 'w').write('hello world1')
-        file('hello.OTHER', 'w').write('hello world3')
-        file('hello.sploo.BASE', 'w').write('yellow world')
-        file('hello.sploo.OTHER', 'w').write('yellow world2')
+        # Use BzrDirFormat6 so we can fake conflicts
+        tree = self.make_branch_and_tree('.', format=bzrdir.BzrDirFormat6())
+        self.build_tree_contents([('hello', 'hello world4'),
+                                  ('hello.THIS', 'hello world2'),
+                                  ('hello.BASE', 'hello world1'),
+                                  ('hello.OTHER', 'hello world3'),
+                                  ('hello.sploo.BASE', 'yellowworld'),
+                                  ('hello.sploo.OTHER', 'yellowworld2'),
+                                  ])
         tree.lock_read()
         self.assertEqual(6, len(list(tree.list_files())))
         tree.unlock()
-        conflicts = tree.conflicts()
-        self.assertEqual(2, len(conflicts))
-        self.assert_('hello' in conflicts[0].path)
-        self.assert_('hello.sploo' in conflicts[1].path)
-        restore('hello')
-        restore('hello.sploo')
+        tree_conflicts = tree.conflicts()
+        self.assertEqual(2, len(tree_conflicts))
+        self.assertTrue('hello' in tree_conflicts[0].path)
+        self.assertTrue('hello.sploo' in tree_conflicts[1].path)
+        conflicts.restore('hello')
+        conflicts.restore('hello.sploo')
         self.assertEqual(0, len(tree.conflicts()))
         self.assertFileEqual('hello world2', 'hello')
         self.assertFalse(os.path.lexists('hello.sploo'))
-        self.assertRaises(errors.NotConflicted, restore, 'hello')
-        self.assertRaises(errors.NotConflicted, restore, 'hello.sploo')
+        self.assertRaises(errors.NotConflicted, conflicts.restore, 'hello')
+        self.assertRaises(errors.NotConflicted,
+                          conflicts.restore, 'hello.sploo')
 
     def test_resolve_conflict_dir(self):
         tree = self.make_branch_and_tree('.')
-        file('hello', 'w').write('hello world4')
+        self.build_tree_contents([('hello', 'hello world4'),
+                                  ('hello.THIS', 'hello world2'),
+                                  ('hello.BASE', 'hello world1'),
+                                  ])
+        os.mkdir('hello.OTHER')
         tree.add('hello', 'q')
-        file('hello.THIS', 'w').write('hello world2')
-        file('hello.BASE', 'w').write('hello world1')
-        os.mkdir('hello.OTHER')
-        l = ConflictList([TextConflict('hello')])
+        l = conflicts.ConflictList([conflicts.TextConflict('hello')])
         l.remove_files(tree)
 
     def test_select_conflicts(self):
         tree = self.make_branch_and_tree('.')
-        tree_conflicts = conflicts.ConflictList(
-            [conflicts.ContentsConflict('foo'),
-             conflicts.ContentsConflict('bar')])
-        self.assertEqual(
-            (conflicts.ConflictList([conflicts.ContentsConflict('bar')]),
-             conflicts.ConflictList([conflicts.ContentsConflict('foo')])),
-            tree_conflicts.select_conflicts(tree, ['foo']))
-        self.assertEqual((conflicts.ConflictList(), tree_conflicts),
-                         tree_conflicts.select_conflicts(tree, [''],
-                         ignore_misses=True, recurse=True))
-        tree_conflicts = conflicts.ConflictList(
-            [conflicts.ContentsConflict('foo/baz'),
-             conflicts.ContentsConflict('bar')])
-        self.assertEqual(
-            (conflicts.ConflictList([conflicts.ContentsConflict('bar')]),
-             conflicts.ConflictList([conflicts.ContentsConflict('foo/baz')])),
-            tree_conflicts.select_conflicts(tree, ['foo'],
-                                            recurse=True,
-                                            ignore_misses=True))
-        tree_conflicts = conflicts.ConflictList(
-            [conflicts.PathConflict('qux', 'foo/baz')])
-        self.assertEqual((conflicts.ConflictList(), tree_conflicts),
-                         tree_conflicts.select_conflicts(tree, ['foo'],
-                                                         recurse=True,
-                                                         ignore_misses=True))
-        self.assertEqual((tree_conflicts, conflicts.ConflictList()),
-                         tree_conflicts.select_conflicts(tree, ['foo'],
-                                                         ignore_misses=True))
+        clist = conflicts.ConflictList
+
+        def check_select(not_selected, selected, paths, **kwargs):
+            self.assertEqual(
+                (not_selected, selected),
+                tree_conflicts.select_conflicts(tree, paths, **kwargs))
+
+        foo = conflicts.ContentsConflict('foo')
+        bar = conflicts.ContentsConflict('bar')
+        tree_conflicts = clist([foo, bar])
+
+        check_select(clist([bar]), clist([foo]), ['foo'])
+        check_select(clist(), tree_conflicts,
+                     [''], ignore_misses=True, recurse=True)
+
+        foobaz  = conflicts.ContentsConflict('foo/baz')
+        tree_conflicts = clist([foobaz, bar])
+
+        check_select(clist([bar]), clist([foobaz]),
+                     ['foo'], ignore_misses=True, recurse=True)
+
+        qux = conflicts.PathConflict('qux', 'foo/baz')
+        tree_conflicts = clist([qux])
+
+        check_select(clist(), tree_conflicts,
+                     ['foo'], ignore_misses=True, recurse=True)
+        check_select (tree_conflicts, clist(), ['foo'], ignore_misses=True)
 
     def test_resolve_conflicts_recursive(self):
         tree = self.make_branch_and_tree('.')
         self.build_tree(['dir/', 'dir/hello'])
         tree.add(['dir', 'dir/hello'])
-        tree.set_conflicts(conflicts.ConflictList(
-                [conflicts.TextConflict('dir/hello')]))
-        resolve(tree, ['dir'], recursive=False, ignore_misses=True)
-        self.assertEqual(conflicts.ConflictList(
-                [conflicts.TextConflict('dir/hello')]),
-                         tree.conflicts())
-        resolve(tree, ['dir'], recursive=True, ignore_misses=True)
-        self.assertEqual(conflicts.ConflictList([]),
-                         tree.conflicts())
+
+        dirhello = conflicts.ConflictList([conflicts.TextConflict('dir/hello')])
+        tree.set_conflicts(dirhello)
+
+        conflicts.resolve(tree, ['dir'], recursive=False, ignore_misses=True)
+        self.assertEqual(dirhello, tree.conflicts())
+
+        conflicts.resolve(tree, ['dir'], recursive=True, ignore_misses=True)
+        self.assertEqual(conflicts.ConflictList([]), tree.conflicts())
 
 



More information about the bazaar-commits mailing list