diff options
Diffstat (limited to 'git/test/db/dulwich')
-rw-r--r-- | git/test/db/dulwich/__init__.py | 4 | ||||
-rw-r--r-- | git/test/db/dulwich/lib.py | 23 | ||||
-rw-r--r-- | git/test/db/dulwich/test_base.py | 33 |
3 files changed, 60 insertions, 0 deletions
diff --git a/git/test/db/dulwich/__init__.py b/git/test/db/dulwich/__init__.py new file mode 100644 index 00000000..8a681e42 --- /dev/null +++ b/git/test/db/dulwich/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors +# +# This module is part of GitDB and is released under +# the New BSD License: http://www.opensource.org/licenses/bsd-license.php diff --git a/git/test/db/dulwich/lib.py b/git/test/db/dulwich/lib.py new file mode 100644 index 00000000..56734064 --- /dev/null +++ b/git/test/db/dulwich/lib.py @@ -0,0 +1,23 @@ +"""dulwich specific utilities, as well as all the default ones""" + +from git.test.lib import ( + InheritedTestMethodsOverrideWrapperMetaClsAutoMixin, + needs_module_or_skip + ) + +__all__ = ['needs_dulwich_or_skip', 'DulwichRequiredMetaMixin'] + +#{ Decoorators + +def needs_dulwich_or_skip(func): + """Skip this test if we have no dulwich - print warning""" + return needs_module_or_skip('dulwich')(func) + +#}END decorators + +#{ MetaClasses + +class DulwichRequiredMetaMixin(InheritedTestMethodsOverrideWrapperMetaClsAutoMixin): + decorator = [needs_dulwich_or_skip] + +#} END metaclasses diff --git a/git/test/db/dulwich/test_base.py b/git/test/db/dulwich/test_base.py new file mode 100644 index 00000000..50e64131 --- /dev/null +++ b/git/test/db/dulwich/test_base.py @@ -0,0 +1,33 @@ +# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors +# +# 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 + + + +try: + import dulwich +except ImportError: + # om this case, all other dulwich tests will be skipped + # 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 = DulwichDB + + @needs_dulwich_or_skip + @with_rw_repo('HEAD', bare=False) + def test_basics(self, rw_repo): + db = DulwichDB(rw_repo.working_tree_dir) + print db.git_dir + + |