diff --git a/dvc/analytics.py b/dvc/analytics.py index beeeb3525..bb62483ff 100644 --- a/dvc/analytics.py +++ b/dvc/analytics.py @@ -2,7 +2,7 @@ import json import logging import os -from .env import DVC_ANALYTICS +from .env import DVC_NO_ANALYTICS logger = logging.getLogger(__name__) @@ -44,8 +44,8 @@ def is_enabled(): if env2bool("DVC_TEST"): return False - enabled = env2bool(DVC_ANALYTICS, None) - if enabled is None: + enabled = not os.getenv(DVC_NO_ANALYTICS) + if enabled: enabled = to_bool( Config(validate=False).get("core", {}).get("analytics", "true") ) diff --git a/dvc/env.py b/dvc/env.py index 1974321a0..2839772c6 100644 --- a/dvc/env.py +++ b/dvc/env.py @@ -9,4 +9,4 @@ DVCLIVE_RESUME = "DVCLIVE_RESUME" DVC_IGNORE_ISATTY = "DVC_IGNORE_ISATTY" DVC_EXP_GIT_REMOTE = "DVC_EXP_GIT_REMOTE" DVC_EXP_AUTO_PUSH = "DVC_EXP_AUTO_PUSH" -DVC_ANALYTICS = "DVC_ANALYTICS" +DVC_NO_ANALYTICS = "DVC_NO_ANALYTICS" diff --git a/tests/unit/test_analytics.py b/tests/unit/test_analytics.py index a91cb3e00..e630ef944 100644 --- a/tests/unit/test_analytics.py +++ b/tests/unit/test_analytics.py @@ -87,7 +87,7 @@ def test_is_enabled(dvc, config, result, monkeypatch, tmp_global_dir): # reset DVC_TEST env var, which affects `is_enabled()` monkeypatch.delenv("DVC_TEST") - monkeypatch.delenv("DVC_ANALYTICS", raising=False) + monkeypatch.delenv("DVC_NO_ANALYTICS", raising=False) assert result == analytics.is_enabled() @@ -96,20 +96,23 @@ def test_is_enabled(dvc, config, result, monkeypatch, tmp_global_dir): "config, env, result", [ (None, None, True), - (None, "true", True), - (None, "false", False), + (None, "true", False), + (None, "false", False), # only checking if env is set ("false", None, False), - ("false", "true", True), + ("false", "true", False), ("false", "false", False), ("true", None, True), - ("true", "true", True), - ("true", "false", False), + ("true", "true", False), + ("true", "false", False), # we checking if env is set ], ) -def test_is_enabled_env(dvc, config, env, result, monkeypatch, tmp_global_dir): +def test_is_enabled_env_neg( + dvc, config, env, result, monkeypatch, tmp_global_dir +): # reset DVC_TEST env var, which affects `is_enabled()` monkeypatch.delenv("DVC_TEST") - monkeypatch.delenv("DVC_ANALYTICS", raising=False) + monkeypatch.delenv("DVC_NO_ANALYTICS", raising=False) + with dvc.config.edit() as conf: conf["core"] = {} @@ -120,7 +123,7 @@ def test_is_enabled_env(dvc, config, env, result, monkeypatch, tmp_global_dir): conf["core"] = {"analytics": config} if env is not None: - monkeypatch.setenv("DVC_ANALYTICS", env) + monkeypatch.setenv("DVC_NO_ANALYTICS", env) assert result == analytics.is_enabled()