diff --git a/git/diff.py b/git/diff.py index e9f7e209f..8d2646f99 100644 --- a/git/diff.py +++ b/git/diff.py @@ -325,7 +325,7 @@ def iter_change_type(self, change_type: Lit_change_type) -> Iterator[T_Diff]: yield diffidx elif change_type == "C" and diffidx.copied_file: yield diffidx - elif change_type == "R" and diffidx.renamed: + elif change_type == "R" and diffidx.renamed_file: yield diffidx elif change_type == "M" and diffidx.a_blob and diffidx.b_blob and diffidx.a_blob != diffidx.b_blob: yield diffidx diff --git a/test/deprecation/test_basic.py b/test/deprecation/test_basic.py index 6235a836c..3bf0287c7 100644 --- a/test/deprecation/test_basic.py +++ b/test/deprecation/test_basic.py @@ -31,7 +31,7 @@ if TYPE_CHECKING: from pathlib import Path - from git.diff import Diff + from git.diff import Diff, DiffIndex from git.objects.commit import Commit # ------------------------------------------------------------------------ @@ -54,6 +54,12 @@ def diff(commit: "Commit") -> Generator["Diff", None, None]: yield diff +@pytest.fixture +def diffs(commit: "Commit") -> Generator["DiffIndex", None, None]: + """Fixture to supply a DiffIndex.""" + yield commit.diff(NULL_TREE) + + def test_diff_renamed_warns(diff: "Diff") -> None: """The deprecated Diff.renamed property issues a deprecation warning.""" with pytest.deprecated_call(): @@ -122,3 +128,10 @@ def test_iterable_obj_inheriting_does_not_warn() -> None: class Derived(IterableObj): pass + + +def test_diff_iter_change_type(diffs: "DiffIndex") -> None: + """The internal DiffIndex.iter_change_type function issues no deprecation warning.""" + with assert_no_deprecation_warning(): + for change_type in diffs.change_type: + [*diffs.iter_change_type(change_type=change_type)]