summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorYobmod <yobmod@gmail.com>2021-06-17 17:29:37 +0100
committerYobmod <yobmod@gmail.com>2021-06-17 17:29:37 +0100
commit636f77bf8d58a482df0bde8c0a6a8828950a0788 (patch)
treee1207dbe034f82deacbb76369716779608e7056d /test
parent567c892322776756e8d0095e89f39b25b9b01bc2 (diff)
parentb0f79c58ad919e90261d1e332df79a4ad0bc40de (diff)
downloadgitpython-636f77bf8d58a482df0bde8c0a6a8828950a0788.tar.gz
fix conflict
Diffstat (limited to 'test')
-rw-r--r--test/test_fun.py15
-rw-r--r--test/test_repo.py38
2 files changed, 51 insertions, 2 deletions
diff --git a/test/test_fun.py b/test/test_fun.py
index a7fb8f8b..e3d07194 100644
--- a/test/test_fun.py
+++ b/test/test_fun.py
@@ -1,5 +1,5 @@
from io import BytesIO
-from stat import S_IFDIR, S_IFREG, S_IFLNK
+from stat import S_IFDIR, S_IFREG, S_IFLNK, S_IXUSR
from os import stat
import os.path as osp
from unittest import SkipTest
@@ -7,7 +7,8 @@ from unittest import SkipTest
from git import Git
from git.index import IndexFile
from git.index.fun import (
- aggressive_tree_merge
+ aggressive_tree_merge,
+ stat_mode_to_index_mode,
)
from git.objects.fun import (
traverse_tree_recursive,
@@ -206,6 +207,16 @@ class TestFun(TestBase):
assert_entries(aggressive_tree_merge(odb, trees), 2, True)
# END handle ours, theirs
+ def test_stat_mode_to_index_mode(self):
+ modes = (
+ 0o600, 0o611, 0o640, 0o641, 0o644, 0o650, 0o651,
+ 0o700, 0o711, 0o740, 0o744, 0o750, 0o751, 0o755,
+ )
+ for mode in modes:
+ expected_mode = S_IFREG | (mode & S_IXUSR and 0o755 or 0o644)
+ assert stat_mode_to_index_mode(mode) == expected_mode
+ # END for each mode
+
def _assert_tree_entries(self, entries, num_trees):
for entry in entries:
assert len(entry) == num_trees
diff --git a/test/test_repo.py b/test/test_repo.py
index 8dc17833..8aced94d 100644
--- a/test/test_repo.py
+++ b/test/test_repo.py
@@ -414,6 +414,16 @@ class TestRepo(TestBase):
def test_tag(self):
assert self.rorepo.tag('refs/tags/0.1.5').commit
+ def test_tag_to_full_tag_path(self):
+ tags = ['0.1.5', 'tags/0.1.5', 'refs/tags/0.1.5']
+ value_errors = []
+ for tag in tags:
+ try:
+ self.rorepo.tag(tag)
+ except ValueError as valueError:
+ value_errors.append(valueError.args[0])
+ self.assertEqual(value_errors, [])
+
def test_archive(self):
tmpfile = tempfile.mktemp(suffix='archive-test')
with open(tmpfile, 'wb') as stream:
@@ -979,6 +989,34 @@ class TestRepo(TestBase):
for i, j in itertools.permutations([c1, 'ffffff', ''], r=2):
self.assertRaises(GitCommandError, repo.is_ancestor, i, j)
+ def test_is_valid_object(self):
+ repo = self.rorepo
+ commit_sha = 'f6aa8d1'
+ blob_sha = '1fbe3e4375'
+ tree_sha = '960b40fe36'
+ tag_sha = '42c2f60c43'
+
+ # Check for valid objects
+ self.assertTrue(repo.is_valid_object(commit_sha))
+ self.assertTrue(repo.is_valid_object(blob_sha))
+ self.assertTrue(repo.is_valid_object(tree_sha))
+ self.assertTrue(repo.is_valid_object(tag_sha))
+
+ # Check for valid objects of specific type
+ self.assertTrue(repo.is_valid_object(commit_sha, 'commit'))
+ self.assertTrue(repo.is_valid_object(blob_sha, 'blob'))
+ self.assertTrue(repo.is_valid_object(tree_sha, 'tree'))
+ self.assertTrue(repo.is_valid_object(tag_sha, 'tag'))
+
+ # Check for invalid objects
+ self.assertFalse(repo.is_valid_object(b'1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a', 'blob'))
+
+ # Check for invalid objects of specific type
+ self.assertFalse(repo.is_valid_object(commit_sha, 'blob'))
+ self.assertFalse(repo.is_valid_object(blob_sha, 'commit'))
+ self.assertFalse(repo.is_valid_object(tree_sha, 'commit'))
+ self.assertFalse(repo.is_valid_object(tag_sha, 'commit'))
+
@with_rw_directory
def test_git_work_tree_dotgit(self, rw_dir):
"""Check that we find .git as a worktree file and find the worktree