summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/for_each_refbin58 -> 0 bytes
-rw-r--r--test/fixtures/for_each_ref_tagsbin58 -> 0 bytes
-rw-r--r--test/git/test_base.py8
-rw-r--r--test/git/test_tag.py45
4 files changed, 30 insertions, 23 deletions
diff --git a/test/fixtures/for_each_ref b/test/fixtures/for_each_ref
deleted file mode 100644
index e56f5262..00000000
--- a/test/fixtures/for_each_ref
+++ /dev/null
Binary files differ
diff --git a/test/fixtures/for_each_ref_tags b/test/fixtures/for_each_ref_tags
deleted file mode 100644
index c4df85c6..00000000
--- a/test/fixtures/for_each_ref_tags
+++ /dev/null
Binary files differ
diff --git a/test/git/test_base.py b/test/git/test_base.py
index 46869f63..787b92b6 100644
--- a/test/git/test_base.py
+++ b/test/git/test_base.py
@@ -7,6 +7,7 @@
import time
from test.testlib import *
from git import *
+import git.base as base
class TestBase(object):
@@ -33,4 +34,11 @@ class TestBase(object):
def test_tags(self):
# tag refs can point to tag objects or to commits
assert False, "TODO: Tag handling"
+
+ def test_get_type_by_name(self):
+ for tname in base.Object.TYPES:
+ assert base.Object in base.Object.get_type_by_name(tname).mro()
+ # END for each known type
+
+ assert_raises( ValueError, base.Object.get_type_by_name, "doesntexist" )
diff --git a/test/git/test_tag.py b/test/git/test_tag.py
index 732bbd45..52f7898c 100644
--- a/test/git/test_tag.py
+++ b/test/git/test_tag.py
@@ -7,30 +7,29 @@
from mock import *
from test.testlib import *
from git import *
+from git.tag import TagObject
+import time
class TestTag(object):
- def setup(self):
- self.repo = Repo(GIT_REPO)
+ def setup(self):
+ self.repo = Repo(GIT_REPO)
- @patch_object(Git, '_call_process')
- def test_list_from_string(self, git):
- git.return_value = fixture('for_each_ref_tags')
-
- tags = self.repo.tags
-
- assert_equal(1, len(tags))
- assert_equal('v0.7.1', tags[0].name)
- assert_equal('634396b2f541a9f2d58b00be1a07f0c358b999b3', tags[0].commit.id)
-
- assert_true(git.called)
- assert_equal(git.call_args, (('for_each_ref', 'refs/tags'), {'sort': 'committerdate', 'format': '%(refname)%00%(objectname)'}))
+ def test_tag_base(self):
+ tag_object_refs = list()
+ for tag in self.repo.tags:
+ assert "refs/tags" in tag.path
+ assert "/" not in tag.name
+ assert isinstance( tag.commit, Commit )
+ if tag.tag is not None:
+ tag_object_refs.append( tag )
+ tagobj = tag.tag
+ assert isinstance( tagobj, TagObject )
+ assert tagobj.tag == tag.name
+ assert isinstance( tagobj.tagger, Actor )
+ assert isinstance( tagobj.tagged_date, time.struct_time )
+ assert tagobj.message
+ # END if we have a tag object
+ # END for tag in repo-tags
+ assert tag_object_refs
+
- @patch_object(Git, '_call_process')
- def test_repr(self, git):
- git.return_value = fixture('for_each_ref')
-
- tag = self.repo.tags[0]
- assert_equal('<git.Tag "%s">' % tag.name, repr(tag))
-
- assert_true(git.called)
- assert_equal(git.call_args, (('for_each_ref', 'refs/tags'), {'sort': 'committerdate', 'format': '%(refname)%00%(objectname)'}))