Rev 169: Switch back to using a .parent pointer. in http://bazaar.launchpad.net/~jameinel/bzr-explorer/wt_model

John Arbash Meinel john at arbash-meinel.com
Tue Jul 7 22:42:01 BST 2009


At http://bazaar.launchpad.net/~jameinel/bzr-explorer/wt_model

------------------------------------------------------------
revno: 169
revision-id: john at arbash-meinel.com-20090707214157-hcuif5aamnls23yr
parent: john at arbash-meinel.com-20090707213934-ck04k1uiy5jlimg4
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: wt_model
timestamp: Tue 2009-07-07 16:41:57 -0500
message:
  Switch back to using a .parent pointer.
-------------- next part --------------
=== modified file 'lib/wt_model.py'
--- a/lib/wt_model.py	2009-07-07 21:39:34 +0000
+++ b/lib/wt_model.py	2009-07-07 21:41:57 +0000
@@ -32,7 +32,7 @@
     :type children: A list of _WTItem objects
     """
 
-    def __init__(self, path, name, disk_kind, file_id, inv_kind, parent_id):
+    def __init__(self, path, name, disk_kind, file_id, inv_kind, parent):
         """Create a new _WTItem
         """
         self.path = path
@@ -40,9 +40,9 @@
         self.disk_kind = disk_kind
         self.file_id = file_id
         self.inv_kind = inv_kind
-        # Note: this creates a cyclical reference, consider using parent_id
+        # Note: this creates a cyclical reference, consider using parent
         #       instead
-        self.parent_id = parent_id
+        self.parent = parent
         self.children = []
 
     @staticmethod
@@ -59,20 +59,20 @@
                     dir_wt_item = dir_items[dir_file_id]
                 except KeyError:
                     dir_wt_item = _WTItem(dir_path, '', 'directory',
-                        dir_file_id, 'directory', parent_id=None)
+                        dir_file_id, 'directory', parent=None)
                     root_wt_item = dir_wt_item
                     dir_items[dir_file_id] = dir_wt_item
                 for (f_path, f_name, f_disk_kind, _, f_id,
                      f_inv_kind) in dir_block_info:
                     wt_item = _WTItem(f_path, f_name, f_disk_kind, f_id,
-                                      f_inv_kind, dir_file_id)
+                                      f_inv_kind, dir_wt_item)
                     dir_wt_item.children.append(wt_item)
                     # TODO: handle directories that aren't versioned
                     if f_inv_kind == 'directory':
                         dir_items[f_id] = wt_item
         finally:
             wt.unlock()
-        return root_wt_item, dir_items
+        return root_wt_item
 
 
 class WorkingTreeModel(QtCore.QAbstractItemModel):
@@ -89,7 +89,7 @@
     def __init__(self, wt, parent=None):
         QtCore.QAbstractItemModel.__init__(self, parent)
         self._wt = wt
-        self._root_wt_item, self._dir_items = _WTItem.create_from_wt(self._wt)
+        self._root_wt_item = _WTItem.create_from_wt(self._wt)
 
     def index(self, row, column, parent=None):
         """Return the QModelIndex for the given item.

=== modified file 'tests/test_wt_model.py'
--- a/tests/test_wt_model.py	2009-07-07 21:39:34 +0000
+++ b/tests/test_wt_model.py	2009-07-07 21:41:57 +0000
@@ -121,14 +121,14 @@
         self.build_tree(['a_file'])
         wt.add(['a_file'], ['file-id'])
         wt.set_root_id('root-id')
-        root_item, _ = wt_model._WTItem.create_from_wt(wt)
+        root_item = wt_model._WTItem.create_from_wt(wt)
         self.assertIsInstance(root_item, wt_model._WTItem)
         self.assertEqual('', root_item.path)
         self.assertEqual('', root_item.name)
         self.assertEqual('directory', root_item.disk_kind)
         self.assertEqual('root-id', root_item.file_id)
         self.assertEqual('directory', root_item.inv_kind)
-        self.assertIs(None, root_item.parent_id)
+        self.assertIs(None, root_item.parent)
         self.assertEqual(1, len(root_item.children))
         child = root_item.children[0]
         self.assertEqual('a_file', child.path)
@@ -136,21 +136,21 @@
         self.assertEqual('file', child.disk_kind)
         self.assertEqual('file-id', child.file_id)
         self.assertEqual('file', child.inv_kind)
-        self.assertEqual('root-id', child.parent_id)
+        self.assertEqual(root_item, child.parent)
 
     def test_unversioned_from_wt(self):
         wt = self.make_branch_and_tree('.')
         self.build_tree(['a_file', 'unversioned-file'])
         wt.set_root_id('root-id')
         wt.add(['a_file'], ['file-id'])
-        root_item, _ = wt_model._WTItem.create_from_wt(wt)
+        root_item = wt_model._WTItem.create_from_wt(wt)
         self.assertIsInstance(root_item, wt_model._WTItem)
         self.assertEqual('', root_item.path)
         self.assertEqual('', root_item.name)
         self.assertEqual('directory', root_item.disk_kind)
         self.assertEqual('root-id', root_item.file_id)
         self.assertEqual('directory', root_item.inv_kind)
-        self.assertIs(None, root_item.parent_id)
+        self.assertIs(None, root_item.parent)
         self.assertEqual(2, len(root_item.children))
         child = root_item.children[0]
         self.assertEqual('a_file', child.path)
@@ -158,14 +158,14 @@
         self.assertEqual('file', child.disk_kind)
         self.assertEqual('file-id', child.file_id)
         self.assertEqual('file', child.inv_kind)
-        self.assertEqual('root-id', child.parent_id)
+        self.assertEqual(root_item, child.parent)
         child = root_item.children[1]
         self.assertEqual('unversioned-file', child.path)
         self.assertEqual('unversioned-file', child.name)
         self.assertEqual('file', child.disk_kind)
         self.assertEqual(None, child.file_id)
         self.assertEqual(None, child.inv_kind)
-        self.assertEqual('root-id', child.parent_id)
+        self.assertEqual(root_item, child.parent)
 
     def test_with_subdirs(self):
         wt = self.make_branch_and_tree('.')
@@ -174,10 +174,10 @@
         wt.set_root_id('root-id')
         wt.add(['dir', 'dir/subdir', 'dir/subdir/a_file'],
                ['dir-id', 'subdir-id', 'file-id'])
-        root_item, _ = wt_model._WTItem.create_from_wt(wt)
+        root_item = wt_model._WTItem.create_from_wt(wt)
         self.assertIsInstance(root_item, wt_model._WTItem)
         self.assertEqual('root-id', root_item.file_id)
-        self.assertIs(None, root_item.parent_id)
+        self.assertIs(None, root_item.parent)
         self.assertEqual(1, len(root_item.children))
         child = root_item.children[0]
         self.assertEqual('dir', child.path)
@@ -185,20 +185,22 @@
         self.assertEqual('directory', child.disk_kind)
         self.assertEqual('dir-id', child.file_id)
         self.assertEqual('directory', child.inv_kind)
-        self.assertEqual('root-id', child.parent_id)
+        self.assertEqual(root_item, child.parent)
         self.assertEqual(1, len(child.children))
-        child = child.children[0]
+        this_dir = child
+        child = this_dir.children[0]
         self.assertEqual('dir/subdir', child.path)
         self.assertEqual('subdir', child.name)
         self.assertEqual('directory', child.disk_kind)
         self.assertEqual('subdir-id', child.file_id)
         self.assertEqual('directory', child.inv_kind)
-        self.assertEqual('dir-id', child.parent_id)
+        self.assertEqual(this_dir, child.parent)
         self.assertEqual(1, len(child.children))
-        child = child.children[0]
+        this_dir = child
+        child = this_dir.children[0]
         self.assertEqual('dir/subdir/a_file', child.path)
         self.assertEqual('a_file', child.name)
         self.assertEqual('file', child.disk_kind)
         self.assertEqual('file-id', child.file_id)
         self.assertEqual('file', child.inv_kind)
-        self.assertEqual('subdir-id', child.parent_id)
+        self.assertEqual(this_dir, child.parent)



More information about the bazaar-commits mailing list