diff options
author | Antonin Delpeuch <antonin@delpeuch.eu> | 2023-09-24 10:29:05 +0200 |
---|---|---|
committer | Antonin Delpeuch <antonin@delpeuch.eu> | 2023-09-24 10:29:05 +0200 |
commit | b0d5a8dcbc033bab0a97383b2082e09ccf698dd7 (patch) | |
tree | 64f4a27d45553fc977a621b4f356134f585d17ba /tests | |
parent | 70fdff7898416dfa26999194c387abdd17e8acb8 (diff) | |
download | git-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-x | tests/self_test.sh | 9 | ||||
-rw-r--r-- | tests/test_blame.py | 24 |
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 + |