summaryrefslogtreecommitdiff
path: root/git/test/db
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-07-07 14:53:37 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-07-07 17:30:47 +0200
commit4bb5107cff6f205f5c6e73a6f8bd22fc56f48cf4 (patch)
tree4164a8f9d4d3434d67dcaeb6e7ef60ae4bff81cd /git/test/db
parentd5038ebadc190753c67c02c9f5930a14ca2dc1e7 (diff)
downloadgitpython-4bb5107cff6f205f5c6e73a6f8bd22fc56f48cf4.tar.gz
Initial version of the DulwichType inheritance. For now, it inherits everything from the existing implementation, but one by one things can be reimplmented to use dulwich.
It also shows that py 2.6 is quite plagued from its new feature, which is actually a bug, as objects inability to accept any args makes mixins hard to use ...
Diffstat (limited to 'git/test/db')
-rw-r--r--git/test/db/base.py6
-rw-r--r--git/test/db/dulwich/lib.py7
-rw-r--r--git/test/db/dulwich/test_base.py22
3 files changed, 28 insertions, 7 deletions
diff --git a/git/test/db/base.py b/git/test/db/base.py
index 5291ba03..7016afb7 100644
--- a/git/test/db/base.py
+++ b/git/test/db/base.py
@@ -613,8 +613,14 @@ class RepoBase(TestDBBase):
def test_submodule_update(self, rwrepo):
# fails in bare mode
rwrepo._bare = True
+ # special handling: there are repo implementations which have a bare attribute. IN that case, set it directly
+ if not rwrepo.bare:
+ rwrepo.bare = True
self.failUnlessRaises(InvalidGitRepositoryError, rwrepo.submodule_update)
rwrepo._bare = False
+ if rwrepo.bare:
+ rwrepo.bare = False
+ #END special repo handling
# test create submodule
sm = rwrepo.submodules[0]
diff --git a/git/test/db/dulwich/lib.py b/git/test/db/dulwich/lib.py
index a1110ffa..56734064 100644
--- a/git/test/db/dulwich/lib.py
+++ b/git/test/db/dulwich/lib.py
@@ -1,6 +1,11 @@
"""dulwich specific utilities, as well as all the default ones"""
-from git.test.lib import *
+from git.test.lib import (
+ InheritedTestMethodsOverrideWrapperMetaClsAutoMixin,
+ needs_module_or_skip
+ )
+
+__all__ = ['needs_dulwich_or_skip', 'DulwichRequiredMetaMixin']
#{ Decoorators
diff --git a/git/test/db/dulwich/test_base.py b/git/test/db/dulwich/test_base.py
index 9bc9c394..50e64131 100644
--- a/git/test/db/dulwich/test_base.py
+++ b/git/test/db/dulwich/test_base.py
@@ -3,21 +3,31 @@
# This module is part of GitDB and is released under
# the New BSD License: http://www.opensource.org/licenses/bsd-license.php
from lib import *
+from git.test.lib import TestBase, with_rw_repo
from git.test.db.base import RepoBase
-from git.db.complex import PureCompatibilityGitDB
+
+
try:
import dulwich
except ImportError:
# om this case, all other dulwich tests will be skipped
- pass
+ # Need to properly initialize the class though, otherwise it would fail
+ from git.db.complex import PureCompatibilityGitDB as DulwichDB
+else:
+ # now we know dulwich is available, to do futher imports
+ from git.db.dulwich.complex import DulwichCompatibilityGitDB as DulwichDB
+
+#END handle imports
class TestPyDBBase(RepoBase):
__metaclass__ = DulwichRequiredMetaMixin
- RepoCls = PureCompatibilityGitDB
+ RepoCls = DulwichDB
@needs_dulwich_or_skip
- def test_basics(self):
- import dulwich
- pass
+ @with_rw_repo('HEAD', bare=False)
+ def test_basics(self, rw_repo):
+ db = DulwichDB(rw_repo.working_tree_dir)
+ print db.git_dir
+