Browse Source

Add utility functions to DictRefsContainer, useful for tests.

Dave Borowitz 14 years ago
parent
commit
df2a95d585
2 changed files with 16 additions and 0 deletions
  1. 2 0
      NEWS
  2. 14 0
      dulwich/repo.py

+ 2 - 0
NEWS

@@ -69,6 +69,8 @@
   * Explicitly specify allowed protocol commands to
     ProtocolGraphWalker.read_proto_line.  (Dave Borowitz)
 
+  * Add utility functions to DictRefsContainer. (Dave Borowitz)
+
 
 0.6.1	2010-07-22
 

+ 14 - 0
dulwich/repo.py

@@ -342,6 +342,7 @@ class DictRefsContainer(RefsContainer):
 
     def __init__(self, refs):
         self._refs = refs
+        self._peeled = {}
 
     def allkeys(self):
         return self._refs.keys()
@@ -374,6 +375,19 @@ class DictRefsContainer(RefsContainer):
         del self._refs[name]
         return True
 
+    def get_peeled(self, name):
+        return self._peeled.get(name)
+
+    def _update(self, refs):
+        """Update multiple refs; intended only for testing."""
+        # TODO(dborowitz): replace this with a public function that uses
+        # set_if_equal.
+        self._refs.update(refs)
+
+    def _update_peeled(self, peeled):
+        """Update cached peeled refs; intended only for testing."""
+        self._peeled.update(peeled)
+
 
 class DiskRefsContainer(RefsContainer):
     """Refs container that reads refs from disk."""