diff --git a/pygit2.c b/pygit2.c index 4896cd8..6144d02 100644 --- a/pygit2.c +++ b/pygit2.c @@ -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, diff --git a/test/test_index.py b/test/test_index.py index 13a1cc1..38c8b17 100644 --- a/test/test_index.py +++ b/test/test_index.py @@ -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[()]) diff --git a/test/test_tag.py b/test/test_tag.py index dae0342..c3afdb7 100644 --- a/test/test_tag.py +++ b/test/test_tag.py @@ -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__': diff --git a/test/test_tree.py b/test/test_tree.py index 7f3d8b8..bcbac31 100644 --- a/test/test_tree.py +++ b/test/test_tree.py @@ -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__':