diff options
| author | Sebastian Thiel <byronimo@gmail.com> | 2011-07-07 14:53:37 +0200 |
|---|---|---|
| committer | Sebastian Thiel <byronimo@gmail.com> | 2011-07-07 17:30:47 +0200 |
| commit | 4bb5107cff6f205f5c6e73a6f8bd22fc56f48cf4 (patch) | |
| tree | 4164a8f9d4d3434d67dcaeb6e7ef60ae4bff81cd /git/test | |
| parent | d5038ebadc190753c67c02c9f5930a14ca2dc1e7 (diff) | |
| download | GitPython-4bb5107cff6f205f5c6e73a6f8bd22fc56f48cf4.tar.gz GitPython-4bb5107cff6f205f5c6e73a6f8bd22fc56f48cf4.zip | |
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')
| -rw-r--r-- | git/test/db/base.py | 6 | ||||
| -rw-r--r-- | git/test/db/dulwich/lib.py | 7 | ||||
| -rw-r--r-- | git/test/db/dulwich/test_base.py | 22 | ||||
| -rw-r--r-- | git/test/test_remote.py | 8 |
4 files changed, 36 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 + diff --git a/git/test/test_remote.py b/git/test/test_remote.py index cef8687b..30bd1232 100644 --- a/git/test/test_remote.py +++ b/git/test/test_remote.py @@ -21,6 +21,8 @@ from git.refs import ( SymbolicReference ) +from nose import SkipTest + import tempfile import shutil import os @@ -352,7 +354,13 @@ class TestRemote(TestBase): # the same repository TagReference.delete(rw_repo, new_tag, other_tag) remote.push(":%s" % other_tag.path) + + def test_todo(self): + # If you see this, plesase remind yourself, that all this needs to be run + # per repository type ! + raise SkipTest("todo") + @with_rw_and_rw_remote_repo('0.1.6') def test_base(self, rw_repo, remote_repo): num_remotes = 0 |
