Add unit tests for the index file
This commit is contained in:
Binary file not shown.
@@ -32,7 +32,6 @@ __author__ = 'jdavid@itaapy.com (J. David Ibáñez)'
|
|||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import pygit2
|
|
||||||
import utils
|
import utils
|
||||||
|
|
||||||
|
|
||||||
@@ -47,6 +46,50 @@ class IndexTest(utils.RepoTestCase):
|
|||||||
def test_index(self):
|
def test_index(self):
|
||||||
self.assertNotEqual(None, self.repo.index)
|
self.assertNotEqual(None, self.repo.index)
|
||||||
|
|
||||||
|
def test_read(self):
|
||||||
|
index = self.repo.index
|
||||||
|
self.assertEqual(len(index), 0)
|
||||||
|
index.read()
|
||||||
|
self.assertEqual(len(index), 1)
|
||||||
|
|
||||||
|
self.assertRaises(TypeError, lambda: index[()])
|
||||||
|
self.assertRaisesWithArg(ValueError, -4, lambda: index[-4])
|
||||||
|
self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc'])
|
||||||
|
|
||||||
|
sha = '3b18e512dba79e4c8300dd08aeb37f8e728b8dad'
|
||||||
|
self.assertTrue('hello.txt' in index)
|
||||||
|
self.assertEqual(index['hello.txt'].sha, sha)
|
||||||
|
self.assertEqual(index[0].sha, sha)
|
||||||
|
|
||||||
|
def test_add(self):
|
||||||
|
index = self.repo.index
|
||||||
|
index.read()
|
||||||
|
|
||||||
|
sha = '0907563af06c7464d62a70cdd135a6ba7d2b41d8'
|
||||||
|
self.assertFalse('bye.txt' in index)
|
||||||
|
index.add('bye.txt', 0)
|
||||||
|
self.assertTrue('bye.txt' in index)
|
||||||
|
self.assertEqual(len(index), 2)
|
||||||
|
self.assertEqual(index['bye.txt'].sha, sha)
|
||||||
|
|
||||||
|
def test_clear(self):
|
||||||
|
index = self.repo.index
|
||||||
|
index.read()
|
||||||
|
self.assertEqual(len(index), 1)
|
||||||
|
index.clear()
|
||||||
|
self.assertEqual(len(index), 0)
|
||||||
|
|
||||||
|
def test_write(self):
|
||||||
|
index = self.repo.index
|
||||||
|
index.read()
|
||||||
|
index.add('bye.txt', 0)
|
||||||
|
index.write()
|
||||||
|
|
||||||
|
index.clear()
|
||||||
|
self.assertFalse('bye.txt' in index)
|
||||||
|
index.read()
|
||||||
|
self.assertTrue('bye.txt' in index)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@@ -36,18 +36,7 @@ import zipfile
|
|||||||
import pygit2
|
import pygit2
|
||||||
|
|
||||||
|
|
||||||
def open_repo(repo_dir):
|
class BaseTestCase(unittest.TestCase):
|
||||||
repo_path = os.path.join(os.path.dirname(__file__), 'data', repo_dir)
|
|
||||||
temp_dir = tempfile.mkdtemp()
|
|
||||||
temp_repo_path = os.path.join(temp_dir, repo_dir)
|
|
||||||
shutil.copytree(repo_path, temp_repo_path)
|
|
||||||
return temp_dir, pygit2.Repository(temp_repo_path)
|
|
||||||
|
|
||||||
|
|
||||||
class BareRepoTestCase(unittest.TestCase):
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self._temp_dir, self.repo = open_repo('testrepo.git')
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
shutil.rmtree(self._temp_dir)
|
shutil.rmtree(self._temp_dir)
|
||||||
@@ -61,7 +50,21 @@ class BareRepoTestCase(unittest.TestCase):
|
|||||||
self.fail('%s(%r) not raised' % (exc_class.__name__, arg))
|
self.fail('%s(%r) not raised' % (exc_class.__name__, arg))
|
||||||
|
|
||||||
|
|
||||||
class RepoTestCase(unittest.TestCase):
|
def open_repo(repo_dir):
|
||||||
|
repo_path = os.path.join(os.path.dirname(__file__), 'data', repo_dir)
|
||||||
|
temp_dir = tempfile.mkdtemp()
|
||||||
|
temp_repo_path = os.path.join(temp_dir, repo_dir)
|
||||||
|
shutil.copytree(repo_path, temp_repo_path)
|
||||||
|
return temp_dir, pygit2.Repository(temp_repo_path)
|
||||||
|
|
||||||
|
|
||||||
|
class BareRepoTestCase(BaseTestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self._temp_dir, self.repo = open_repo('testrepo.git')
|
||||||
|
|
||||||
|
|
||||||
|
class RepoTestCase(BaseTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
repo_dir = 'testrepo'
|
repo_dir = 'testrepo'
|
||||||
@@ -73,6 +76,3 @@ class RepoTestCase(unittest.TestCase):
|
|||||||
self._temp_dir = temp_dir
|
self._temp_dir = temp_dir
|
||||||
temp_repo_path = os.path.join(temp_dir, repo_dir, '.git')
|
temp_repo_path = os.path.join(temp_dir, repo_dir, '.git')
|
||||||
self.repo = pygit2.Repository(temp_repo_path)
|
self.repo = pygit2.Repository(temp_repo_path)
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
shutil.rmtree(self._temp_dir)
|
|
||||||
|
Reference in New Issue
Block a user