Update unit tests

This commit is contained in:
J. David Ibáñez 2011-04-05 12:37:26 +02:00
parent 8bbc75148f
commit 08d3dcc82e
4 changed files with 23 additions and 55 deletions

@ -887,6 +887,7 @@ static PyTypeObject TreeEntryType = {
static Py_ssize_t
Tree_len(Tree *self) {
assert(self->tree);
return (Py_ssize_t)git_tree_entrycount(self->tree);
}
@ -1102,7 +1103,6 @@ Tag_init(Tag *py_tag, PyObject *args, PyObject *kwds) {
return -1;
}
/* TODO Finish this */
if (!PyArg_ParseTuple(args, "O!sO&iO&s", &RepositoryType, &repo,
&tag_name,
py_str_to_git_oid, &target,

@ -48,8 +48,6 @@ class IndexTest(utils.RepoTestCase):
def test_read(self):
index = self.repo.index
self.assertEqual(len(index), 0)
index.read()
self.assertEqual(len(index), 2)
self.assertRaises(TypeError, lambda: index[()])

@ -55,40 +55,31 @@ class TagTest(utils.BareRepoTestCase):
def test_new_tag(self):
name = 'thetag'
target = 'af431f20fc541ed6d5afede3e2dc7160f6f01f16'
message = 'Tag a blob.\n'
tagger = ('John Doe', 'jdoe@example.com', 12347)
tag = pygit2.Tag(self.repo)
self.assertEqual(None, tag.sha)
self.assertEqual(None, tag.name)
self.assertEqual(None, tag.tagger)
self.assertEqual(None, tag.message)
self.assertEqual(None, tag.target)
tag = pygit2.Tag(self.repo, name, target, pygit2.GIT_OBJ_BLOB,
tagger, message)
tag.name = name
tag.tagger = tagger
tag.message = message
target = self.repo['af431f20fc541ed6d5afede3e2dc7160f6f01f16']
target_sha = target.sha
tag.target = target
del target
self.assertEqual('3ee44658fd11660e828dfc96b9b5c5f38d5b49bb', tag.sha)
self.assertEqual(name, tag.name)
self.assertEqual(target, tag.target.sha)
self.assertEqual(tagger, tag.tagger)
self.assertEqual(target_sha, tag.target.sha)
tag.write()
self.assertEqual(message, tag.message)
self.assertEqual(name, self.repo[tag.sha].name)
def test_modify_tag(self):
message = 'Different message.\n'
name = 'thetag'
target = 'af431f20fc541ed6d5afede3e2dc7160f6f01f16'
message = 'Tag a blob.\n'
tagger = ('John Doe', 'jdoe@example.com', 12347)
tag = self.repo[TAG_SHA]
old_sha = tag.sha
self.assertNotEqual(message, tag.message)
tag.message = message
self.assertEqual(message, tag.message)
tag.write()
self.assertNotEqual(old_sha, tag.sha)
self.assertEqual(tag.sha, self.repo[tag.sha].sha)
self.assertRaises(AttributeError, setattr, tag, 'name', name)
self.assertRaises(AttributeError, setattr, tag, 'target', target)
self.assertRaises(AttributeError, setattr, tag, 'tagger', tagger)
self.assertRaises(AttributeError, setattr, tag, 'message', message)
if __name__ == '__main__':

@ -29,6 +29,7 @@
__author__ = 'dborowitz@google.com (Dave Borowitz)'
import operator
import unittest
import pygit2
@ -76,7 +77,10 @@ class TreeTest(utils.BareRepoTestCase):
self.assertTreeEntryEqual(
subtree[0], '297efb891a47de80be0cfe9c639e4b8c9b450989', 'd', 0100644)
def test_new_tree(self):
# XXX Creating new trees was removed from libgit2 by v0.11.0, we
# deactivate this test temporarily, since the feature may come back in
# a near feature (if it does not this test will be removed).
def xtest_new_tree(self):
tree = pygit2.Tree(self.repo)
self.assertEqual(0, len(tree))
tree.add_entry('1' * 40, 'x', 0100644)
@ -101,33 +105,8 @@ class TreeTest(utils.BareRepoTestCase):
def test_modify_tree(self):
tree = self.repo[TREE_SHA]
def fail_set():
tree['c'] = tree['a']
self.assertRaises(ValueError, fail_set)
def fail_del_by_name():
del tree['asdf']
self.assertRaisesWithArg(KeyError, 'asdf', fail_del_by_name)
def fail_del_by_index():
del tree[99]
self.assertRaisesWithArg(IndexError, 99, fail_del_by_index)
self.assertTrue('c' in tree)
self.assertEqual(3, len(tree))
del tree['c']
self.assertEqual(2, len(tree))
self.assertFalse('c' in tree)
tree.add_entry('1' * 40, 'c', 0100644)
self.assertTrue('c' in tree)
self.assertEqual(3, len(tree))
old_sha = tree.sha
tree.write()
self.assertNotEqual(tree.sha, old_sha)
self.assertEqual(tree.sha, self.repo[tree.sha].sha)
self.assertRaises(TypeError, operator.setitem, 'c', tree['a'])
self.assertRaises(TypeError, operator.delitem, 'c')
if __name__ == '__main__':