diff --git a/dvc/render/match.py b/dvc/render/match.py index 052c65222..5a95c0c0c 100644 --- a/dvc/render/match.py +++ b/dvc/render/match.py @@ -10,8 +10,12 @@ if TYPE_CHECKING: def get_files(plots_data: Dict) -> List: - values = dpath.util.values(plots_data, ["*", "*"]) - return sorted({key for submap in values for key in submap.keys()}) + files = set() + for rev in plots_data.keys(): + for file in plots_data[rev].get("data", {}).keys(): + files.add(file) + sorted_files = sorted(files) + return sorted_files def group_by_filename(plots_data: Dict) -> Dict: diff --git a/tests/unit/render/test_match.py b/tests/unit/render/test_match.py index 39be95d58..b71136e89 100644 --- a/tests/unit/render/test_match.py +++ b/tests/unit/render/test_match.py @@ -1,10 +1,22 @@ from dvc.render.match import ( + get_files, group_by_filename, match_renderers, squash_plots_properties, ) +def test_get_files_on_error(): + plots_data = { + "v2": {"error": "ERROR"}, + "v1": { + "data": {"file.json": {"data": [{"y": 2}, {"y": 3}], "props": {}}} + }, + } + files = get_files(plots_data) + assert files == ["file.json"] + + def test_group_by_filename(): error = FileNotFoundError() data = {