diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index 0ce17aef9..b8c171ac8 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -92,6 +92,9 @@ class ExecutorInfo: @classmethod def from_dict(cls, d): + if "collected" in d: + if d.pop("collected"): + d["status"] = TaskStatus.FINISHED return cls(**d) def asdict(self): diff --git a/tests/unit/repo/experiments/test_executor_status.py b/tests/unit/repo/experiments/test_executor_status.py index 7af673e74..e59dc0ba0 100644 --- a/tests/unit/repo/experiments/test_executor_status.py +++ b/tests/unit/repo/experiments/test_executor_status.py @@ -93,3 +93,16 @@ def test_workspace_executor_failed_status( else: executor_info = ExecutorInfo.load_json(infofile) assert executor_info.status == TaskStatus.FAILED + + +def test_executor_status_compatiblity(): + data = { + "git_url": "file:///Users/home", + "baseline_rev": "123", + "location": "dvc-task", + "root_dir": "/Users/home/8088/.dvc/tmp/exps/tmpx85892cx", + "dvc_dir": ".dvc", + "collected": True, + } + result = ExecutorInfo.from_dict(data) + assert result.status == TaskStatus.FINISHED