aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAntonin Delpeuch <antonin@delpeuch.eu>2023-09-24 10:29:05 +0200
committerAntonin Delpeuch <antonin@delpeuch.eu>2023-09-24 10:29:05 +0200
commitb0d5a8dcbc033bab0a97383b2082e09ccf698dd7 (patch)
tree64f4a27d45553fc977a621b4f356134f585d17ba /tests
parent70fdff7898416dfa26999194c387abdd17e8acb8 (diff)
downloadgit-deps-b0d5a8dcbc033bab0a97383b2082e09ccf698dd7.tar.gz
Only use pygit2's blame via opt-in
This can be reconsidered if pygit2's blame algorithm improves. The option can still be useful if the 'git' command is not available on the system.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/self_test.sh9
-rw-r--r--tests/test_blame.py24
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/self_test.sh b/tests/self_test.sh
index a0b2272..52e1a28 100755
--- a/tests/self_test.sh
+++ b/tests/self_test.sh
@@ -13,12 +13,21 @@ echo "Running test suite"
echo "* Dependencies of 4f27a1e, a regular commit"
git-deps 4f27a1e^! | sort | diff tests/expected_outputs/deps_4f27a1e -
+echo "* Same, but via pygit2's blame algorithm"
+git-deps --pygit2-blame 4f27a1e^! | sort | diff tests/expected_outputs/deps_4f27a1e -
+
echo "* Dependencies of 1ba7ad5, a merge commit"
git-deps 1ba7ad5^! | sort | diff tests/expected_outputs/deps_1ba7ad5 -
+echo "* Same, but via pygit2's blame algorithm"
+git-deps --pygit2-blame 1ba7ad5^! | sort | diff tests/expected_outputs/deps_1ba7ad5 -
+
echo "* Dependencies of the root commit"
git-deps b196757^! | sort | diff tests/expected_outputs/deps_b196757 -
+echo "* Same, but via pygit2's blame algorithm"
+git-deps --pygit2-blame b196757^! | sort | diff tests/expected_outputs/deps_b196757 -
+
echo "* Recursive dependencies of a4f27a1e, a regular commit"
git-deps -r 4f27a1e^! | sort | diff tests/expected_outputs/recursive_deps_4f27a1e -
diff --git a/tests/test_blame.py b/tests/test_blame.py
new file mode 100644
index 0000000..410e7de
--- /dev/null
+++ b/tests/test_blame.py
@@ -0,0 +1,24 @@
+
+from git_deps.blame import blame_via_subprocess, BlameHunk, GitRef
+
+def test_blame_via_subprocess():
+ hunks = list(blame_via_subprocess(
+ 'INSTALL.md',
+ '04f5c095d4eccf5808db6dbf90c31a535f7f371c',
+ 12, 4))
+
+ expected_hunks = [
+ BlameHunk(
+ GitRef('6e23a48f888a355ad7e101c797ce1b66c4b7b86a'),
+ orig_start_line_number=12,
+ final_start_line_number=12,
+ lines_in_hunk=2),
+ BlameHunk(
+ GitRef('2c9d23b0291157eb1096384ff76e0122747b9bdf'),
+ orig_start_line_number=10,
+ final_start_line_number=14,
+ lines_in_hunk=2)
+ ]
+
+ assert hunks == expected_hunks
+