From cab60b54f87c07432f9da66ed5ae0e5f1390ab48 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, 23 Nov 2021 22:02:33 +0545 Subject: [PATCH] live: import webbrowser lazily; only patch webbrowser.open --- dvc/repo/live.py | 8 ++++++-- tests/conftest.py | 7 +++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/dvc/repo/live.py b/dvc/repo/live.py index 8d5a79cdb..abd803df3 100644 --- a/dvc/repo/live.py +++ b/dvc/repo/live.py @@ -1,5 +1,4 @@ import logging -import webbrowser from pathlib import Path from platform import uname from typing import TYPE_CHECKING, List, Optional @@ -14,7 +13,12 @@ if TYPE_CHECKING: from dvc.output import Output from dvc.repo import Repo -webbrowser_open = once_per_args(webbrowser.open) + +@once_per_args +def webbrowser_open(url: str) -> int: + import webbrowser + + return webbrowser.open(url) def create_summary(out): diff --git a/tests/conftest.py b/tests/conftest.py index 259903854..c08c370bc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -180,7 +180,6 @@ def custom_template(tmp_dir, dvc): scriptify_fixture = pytest.fixture(lambda: scriptify, name="scriptify") -@pytest.fixture(scope="session", autouse=True) -def webbrowser_open(session_mocker): - session_mocker.patch("dvc.repo.live.webbrowser_open") - session_mocker.patch("webbrowser.open") +@pytest.fixture(autouse=True) +def mocked_webbrowser_open(mocker): + mocker.patch("webbrowser.open")