diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2010-07-06 10:46:02 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2010-07-06 10:46:02 +0200 |
commit | 1c6d7830d9b87f47a0bfe82b3b5424a32e3164ad (patch) | |
tree | 19d9d0de030d3701b8b99f56f9d54943e734d9bc /test/git | |
parent | f963881e53a9f0a2746a11cb9cdfa82eb1f90d8c (diff) | |
download | gitpython-1c6d7830d9b87f47a0bfe82b3b5424a32e3164ad.tar.gz |
RevParse now generally works, but there are still some more specialized tests missing
Diffstat (limited to 'test/git')
-rw-r--r-- | test/git/test_refs.py | 2 | ||||
-rw-r--r-- | test/git/test_repo.py | 24 |
2 files changed, 18 insertions, 8 deletions
diff --git a/test/git/test_refs.py b/test/git/test_refs.py index 44a8ed95..b73d574b 100644 --- a/test/git/test_refs.py +++ b/test/git/test_refs.py @@ -40,8 +40,6 @@ class TestRefs(TestBase): assert isinstance( tagobj.tagger_tz_offset, int ) assert tagobj.message assert tag.object == tagobj - assert tag.tree.type == 'tree' - assert tag.tree == tag.commit.tree # can't assign the object self.failUnlessRaises(AttributeError, setattr, tag, 'object', tagobj) # END if we have a tag object diff --git a/test/git/test_repo.py b/test/git/test_repo.py index f1609266..89c7f6b5 100644 --- a/test/git/test_repo.py +++ b/test/git/test_repo.py @@ -394,7 +394,12 @@ class TestRepo(TestBase): """tries multiple different rev-parse syntaxes with the given name :return: parsed object""" rev_parse = self.rorepo.rev_parse - obj = rev_parse(name) + orig_obj = rev_parse(name) + if orig_obj.type == 'tag': + obj = orig_obj.object + else: + obj = orig_obj + # END deref tags by default # try history rev = name + "~" @@ -404,10 +409,9 @@ class TestRepo(TestBase): # history with number ni = 11 - history = list() - citer = obj.traverse() + history = [obj.parents[0]] for pn in range(ni): - history.append(citer.next()) + history.append(history[-1].parents[0]) # END get given amount of commits for pn in range(11): @@ -430,11 +434,14 @@ class TestRepo(TestBase): self._assert_rev_parse_types(rev, obj2) # END for each parent - return obj + return orig_obj def test_rev_parse(self): rev_parse = self.rorepo.rev_parse + # it works with tags ! + self._assert_rev_parse('0.1.4') + # start from reference num_resolved = 0 for ref in Reference.iter_items(self.rorepo): @@ -447,7 +454,6 @@ class TestRepo(TestBase): num_resolved += 1 except BadObject: print "failed on %s" % path_section - raise # is fine, in case we have something like 112, which belongs to remotes/rname/merge-requests/112 pass # END exception handling @@ -467,6 +473,12 @@ class TestRepo(TestBase): # dereference tag using ^{} notation + # ref^0 returns commit being pointed to, same with ref~0 + tag = rev_parse('0.1.4') + for token in ('~^'): + assert tag.object == rev_parse('0.1.4%s0' % token) + # END handle multiple tokens + # missing closing brace commit^{tree # missing starting brace |