summaryrefslogtreecommitdiff
path: root/test/test_db.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_db.py')
-rw-r--r--test/test_db.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/test_db.py b/test/test_db.py
new file mode 100644
index 00000000..f9090fdd
--- /dev/null
+++ b/test/test_db.py
@@ -0,0 +1,27 @@
+# test_repo.py
+# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors
+#
+# This module is part of GitPython and is released under
+# the BSD License: http://www.opensource.org/licenses/bsd-license.php
+from git.db import GitCmdObjectDB
+from git.exc import BadObject
+from test.lib import TestBase
+from git.util import bin_to_hex
+
+import os.path as osp
+
+
+class TestDB(TestBase):
+
+ def test_base(self):
+ gdb = GitCmdObjectDB(osp.join(self.rorepo.git_dir, 'objects'), self.rorepo.git)
+
+ # partial to complete - works with everything
+ hexsha = bin_to_hex(gdb.partial_to_complete_sha_hex("0.1.6"))
+ assert len(hexsha) == 40
+
+ assert bin_to_hex(gdb.partial_to_complete_sha_hex(hexsha[:20])) == hexsha
+
+ # fails with BadObject
+ for invalid_rev in ("0000", "bad/ref", "super bad"):
+ self.assertRaises(BadObject, gdb.partial_to_complete_sha_hex, invalid_rev)