diff --git a/deepdiff/colored_view.py b/deepdiff/colored_view.py index 2463dcbf..ce23baf2 100644 --- a/deepdiff/colored_view.py +++ b/deepdiff/colored_view.py @@ -109,12 +109,13 @@ def _colorize_json(self, obj: Any, path: str = 'root', indent: int = 0) -> str: return '{\n' + ',\n'.join(items) + f'\n{current_indent}' + '}' elif isinstance(obj, (list, tuple)): - if not obj: - return '[]' removed_map = self._get_path_removed(path) for index in removed_map: self._colorize_skip_paths.add(f"{path}[{index}]") + if not obj and not removed_map: + return '[]' + items = [] remove_index = 0 for index, value in enumerate(obj): diff --git a/tests/test_colored_view.py b/tests/test_colored_view.py index 3c8c1a5b..bd80286c 100644 --- a/tests/test_colored_view.py +++ b/tests/test_colored_view.py @@ -117,6 +117,22 @@ def test_colored_view_list_deletions(): assert result == expected +def test_colored_view_list_all_removed(): + """Test that removing all items from a list shows them in colored view.""" + t1 = [1, 2, 3] + t2 = [] + + diff = DeepDiff(t1, t2, view=COLORED_VIEW) + result = str(diff) + + expected = f'''[ + {RED}1{RESET}, + {RED}2{RESET}, + {RED}3{RESET} +]''' + assert result == expected + + def test_colored_view_list_additions(): t1 = [2, 4] t2 = [1, 2, 3, 4, 5]