summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/git/test_repo.py10
-rw-r--r--test/git/test_submodule.py33
2 files changed, 38 insertions, 5 deletions
diff --git a/test/git/test_repo.py b/test/git/test_repo.py
index 65dce590..063b5dff 100644
--- a/test/git/test_repo.py
+++ b/test/git/test_repo.py
@@ -208,8 +208,10 @@ class TestRepo(TestBase):
assert_equal('<git.Repo "%s">' % path, repr(self.rorepo))
def test_is_dirty_with_bare_repository(self):
+ orig_value = self.rorepo._bare
self.rorepo._bare = True
assert_false(self.rorepo.is_dirty())
+ self.rorepo._bare = orig_value
def test_is_dirty(self):
self.rorepo._bare = False
@@ -220,8 +222,10 @@ class TestRepo(TestBase):
# END untracked files
# END working tree
# END index
+ orig_val = self.rorepo._bare
self.rorepo._bare = True
assert self.rorepo.is_dirty() == False
+ self.rorepo._bare = orig_val
def test_head(self):
assert self.rorepo.head.reference.object == self.rorepo.active_branch.object
@@ -552,3 +556,9 @@ class TestRepo(TestBase):
target_type = GitCmdObjectDB
assert isinstance(self.rorepo.odb, target_type)
+ def test_submodules(self):
+ assert len(self.rorepo.submodules) == 1 # non-recursive
+ assert len(self.rorepo.list_submodules(recursive=True)) == 2
+
+ assert isinstance(self.rorepo.submodule("lib/git/ext/gitdb"), Submodule)
+ self.failUnlessRaises(ValueError, self.rorepo.submodule, "doesn't exist")
diff --git a/test/git/test_submodule.py b/test/git/test_submodule.py
index f2bc43b5..2ca0b269 100644
--- a/test/git/test_submodule.py
+++ b/test/git/test_submodule.py
@@ -7,6 +7,7 @@ from git.objects.submodule import *
class TestSubmodule(TestBase):
+ k_subm_current = "00ce31ad308ff4c7ef874d2fa64374f47980c85c"
k_subm_changed = "394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3"
k_no_subm_tag = "0.1.6"
@@ -19,7 +20,7 @@ class TestSubmodule(TestBase):
self.failUnlessRaises(AttributeError, getattr, smm, 'name')
# iterate - 1 submodule
- sms = Submodule.list_items(rwrepo)
+ sms = Submodule.list_items(rwrepo, self.k_subm_current)
assert len(sms) == 1
sm = sms[0]
@@ -27,6 +28,7 @@ class TestSubmodule(TestBase):
assert len(Submodule.list_items(rwrepo, self.k_no_subm_tag)) == 0
assert sm.path == 'lib/git/ext/gitdb'
+ assert sm.path == sm.name # for now, this is True
assert sm.url == 'git://gitorious.org/git-python/gitdb.git'
assert sm.ref == 'master' # its unset in this case
assert sm.parent_commit == rwrepo.head.commit
@@ -47,10 +49,9 @@ class TestSubmodule(TestBase):
# cannot get a writer on historical submodules
self.failUnlessRaises(ValueError, smold.config_writer)
-
# make the old into a new
prev_parent_commit = smold.parent_commit
- smold.set_parent_commit('HEAD')
+ smold.set_parent_commit(self.k_subm_current)
assert smold.parent_commit != prev_parent_commit
assert smold.binsha == sm.binsha
smold.set_parent_commit(prev_parent_commit)
@@ -100,7 +101,7 @@ class TestSubmodule(TestBase):
# Writing of historical submodule configurations must not work
- @with_rw_repo('HEAD')
+ @with_rw_repo(k_subm_current)
def test_base_rw(self, rwrepo):
self._do_base_tests(rwrepo)
@@ -108,4 +109,26 @@ class TestSubmodule(TestBase):
def test_base_bare(self, rwrepo):
self._do_base_tests(rwrepo)
-
+ def test_root_module(self):
+ # Can query everything without problems
+ rm = RootModule(self.rorepo)
+ assert rm.module() is self.rorepo
+
+ rm.binsha
+ rm.mode
+ rm.path
+ assert rm.name == rm.k_root_name
+ assert rm.parent_commit == self.rorepo.head.commit
+ rm.url
+ rm.ref
+
+ assert len(rm.list_items(rm.module())) == 1
+ rm.config_reader()
+ rm.config_writer()
+
+ # deep traversal gitdb / async
+ assert len(list(rm.traverse())) == 2
+
+ # cannot set the parent commit as repo name doesn't exist
+ self.failUnlessRaises(ValueError, rm.set_parent_commit, 'HEAD')
+