Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_rev_list_branch(self):
"""Test whether the rev-list command returns the commits of a branch, when the latter is given"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
gitrev = repo.rev_list(branches=['lzp'])
gitrev = [line for line in gitrev]
expected = ['51a3b654f252210572297f47597b31527c475fb8',
'589bb080f059834829a2a5955bebfd7c2baa110a',
'c6ba8f7a1058db3e6b4bc6f1090e932b107605fb',
'c0d66f92a95e31c77be08dc9d0f11a16715d1885',
'7debcf8a2f57f86663809c58b5c07a398be7674c',
'87783129c3f00d2c81a3a8e585eb86a47e39891a',
'bc57a9209f096a130dcc5ba7089a8663f758a703']
self.assertTrue(len(gitrev), len(expected))
for i in range(len(gitrev)):
self.assertEqual(gitrev[i], expected[i])
shutil.rmtree(new_path)
def test_log_from_empty_repository(self):
"""Test if an exception is raised when the repository is empty"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_empty_path, new_path)
gitlog = repo.log()
with self.assertRaises(EmptyRepositoryError):
_ = [line for line in gitlog]
shutil.rmtree(new_path)
def test_log_to_date(self):
"""Test if commits are returned before the given date"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
gitlog = repo.log(to_date=datetime.datetime(2014, 2, 11, 22, 7, 49))
gitlog = [line for line in gitlog]
self.assertEqual(len(gitlog), 71)
self.assertEqual(gitlog[0][:14], "commit bc57a92")
shutil.rmtree(new_path)
def test_is_detached(self):
"""Test if a repository is in detached state or not"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
is_detached = repo.is_detached()
self.assertEqual(is_detached, False)
shutil.rmtree(new_path)
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_detached_path, new_path)
is_detached = repo.is_detached()
self.assertEqual(is_detached, True)
shutil.rmtree(new_path)
def test_update_empty_repository(self):
"""Test if no exception is raised when the repository is empty"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_empty_path, new_path)
repo.update()
shutil.rmtree(new_path)
def test_git_show(self):
"""Test show command"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
gitshow = repo.show()
gitshow = [line for line in gitshow]
self.assertEqual(len(gitshow), 14)
self.assertEqual(gitshow[0][:14], "commit 456a68e")
shutil.rmtree(new_path)
def test_count_objects_invalid_output(self):
"""Test if an exception is raised when count_objects output is invalid"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
# Check missing value
expected = "unable to parse 'count-objects' output;" + \
" reason: 'in-pack' entry not found"
with unittest.mock.patch('perceval.backends.core.git.GitRepository._exec') as mock_exec:
mock_exec.return_value = b'count: 69\n:sze: 900\n'
with self.assertRaises(RepositoryError) as e:
_ = repo.count_objects()
self.assertEqual(str(e.exception), expected)
# Check invalid output
with unittest.mock.patch('perceval.backends.core.git.GitRepository._exec') as mock_exec:
mock_exec.return_value = b'invalid value'
def test_log_from_date(self):
"""Test if commits are returned from the given date"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
gitlog = repo.log(from_date=datetime.datetime(2014, 2, 11, 22, 7, 49))
gitlog = [line for line in gitlog]
self.assertEqual(len(gitlog), 36)
self.assertEqual(gitlog[0][:14], "commit ce8e0b8")
# Use a timezone, it will return an empty line
from_date = datetime.datetime(2014, 2, 11, 22, 7, 49,
tzinfo=dateutil.tz.tzoffset(None, -36000))
gitlog = repo.log(from_date=from_date)
gitlog = [line for line in gitlog]
self.assertEqual(gitlog, [])
shutil.rmtree(new_path)
def test_rev_list_no_branch(self):
"""Test whether the rev-list command returns an empty list when no branch is given"""
new_path = os.path.join(self.tmp_path, 'newgit')
repo = GitRepository.clone(self.git_path, new_path)
gitrev = repo.rev_list(branches=[])
gitrev = [line for line in gitrev]
expected = []
self.assertListEqual(gitrev, expected)
shutil.rmtree(new_path)
def __create_git_repository(self):
if not os.path.exists(self.gitpath):
repo = GitRepository.clone(self.uri, self.gitpath)
elif os.path.isdir(self.gitpath):
repo = GitRepository(self.uri, self.gitpath)
return repo