Ver Fonte

Add more tests.

Jelmer Vernooij há 16 anos atrás
pai
commit
e2e85a85c3
2 ficheiros alterados com 54 adições e 10 exclusões
  1. 1 1
      dulwich/object_store.py
  2. 53 9
      dulwich/tests/test_object_store.py

+ 1 - 1
dulwich/object_store.py

@@ -369,7 +369,7 @@ class MemoryObjectStore(BaseObjectStore):
 
         :param objects: Iterable over a list of objects.
         """
-        for obj in objects:
+        for obj, path in objects:
             self._data[obj.id] = obj
 
 

+ 53 - 9
dulwich/tests/test_object_store.py

@@ -22,14 +22,22 @@
 
 from unittest import TestCase
 
+from dulwich.objects import (
+    Blob,
+    )
 from dulwich.object_store import (
     DiskObjectStore,
     MemoryObjectStore,
     )
 import os
+import shutil
+
+
+testobject = Blob()
+testobject.data = "yummy data"
 
 
-class DiskObjectStoreTests(TestCase):
+class SpecificDiskObjectStoreTests(TestCase):
 
     def test_pack_dir(self):
         o = DiskObjectStore("foo")
@@ -39,19 +47,55 @@ class DiskObjectStoreTests(TestCase):
         o = DiskObjectStore("foo")
         self.assertEquals([], o.packs)
 
+
+
+class ObjectStoreTests(object):
+
+    def test_iter(self):
+        self.assertEquals([], list(self.store))
+
+    def test_get_nonexistant(self):
+        self.assertRaises(KeyError, self.store.__getitem__, "a" * 40)
+
+    def test_contains_nonexistant(self):
+        self.assertFalse(self.store.__contains__("a" * 40))
+
     def test_add_objects_empty(self):
-        o = DiskObjectStore("foo")
-        o.add_objects([])
+        self.store.add_objects([])
 
     def test_add_commit(self):
-        o = DiskObjectStore("foo")
         # TODO: Argh, no way to construct Git commit objects without 
         # access to a serialized form.
-        o.add_objects([])
+        self.store.add_objects([])
 
+    def test_add_object(self):
+        self.store.add_object(testobject)
+        self.assertEquals(set([testobject.id]), set(self.store))
+        self.assertTrue(self.store.__contains__(testobject.id))
+        r = self.store[testobject.id]
+        self.assertEquals(r, testobject)
 
-class MemoryObjectStoreTests(TestCase):
+    def test_add_objects(self):
+        data = [(testobject, "mypath")]
+        self.store.add_objects(data)
+        self.assertEquals(set([testobject.id]), set(self.store))
+        self.assertTrue(self.store.__contains__(testobject.id))
+        r = self.store[testobject.id]
+        self.assertEquals(r, testobject)
 
-    def test_iter(self):
-        store = MemoryObjectStore()
-        self.assertEquals([], list(store))
+
+class MemoryObjectStoreTests(ObjectStoreTests,TestCase):
+
+    def setUp(self):
+        TestCase.setUp(self)
+        self.store = MemoryObjectStore()
+
+
+class DiskObjectStoreTests(ObjectStoreTests,TestCase):
+
+    def setUp(self):
+        TestCase.setUp(self)
+        if os.path.exists("foo"):
+            shutil.rmtree("foo")
+        os.makedirs(os.path.join("foo", "pack"))
+        self.store = DiskObjectStore("foo")