From 2f15f30b0efb9029a140fdb0b7024fefb466c9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saugat=20Pachhai=20=28=E0=A4=B8=E0=A5=8C=E0=A4=97=E0=A4=BE?= =?UTF-8?q?=E0=A4=A4=29?= Date: Tue, 25 Jan 2022 18:40:19 +0545 Subject: [PATCH] exp run: do not log message twice on workspace executor Fixes #7276. --- dvc/repo/experiments/executor/manager/local.py | 1 + tests/func/experiments/test_experiments.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/dvc/repo/experiments/executor/manager/local.py b/dvc/repo/experiments/executor/manager/local.py index da139f759..e5d6c95fa 100644 --- a/dvc/repo/experiments/executor/manager/local.py +++ b/dvc/repo/experiments/executor/manager/local.py @@ -88,6 +88,7 @@ class WorkspaceExecutorManager(BaseExecutorManager): rev=rev, infofile=infofile, log_level=logger.getEffectiveLevel(), + log_errors=not isinstance(executor, WorkspaceExecutor), ) if not exec_result.exp_hash: raise DvcException( diff --git a/tests/func/experiments/test_experiments.py b/tests/func/experiments/test_experiments.py index d91d41450..8d7fd21d2 100644 --- a/tests/func/experiments/test_experiments.py +++ b/tests/func/experiments/test_experiments.py @@ -10,6 +10,7 @@ from dvc.dvcfile import PIPELINE_FILE from dvc.exceptions import DvcException from dvc.repo.experiments.utils import exp_refs_by_rev from dvc.scm import resolve_rev +from dvc.stage.exceptions import StageFileDoesNotExistError from dvc.utils.serialize import PythonFileCorruptedError from tests.func.test_repro_multistage import COPY_SCRIPT @@ -704,3 +705,15 @@ def test_experiment_name_invalid(tmp_dir, scm, dvc, exp_stage, mocker): params=["foo=3"], ) new_mock.assert_not_called() + + +def test_experiments_workspace_not_log_exception(caplog, dvc, scm): + """Experiments run in workspace should not log exception. + + Instead it should just leave it to be handled in the main entrypoints. + """ + with caplog.at_level(logging.ERROR): + with pytest.raises(StageFileDoesNotExistError): + dvc.experiments.run() + + assert not caplog.text