|
@@ -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")
|